1.系统版本信息
OS:Debian-7.9
Jdk:1.8.0_131
Hadoop:2.8.1
Zookeeper:3.9.4
Hbase:1.3.1
Pig:0.16.0
主机信息
192.168.74.128 master
192.168.74.132 slave-2
192.168.74.133 slave-3
192.168.74.134 slave-4
2.只需在master上安装hive
A:下载Hive-2.1.1,wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz
镜像地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/
B:解压,移动到指定文件夹
tar zxvf apache-hive-2.1.1-bin.tar.gz
mv apache-hive-2.1.1-bin /home/hadoop/opt/
cd /home/hadoop/opt/
mv apache-hive-2.1.1-bin hive-2.1.1
C:添加环境变量
sudo vim /etc/profile
#Set Hive Path
export HIVE_HOME=/home/hadoop/opt/hive-2.1.1
export PATH=$PATH:$HIVE_HOME/bin
#立即生效
source /etc/profile
D:修改配置文件
cd /home/hadoop/opt/hive-2.1.1/conf
cp hive-default.xml.template hive-site.xml
cp hive-env.sh.template hive-env.sh
#hive-env.sh
HADOOP_HOME=/home/hadoop/opt/hadoop-2.8.1
export HIVE_CONF_DIR=/home/hadoop/opt/hive-2.1.1/conf
#hive-site.xml
<!-- HDFS路径hive表的存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://master:9000/user/hive/warehouse</value>
</property>
<!--HDFS路径,用于存储不同 map/reduce 阶段的执行计划和这些阶段的中间输出结果。 -->
<property>
<name>hive.exec.scratchdir</name>
<value>hdfs://master:9000/tmp</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/home/hadoop/opt/hive-2.1.1/tmp</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/home/hadoop/opt/hive-2.1.1/tmp/${hive.session.id}_resources</value>
</property>
根据配置文件 ,在hadoop文件系统中创建相应的目录,一定记得修改文件权限
#hdfs 需要启动
hdfs dfs -mkdir -p /tmp
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -chmod 733 /tmp
hdfs dfs -chmod 733 /user/hive/warehouse
然后在hive的安装根目录下
mkdir tmp
E:启动Hive测试,需要注意的是需要在hive安装目录下的bin目录下执行hive命令,否则会报错
/home/hadoop/opt/hive-2.1.1/bin/hive
show tables;
create table smq (name string ,count int,status string) row format delimited fields terminated by '\t' stored as textfile ;
LOAD DATA LOCAL INPATH ' /usr/local/hive1.2/test.txt' OVERWRITE INTO TABLE smq;
select * from smq;
exit;
3.可能出现的问题和解决方案
问题A:Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)
问题B:Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000)
解决方法如下:
cd /home/hadoop/opt/hive-2.1.1/bin
#1. 将metastore_db更名为:metastore_db.tmp
mv metastore_db metastore_db.tmp
#2. schematool -initSchema -dbType derby
schematool -initSchema -dbType derby
#启动hive进行检测
/home/hadoop/opt/hive-2.1.1/bin/hive
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com