1. 作者的用的hive版本是1.8.0版本。hadoop用的是2.7.3版本,小伙伴们在做的时候要考虑各个组件的版本问题,不冲突就好.(如果嫌名字太长可以换个名字)
[root@master software]# tar apache-hive-2.1.1-bin.tar.gz -C /usr/local/
[root@master software]# mv apache-hive-2.1.1-bin hive-2.1.1
2. 配置环境变量:vim /etc/profile,根据自己的hive安装的目录来配置,作者的是/usr/local/hive-2.1.1
export HIVE_HOME=/usr/local/hive-2.1.1
export PATH=$HIVE_HOME/bin:$PATH
使环境变量生效:source /etc/profile
3. Master节点上到hive的conf目录下去,以hive-env.sh.template文件为模板得到hive-env.sh文件
[root@master conf]# cp hive-env.sh.template hive-env.sh
4. 配置hive-env.sh文件,在文件最底部找到下面三处配置信息
然后做如下修改:
# Set HADOOP_HOME to point to a specific hadoop install directory
export HADOOP_HOME=/usr/local/hadoop-2.7.3 #(你自己的hadoop的安装路径)
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/usr/local/hive-2.1.1/conf
# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/usr/local/hive-2.1.1/lib #这个是hive服务的配置项。
5. 在conf目录下新建一个hive-site.xml文件
[root@slave conf]# vim hive-xite.xml
在文件中添加以下内容:
hive.metastore.warehouse.dir
/usr/local/hive-2.1.1/warehouse
hive.metastore.local
false
hive.metastore.uris
thrift://hive端名称:9083
6. 最后一步,将MySQL数据库的链接jar包复制到hive的lib目录下、将hive的lib目录下的jlinejar包复制到hadoop的share/hadoop/yarn/lib/下
[root@master ~]# cp /usr/local/hive-2.1.1/lib/jline-2.12.jar /usr/local/hadoop-2.7.3/share/hadoop/yarn/lib/
[root@master ~]# cp /usr/local/software/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar /usr/local/hive-2.1.1/lib/
到此Master节点上的操作就完成了。
1. 如果slave节点上有hive的安装包可以类似Master节点的操作步骤1~3,也可以使用scp命令将Master节点的hive复制到slave节点。
2. 配置hive-env.sh
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/usr/local/hadoop-2.7.3
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/usr/local/hive-2.1.1/conf
# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
#export HIVE_AUX_JARS_PATH=/usr/local/hive-2.1.1/lib
3. 新建hive-site.xml文件,添加以下内容:
hive.metastore.warehouse.dir
/usr/local/hive-2.1.1/warehouse
javax.jdo.option.ConnectionURL
jdbc:mysql://MySQL端名称或者IP:3306/数据库名称?createDatabaseIfNotExist=true
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
有远程登陆权限的用户
javax.jdo.option.ConnectionPassword
远程登陆权限用户的密码
hive.metastore.schema.verification
false
4. 最后一步同Master节点操作的步骤6
1. 下载安装包:wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2. 安装:yum -y install mysql57-community-release-el7-10.noarch.rpm
3. 下载MySQL服务器:yum -y install mysql-community-server
4. 开启MySQL服务并查看状态(可以将MySQL服务添加到开机自启动:systemctl enable mysqld)
5. 查看mysql数据库的临时密码:grep 'password' /var/log/mysqld.log
6. MySQL数据库里面需要做的几个操作:
1)设置密码等级为低级;
mysql> set global validate_password_policy=Low(或者是0);
2)设置密码长度;
mysql> set global validate_password_length=6;
3)修改本地root用户的密码
mysql> alter user 'root'@'localhost' identified by 'root的密码';
4)使用root用户登录MySQL后创建一个名为Hadoop的用户
mysql> create user'hadoop'@'%' identified by 'Hadoop用户的密码';
5)赋予Hadoop用户远程登录的权限
mysql> grant all privileges on *.* to 'hadoop'@'%' with grant option;
6)刷新权限
mysql> flush privileges;
到此MySQL端配置完成。
1. 开启hadoop平台:start-all.sh
2. 在hive端也就是slave节点上初始化hive数据库,并且在成功后开启hive服务
初始化数据库:schematool -dbType mysql -initSchema
开启hive服务:hive --service metastore & (后面的这个&的意思是一直运行,在测试的时候可以不添加)
3. 在master节点上远程登陆hive。
4. 可以在hive端创建一个数据库或者数据表,然后可以看的更清楚。
在小伙伴们配置过程中可能遇到以下两个错误:
1. 出现初始化数据库失败:
原因说明:出现以上错误信息就说明你的初始化数据库没有成功 ,没有连接到MySQL数据库中,需要自己检查hive端(slave节点)中的hive-site.xml文件中的配置是否有误。
2. 客户端远程访问hive数据库出现错误。
原因说明:出现这个错误可能说明你的客户端(Master节点) hive中的hive-site.xml配置文件中的下列配置项hive端名称写错了。
hive.metastore.uris
thrift://hive端名称:9083
3. hive服务启动不了,如图:
原因说明: 这是因为启动hive失败了,但是进程已经启动起来,使用jps命令查看,然后使用kill -9 命令杀死进程重启就可以了。
如果觉得作者的这篇文章对你有帮助,可以点点赞关注一下哦~。谢谢你的支持!