赞
踩
准备一台虚拟机,安装CentOS7.5系统(带图形化操作界面)
sudo rpm -qa | grep -i java | xargs -n1 sudo rmp -e --nodeps
[atguigu@hadoop100 software]tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
# (1)新建/etc/profile.d/my_env.sh文件
[atguigu@hadoop100 module] sudo vim /etc/profile.d/my_env.sh
# (2)添加JDK环境变量
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
# (3)让环境变量生效
[atguigu@hadoop100 software]$ source /etc/profile.d/my_env.sh
[atguigu@hadoop100 module]# java -version
[atguigu@hadoop100 software]$ tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /opt/module/
# 1. 编辑/etc/profile.d/my_env.sh文件
[atguigu@hadoop100 module]$ sudo vim /etc/profile.d/my_env.sh
# 2 添加内容:
# MAVEN_HOME
export MAVEN_HOME=/opt/module/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
# 3 让环境变量生效
[atguigu@hadoop100 software]$ source /etc/profile.d/my_env.sh
[atguigu@hadoop100 module]$ mvn -version
修改Maven配置文件
[codejiwei@centos1 module]$ vim /opt/module/apache-maven-3.6.3/conf/settings.xml
在 节点中增加以下内容
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<!-- <url>https://repo1.maven.org/maven2/</url> -->
<url>https://maven.aliyun.com/repository/central</url>
</mirror>
[atguigu@hadoop100 software]$ tar -zxvf ideaIU-2020.3.1.tar.gz -C /opt/module/
# 打开一个终端
[atguigu@hadoop100 ~]$ nohup /opt/module/idea-IU-203.6682.168/bin/idea.sh >/dev/null 2>&1 &
在Hive官网或者Github下载所需版本源码,并将其导入IDEA。
https://downloads.apache.org/hive/
tar -zxvf apache-hive-3.1.2-src.tar.gz -C /opt/module/
下载完依赖后,pom文件会报很多处错误,这个不能决定是否是错误。需要使用官方提供的编译打包方式去检验才行。
打开terminal终端,执行官方打包命令:
https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-BuildingHivefromSource
mvn clean package -Pdist -DskipTests -Dmaven.javadoc.skip=true
打包成功标志:
编译好的tar包在/opt/module/apache-hive-3.1.2-src/packaging/target路径下
集群中所安装的Hadoop-3.1.3中和Hive-3.1.2中包含guava的依赖,Hadoop-3.1.3中的版本为guava-27.0-jre,而Hive-3.1.2中的版本为guava-19.0。由于Hive运行时会加载Hadoop依赖,故会出现依赖冲突的问题。
将
<guava.version>19.0</guava.version>
更改为:
<guava.version>27.0-jre</guava.version>
mvn clean package -Pdist -DskipTests -Dmaven.javadoc.skip=true
注:休要修改的位置参考:https://github.com/gitlbo/hive/commits/3.1.2
Hive-3.1.2默认依赖的Spark版本为2.3.0,与集群中安装的Spark3.0.0存在兼容性问题。
将
<spark.version>2.3.0</spark.version>
改为:
<spark.version>3.0.0</spark.version>
注:需要修改的位置参考:https://github.com/gitlbo/hive/commits/3.1.2
Hive3.1.2的release版本中存在https://issues.apache.org/jira/browse/HIVE-19316中所描述的问题,会影响到往表中插入数据。该问题题已在3.2.0版本中之后被解决了,但是Hive-3.1.2中仍然存在该问题。
需要修改的位置参考:
https://github.com/apache/hive/pull/378/commits/4e0686fcb7b9e4988156bfd9682ad3b96ae044b2
或者
https://github.com/gitlbo/hive/commits/3.1.2
待上述问题全部解决完毕,重新打包
mvn clean package -Pdist -DskipTests -Dmaven.javadoc.skip=true
编译好的安装包位于/opt/software/apache-hive-3.1.2-src/packaging/target路径下,下图中的apache-hive-3.1.2-bin.tar.gz即为编译好的安装包。
1)将编译完成的安装包上传到集群
2)将集群中已部署的Hive做好备份工作
3)解压新的安装包到原来的路径
4)将原来部署的Hive中的配置文件放入新的Hive中
[atguigu@hadoop102 hive]$ cp /opt/module/hive_bak/conf/hive-site.xml conf/
[atguigu@hadoop102 hive]$ cp /opt/module/hive_bak/conf/spark-defaults.conf conf/
5)向新部署的Hive的lib目录下添加mysql驱动
[atguigu@hadoop102 hive]$ cp /opt/module/hive_bak/lib/mysql-connector-java-5.1.48.jar lib/
6)启动Hive客户端,测试
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。