基于三节点的Hadoop集群搭建Hive
安装中前的准备
- 先要搭建好hadoop集群
- 安装中用到的软件:
- hive-1.1.0-cdh5.14.2.tar.gz ,下载地址
- MySQL5.7
安装MySQL
hive的元数据Metastore默认存储在自带的derby数据库中,这里使用MySQL存储这些元数据信息,所以在安装hive之前,先安装MySQL。hive只用在一台节点上安装,所以MySQL也只需在一台节点上安装,这里我们选择在node01上安装。
- 下载并安装MySQL官方的 Yum Repository
cd /kkb/soft
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
- MySQL数据库设置
- 启动MySQL
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service
此时MySQL已经开始正常运行。
- 修改密码
root的默认密码是放在/var/log/mysqld.log文件中,首先通过以下语句查看初始密码:
sudo grep "password" /var/log/mysqld.log
然后通过找到的初始密码,登录进数据库:
mysql -uroot -p
这个时候我们修改一下MySQL的root用户的初始密码,因为MySQL5.7对密码的设定要求复杂度必须达到要求,否则密码会设置失败,通过以下两行代码,关闭这种密码设定策略:
set global validate_password_policy=0;
set global validate_password_length=1;
这个时候就可以使用简单密码了,我们把root的密码设置为1234。
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234'
然后配置root用户的访问权限:
grant all on *.* to root@'%' identified by '1234';
至此,MySQL的初步安装就完成了。
安装hive
- 上传hive安装包,进行解压
mac命令行中执行:
scp hive-1.1.0-cdh5.14.2.tar.gz hadoop@node01:/kkb/soft
ssh hadoop@node01
cd /kkb/soft
tar -xzvf hive-1.1.0-cdh5.14.2.tar.gz -C /kkb/install
- 修改配置文件
- 修改环境变量
sudo vim /etc/profile
# 修改为:
export HIVE_HOME=/kkb/install/hive-1.1.0-cdh5.14.2
# 然后修改PATH,增加
$HIVE_HOME/bin
# 保存,使立刻生效
source /etc/profile
- 配置hive-env.sh
cd /kkb/install/hive-1.1.0-cdh5.14.2/conf/
mv hive-env.sh.template hive-env.sh
vim hive-env.sh
# 修改内容为:
export HADOOP_HOME=/kkb/install/hadoop-2.6.0-cdh5.14.2/ #配置HADOOP_HOME路径
export HIVE_CONF_DIR=/kkb/install/hive-1.1.0-cdh5.14.2/conf #配置HIVE_CONF_DIR路径
- 配置hive-site.xml
修改hive-site.xml文件,内容改为:
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
# MySQL所在服务器地址要对,我们装在node01上
<value>jdbc:mysql://node01:3306/hive?createDatabaseIfNotExist=true&characterEncoding=latin1&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
# 这个密码为我们上边改的root的密码
<name>javax.jdo.option.ConnectionPassword</name>
<value>1234</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node01</value>
</property>
</configuration>
- 修改hive的日志配置文件路径
执行以下命令,定义hive的日志文件存放路径
mkdir -p /kkb/install/hive-1.1.0-cdh5.14.2/logs/
cd /kkb/install/hive-1.1.0-cdh5.14.2/conf/
mv hive-log4j.properties.template hive-log4j.properties
vim hive-log4j.properties
#更改以下内容,设置我们的日志文件存放的路径
hive.log.dir=/kkb/install/hive-1.1.0-cdh5.14.2/logs/
- 将mysql的驱动包上传到hive的lib目录下
scp mysql-connector-java-5.1.38.jar hadoop@node01:/kkb/install/hive-1.1.0-cdh5.14.2/lib
hive的交互方式
注意:要先启动Hadoop集群和MySQL
- Hive交互shell
cd /kkb/install/hive-1.1.0-cdh5.14.2
hive
- Hive JDBC服务
- 启动hiveserver2服务
# 前台启动
hive --service hiveserver2
# 后台启动
nohup hive --service hiveserver2 &
- beeline连接hiveserver2
重新开启一个会话窗口,然后使用beeline连接hive。
beeline
# 然后在beeline界面执行:
!connect jdbc:hive2://node01:10000
命令行要求输入用户名和密码,直接回车即可。至此,hive就安装成功。