安装和使用 hive 需要用到 Hadoop 环境,如若不知如何搭建 Hadoop 环境,看前文
hadoop搭建成功后,让我们一起来看看hive的安装与配置吧!!!
cd /export/software
上传hive和mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar的包
至/export/software下
我们来安装完 MySQL,再来进行 hive 的配置
查看本机自带mariabd-libs并删除
rpm -qa |grep mariadb(查看)
rpm -e --nodeps mariadb-libs(卸载)
rpm -qa |grep mariadb(再次查看)
删除原有的yum源
rm -rf /etc/yum.repos.d/*
配置本地yum源
vi iso.repo进入
[iso]
name=iso
baseurl=file:///root/iso
gpgcheck=0
enabled=1
:wq
创建root目录下ISO文件并挂载
mkdir /root/iso
mount /dev/cdrom /root/iso/
df -h (查看)
yum repolist(验证yum源是否配置成功)
安装net-tools perl lsof
yum install -y net-tools perl lsof
进入/export/software目录下,将MySQL和HIVE的包解压到/export/servers下
cd /export/software
tar xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar -C /export/servers
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /export/servers/
解压完安装mysql(在/export/servers目录下)
cd /export/servers
(1)rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm mysql-community-libs-5.7.29-1.el7.x86_64.rpm mysql-community-client-5.7.29-1.el7.x86_64.rpm
(2)rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm --nodeps --force
将以下配置信息添加到/etc/my.cnf 文件 symbolic-links=0 配置信息的下方。
default-storage-engine=innodb
innodb_file_per_table
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server=utf8
执行初始化mysql服务,设置mysql的权限,启动mysql服务,以及设置mysql服务器开机自启,查看是否启动成功
mysqld --initialize
chown mysql:mysql /var/lib/mysql -R
ll /var/lib
systemctl start mysqld.service;systemctl enable mysqld.service
ps aux |grep mysql
用Pass变量传递临时系统密码,登录mysql,设置mysql密码
Pass=$(grep 'A temporary password' /var/log/mysqld.log | awk '{print $NF}')
设置密码 ,设置远程访问mysql,修改密码为111
mysql -uroot -p"$Pass"
alter user user() identified by "111";
show databases;
use mysql;
grant all privileges on *.* to root@'localhost' identified by '111'; # 添加 root 用户本地访问授权
grant all privileges on *.* to root@'%' identified by '111'; # 添加 root 用户远程访问授权
grant all privileges on *.* to 'root'@'%' identified by '111' with grant option;
flush privileges; #刷新授权
select user,host from mysql.user where user='root'; # 查询 root 用户授权情况
登录MySQL验证
mysql -uroot -p111
开始配置 HIVE
由于hive运行需要依赖Hadoop环境,因此必须确保guava.jar的版本一致。
rm -rf /export/servers/hive/lib/guava-27.0-jre.jar
cp /export/servers/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /export/servers/hive/lib/
配置hive环境变量
vi /etc/profile
#hive
export HIVE_HOME=/export/servers/hive
export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/sbin
:wq
source /etc/profile
修改配置文件
cd /export/servers/hive/conf
cp hive-env.sh.template hive-env.sh
vi hive-env.sh
最下面加
export HADOOP_HOME=/export/servers/hadoop
export HIVE_CONF_DIR=/export/servers/hive/conf
export HIVE_AUX_JARS_PATH=/export/servers/hive/lib
创建hive-site.xml
vi hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node1:3306/hive3?createDatabaseIfNotExist=true&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>
<name>javax.jdo.option.ConnectionPassword</name>
<value>111</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node1</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://node1:9083</value>
</property>
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
</configuration>
用JDBC的方式连接MySQL,因此需要使用JDBC的驱动jar包
/export/servers/hive/lib(上传至该目录下)
初始化元数据,登录MySQL验证
schematool -initSchema -dbType mysql --verbos
mysql -uroot -p111
show databases;
use hive3;
show tables;(74个)
hiveserver2启动和使用
hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
授权
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
启动metastore和hiveserver2
第一种方法(需要克隆ssh链接)
hive --service metastore -p 9083
hiveserver2
第二种方法
nohup /export/servers/hive/bin/hive --service metastroe &
nohup /export/servers/hive/bin/hive --service hiveserver2 &
查看10000和10002端口是否开启(太长时间还没起来重新关闭一次防火墙)
lsof -i:10000 lsof -i:10002
beeline连接
beeline
!connect jdbc:hive2://node1(此处该成自己的主机名):10000