Hive组件搭建
0.准备工作
- Centos7
- Hadoop完全分布式
- 三个环境
- master
- slave1
- slave2
- Hive组件
1.安装组件
scp apache-hive-1.1.0-bin.tar.gz root@master:~/
将传入的hive组件解压缩
tar -zxvf apache-hive-1.1.0-bin.tar.gz
更改文件名为hive
mv apache-hive-1.1.0 h
2.修改hive配置文件
修改hive-env.sh
进入hive配置文件目录conf/
cd hive/conf
将 hive-env.sh.template 更名为 hive-env.sh
mv hive-env.sh.template hive-env.sh
修改 hive-env.sh 的内容
vi hive-env.sh
-
配置 HADOOP_HOME 路径
-
export HADOOP_HOME=/root/hadoop-2.6.0
-
-
配置 HIVE_CONF_DIR 路径
-
export HIVE_CONF_DIR=/root/hive/conf
-
修改hive-site.sh
配置将Mysql作为hive的数据源,然后进行初始化
在conf文件夹下创建 hive-site.xml 文件
-
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!--配置mysql数据库的连接地址--> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master:3306/hive</value> </property> <!--配置mysql数据库的连接驱动--> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <!--配置mysql数据库的用户名--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <!--配置mysql数据库的密码--> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> </configuration>
3.将hadoop的依赖包替换为hive版本
因为Hadoop中的 jline 包版本过低,不兼容hive组件,所以需要从hive中拷贝一份替换过去
[root@master lib]# cp jline-2.12.jar ~/hadoop-2.6.0/share/hadoop/yarn/lib/jline-0.9.94.jar
hive不需要分发到slave节点上!
4.初始化hive组件
先将mysql的连接jar包复制到hive的lib目录下
[root@master chinaskills]# cp /chinaskills/mysql-connector-java-5.1.38.jar /usr/local/src/Hive/lib/.
注意:我们配置的数据库默认是没有的,如果没有这个数据库则去mysql创建一个
创建数据库:
mysql -uroot -p123456
出现mysql>
则输入
create database hive;
然后exit退出就可以进行初始化了
然后去到hive的bin目录下进行初始化hive数据库 :
cd /usr/local/src/Hive/bin
./schematool --dbType mysql --initSchema
如果没出现报错说明成功了,如果出现了报错看看是不是以下问题:
- 没有复制mysql的连接工具jar包到 hive的lib下
- 数据库中不存在 hive 这个数据库
5.启动hive组件
在master节点下启动hive
[root@master hive]# bin/hive
出现 hive >
即是成功