前置:
1. 使用的hoadoop版本为3.3.3,可以自行下载安装。Index of /apache/hadoop/common/hadoop-3.3.3https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.3/
2. 远程源数据库用的mysql-5.7.38
3. 虚拟机Centos7
4. 配置jdk1.8环境变量
正式安装HIVE3.1.3
一、文件下载
hive-3.1.3下载:清华镜像地址Index of /apache/hive/hive-3.1.3https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.3/
二、安装HIVE
下载完后上传至虚拟机,然后解压。我这里hadoop装在/opt/hadoop3下,所以hive也传到该目录下。
1. 解压文件
tar -xvf apache-hive-3.1.3-bin.tar.gz
mv apache-hive-3.1.3-bin hive-3.1.3
2. 修改配置文件
2.1 文件位置:cd /opt/hadoop3/hive-3.1.3/conf
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
2.2 修改hive-env.sh文件,修改内容(直接在文件末尾添加即可):
export HADOOP_HOME=/opt/hadoop3/hadoop-3.3.3
export HIVE_CONF_DIR=/opt/hadoop3/hive-3.1.3/conf
export HIVE_AUX_JARS_PATH=/opt/hadoop3/hive-3.1.3/lib
2.3 在hdfs中创建目录
hdfs dfs -mkdir -p /user
hdfs dfs -mkdir -p /user/hive
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp
hdfs dfs -mkdir -p /user/hive/log
hdfs dfs -chmod -R 777 /user
2.4 修改hive-site.xml
(mysql驱动我用的是mysql-connector-java-8.0.27.jar,下载后放到/opt/hadoop3/hive-3.1.3/lib里面)
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://mysqlnode1:3308/hive?createDatabaseIfNotExist=true</value>
<description>mysql链接地址</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>mysql驱动</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>mysql用户名</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>mysql密码</description>
</property>
<property>
<name>system:java.io.tmpdir</name>
<value>/user/hive/tmp</value>
<description>在hdfs创建的地址</description>
</property>
我在文件前面额外做了两个配置,我看有的配置读取了这两个${system:java.io.tmpdir}和${system:user.name},没有配置的时候,运行时自动在conf下建了文件夹,所以我配了下:
<property>
<name>system:java.io.tmpdir</name>
<value>/user/hive/tmp</value>
<description/>
</property>
<property>
<name>system:user.name</name>
<value>malachi</value>
<description>这个随便取得name</description>
</property>
注意修改完后,把hive-site.xml文件中的 #和&符号删掉,以免运行会报错code 0x8。
2.5 有个jar包可能会冲突 guava-19.0.jar和guava-27.0-jre.jar,我是把hadoop里面guava-27.0-jre.jar复制到hive里面,然后把guava-19.0.jar改为guava-19.0.jar.bak。两个目录分别为/opt/hadoop3/hadoop-3.3.3/share/hadoop/common/lib和/opt/hadoop3/hive-3.1.3/lib。
2.6 配置hive环境变量:
vi /etc/profile
在后面加上 export HIVE_HOME=/opt/hadoop3/hive-3.1.3
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
3、启动服务
注意:使用hive前,需要确保HDFS和YARN已经启动,再使用HIVE.
3.1 初始化hive元数据:
在mysql中创建了hive数据库,然后执行:
schematool -dbType mysql -initSchema
(schematool 执行文件在/opt/hadoop3/hive-3.1.3/bin下面,配了环境变量就不用去目录下执行。)
成功后会出现这么些表,如果没成功,后面启动hive会报错。
3.2 启动服务
hive --service metastore & ##元数据服务
hive --service hiveserver2 & ##支持jdbc查询服务
jps -m ##查看服务是否启动
3.3 验证服务
输入命令: hive
show databases; ##展示出了默认数据库
use default; ##选择使用default库
create table test(id int, username string); ##创建table
show tables; ##展示所有表
3.4 beeline方式连接
执行:
!connect jdbc:hive2://localhost:10000
连接成功后:
show tables;
到此hive安装、配置、运行结束。