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

首先,如果想要在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.
在这里插入图片描述

1. 下载hive源码包

把hive 3.1.3 的源码包下载到本地,目的是可以用intellij打开,方便修改相关源码。
hive源码包
在这里插入图片描述

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

解压后,文件夹内有一个同名文件夹apache-hive-3.1.3-src,用intellij打开。
在这里插入图片描述

修改内容参考链接:修改内容
具体需要修改的部分如下
在这里插入图片描述

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

在这里插入图片描述
最上面表示文件名,直接从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 中,添加以下镜像:

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
    </mirror>
<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>spring-plugin</name>
    <url>https://maven.aliyun.com/repository/spring-plugin</url>
 </mirror>

 <mirror>
    <id>repo2</id>
    <name>Mirror from Maven Repo2</name>
    <url>https://repo.spring.io/plugins-release/</url>
    <mirrorOf>central</mirrorOf>
 </mirror>

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

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/ 文件夹,看到有一个编译好的包:
在这里插入图片描述

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 部署成功了
在这里插入图片描述

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

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Hive 3.1.3和Spark 3.3是两个分布式计算框架,广泛用于大数据处理和分析任务,并且在性能、功能和生态系统方面有所不同。 首先,Hive是一个基于Hadoop的数据仓库框架,它提供了一个SQL样式的查询语言(HiveQL)来处理结构化数据。Hive通过将查询转化为MapReduce任务来执行,可以处理大规模数据集。然而,Hive的查询速度相对较慢,因为它需要将查询转化为MapReduce作业并执行各个任务。此外,Hive具有成熟的元数据管理和集成,使得数据仓库的管理和查询变得更加方便。 相比之下,Spark是一个快速的、内存计算的分布式计算框架,它提供了一个更加通用的编程模型,支持多种编程语言(如Scala和Python)。Spark的核心概念是弹性分布式数据集(RDD),它将数据存储在集群的内存中,以实现高速数据处理。Spark通过基于内存的计算和支持各种数据源(如HDFS、Hive和关系数据库)的高效连接来提供快速和灵活的数据处理能力。此外,Spark还提供了丰富的机器学习、图形处理和流式处理等库,以支持更多的应用场景。 总的来说,Hive适用于大规模数据集的批处理任务,尤其是对结构化数据的分析和查询。Spark则适用于更复杂和灵活的分布式计算任务,既可以进行批处理,也可以进行流式处理和机器学习等高级数据处理。但需要注意的是,HiveSpark并不是对立的选择,它们在很多情况下可以结合使用,以发挥它们各自的优势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值