准备工作
hive下载地址: http://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
在安装hive之前,虚拟机内必须有hadoop的集群
1、安装Hive
1.1、上传到虚拟机
将hive解压到module目录
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module
1.2、替换jar包
来到hive的lib目录下
cd /opt/module/apache-hive-3.1.2-bin/lib
删除掉guava-19.0.jar
rm -rf guava-19.0.jar
来到Hadoop的lib目录中
cd /opt/module/hadoop-3.1.3/share/hadoop/common/lib/
将guava-27.0-jre.jar拷贝到hive的lib目录下
cp guava-27.0-jre.jar /opt/module/apache-hive-3.1.2-bin/lib/
来到hive的bin目录下
./hive
出现以下结果,说明hive成功启动了
1.3 修改hive配置文件
来到hive的conf目录下
cd /opt/module/apache-hive-3.1.2-bin/conf
在conf目录下创建一个hive-site.xml文件
vim hive-site.xml
在hive-site.xml文件中添加以下内容
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>
jdbc:mysql://hadoop100:3306/hivedb?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8
</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
</configuration>
修改hadoop配置文件
vim /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
添加以下内容(其中的hadoop为用户名)
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
1.4 、将mysql连接驱动放在hive的lib目录下
cp mysql-connector-java-8.0.25.jar /opt/module/apache-hive-3.1.2-bin/lib/
1.5、配置hive的环境变量,添加以下内容
export HIVE_HOME=/opt/module/apache-hive-3.1.2-bin
export PATH=$PATH:$HIVE_HOME/bin
#使其配置文件生效
source /etc/profile.d/my_env.sh
1.6 初始化元数据
schematool -initSchema -dbType mysql -verbose
当出现以下错误时,就需要进入MySQL授权远程登录
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
然后再初始化元数据,出现以下结果,则成功初始化了
执行hive
进入之后写入show databases,出现以下结果,就成功了
2、启动hive
2.1、新开一个窗口使用hiveserver2启动
hiveserver2
2.2 在第一个窗口运行beeline
beeline
连接hive
# 连接
!connect jdbc:hive2://hadoop100:10000
#用户名
root
# 密码
123456
当出现以下结果,则是root用户的权限不足造成的
root用户授权
#查看集群中跟目录中文件夹权限
hadoop fs -ls /
#将报错中的目标目录增加最大权限,例如我这里是/tmp文件权限不够
hadoop fs -chmod 777 /tmp
出现以下结果,则hive启动成功
完毕!