上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

hive 3.1.3 on spark 3.0.0 安装教程 (内附重新编译好的jar包)

guduadmin115小时前

首先,如果想要在hive 3.1.3上使用spark 3.0.0,不可避免地要重新编译hive

如果只是配置了hive-site.xml和spark-defaults.conf,那么在插入测试的时候会报如下错误:

FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Spark job failed during runtime. Please check stacktrace for the root cause.

hive 3.1.3 on spark 3.0.0 安装教程 (内附重新编译好的jar包),在这里插入图片描述,第1张

1. 下载hive源码包

把hive 3.1.3 的源码包下载到本地,目的是可以用intellij打开,方便修改相关源码。

hive源码包

hive 3.1.3 on spark 3.0.0 安装教程 (内附重新编译好的jar包),在这里插入图片描述,第2张

2. 解压并用idea打开,改写源码

解压后,文件夹内有一个同名文件夹apache-hive-3.1.3-src,用intellij打开。

hive 3.1.3 on spark 3.0.0 安装教程 (内附重新编译好的jar包),在这里插入图片描述,第3张

修改内容参考链接:修改内容

具体需要修改的部分如下

hive 3.1.3 on spark 3.0.0 安装教程 (内附重新编译好的jar包),在这里插入图片描述,第4张

以上圈起来的部分,一个个点进去照着改。怕有的人看不懂,以下图为例:

hive 3.1.3 on spark 3.0.0 安装教程 (内附重新编译好的jar包),在这里插入图片描述,第5张

最上面表示文件名,直接从intellij找到相关文件修改即可。绿色部分表示要添加的内容,红色部分表示要删除的内容。

修改完毕后,重新打包成 .tar.gz 的格式。

如果你不想自己动手,没关系,我提供了修改好的源码包,里面还有不带hadoop的纯净spark。为啥没有maven编译好的jar包呢,因为租的服务器带宽太垃了,下到本地要半年。

链接:https://pan.baidu.com/s/1FCOJp29P56xZ8RMUYD9A3w

提取码:jjc6

3. 上传压缩包至服务器并maven编译

上传至服务器,例如我上传至 /opt/software/。

在下一步操作前,要先自行安装好maven,没安装的请自行百度。

cd $MAVEN_HOME/conf/
vim settings.xml

在 settings.xml 中,添加以下镜像:


    alimaven
    aliyun maven
    http://maven.aliyun.com/nexus/content/groups/public/
    central
    

    aliyunmaven
    *
    spring-plugin
    https://maven.aliyun.com/repository/spring-plugin
 
 
    repo2
    Mirror from Maven Repo2
    https://repo.spring.io/plugins-release/
    central
 

进入刚刚压缩包上传的路径,解压压缩包:

cd /opt/software/
# 解压
tar -zxvf apache-hive-3.1.3-src.tar.gz
# 进入目录
cd apache-hive-3.1.3-src/
# 使用Maven进行编译打包
mvn clean package -Pdist -DskipTests -Dmaven.javadoc.skip=true

打包需要一段时间,完成后,进入到 cd packaging/target/ 文件夹,看到有一个编译好的包:

hive 3.1.3 on spark 3.0.0 安装教程 (内附重新编译好的jar包),在这里插入图片描述,第6张

4. 改造原有hive环境

由于我之前是安装过hive的,此时需要先把旧的hive重命名,比如mv hive hive_old

然后解压我们编译好的包 tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/module/

这里我把解压出来的文件夹重命名成hive。

# 拷贝原先的 hive-site.xml 和 spark-defaults.conf
cp hive_old/conf/hive-site.xml hive/conf/
cp hive_old/conf/spark-defaults.conf hive/conf/
# 拷贝lib下的 mysql jar包,没有的可以自行下载,我上面的链接也有提供
cp hive_old/lib/mysql-connector-java-5.1.37-bin.jar hive/lib/

5. 上传纯净spark jar包至集群

需要spark-3.0.0-bin-without-hadoop.tgz,可以自行下载,也可以从我的链接里下

# 解压
tar -zxvf spark-3.0.0-bin-without-hadoop.tgz
# 创建目录
hadoop fs -mkdir /spark-jars
# 上传至集群
hadoop fs -put spark-3.0.0-bin-without-hadoop/jars/* /spark-jars

6. 启动集群并测试

分别启动 hadoop, metastore, hiveserver2

然后用 bin/hive 启动hive测试一下

create table student(id int, name string);
insert into table student values(1,'abc');

如果出现以下内容,表示 hive 3.1.3 on spark 3.0.0 部署成功了

hive 3.1.3 on spark 3.0.0 安装教程 (内附重新编译好的jar包),在这里插入图片描述,第7张

如果本文对你有帮助,请点个赞支持一下~~

网友评论

搜索
最新文章
热门文章
热门标签