hive on spark(yarn)安装部署

本文详细介绍了如何在Hadoop 3.2.0环境下,安装部署Hive 3.1.1与Spark 2.3.0的集成,特别强调了版本兼容性问题,以及通过编译Spark源码来创建无Hive支持的版本。在编译过程中,使用了Scala 2.11.8和maven 3.2.5,并提供了Ubuntu 16.04上的maven安装步骤。最后,文章详述了Hive和Spark的配置以及验证过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

〇、说明
HDFS+spark+hive的测试环境之前单独搭建成功了,后来需要使用hive on spark才发现需要重新配置。查看了很多参考文章,包括官网上的教程,一路摸索着,总算是成功了。
0.参考文章
Hive on Spark: Getting Started
Running Spark on YARN
Building Spark
Spark Configuration
Hive on Spark安装配置详解
Hive记录-Hive on Spark环境部署
hive集群配置 hive on spark
Hive on Spark 搭建&踩坑

1.版本兼容
这个问题很重要,官网的解释是hive on spark属于test,所以并不是各种版本都可以混搭,所以有两种做法:
①查看一下各个组件的pom.xml文件(源码下载后解压,位于根目录)
这个方法我尝试了一下,发现各个组件对彼此的要求不同,比如说hive3.1.1对hadoop的要求是3.1.0,对spark的要求是2.3.0;但是spark2.3.0对hadoop要求是2.6.5,对hive要求的要求是1.2.1(这个我有点不理解);
查看官网说明
自己之前安装的是hive3.1.1,spark2.4.

<think>好的,我需要帮助用户在Docker环境中进行单节点的Hive on Spark部署。首先,我要理清整个流程,确保步骤正确且符合用户提供的引用内容。 用户提到了三个引用,其中引用[1]是关于安装Docker的,引用[2]和[3]涉及Hive on Spark的配置和单机部署。所以,我应该先指导用户安装Docker,然后配置Hive on Spark,并参考引用中的版本信息。 首先,用户需要安装Docker,按照引用[1]的说明进行操作。接下来,部署Hadoop、SparkHive。引用[3]提到使用Hadoop 3.3.4、Hive 3.1.3、Spark 2.4.8,可能需要确认这些版本的兼容性,但用户可能希望保持版本一致,所以直接采用这些版本。 然后,构建Docker镜像时,需要选择合适的基镜像,比如Ubuntu,并安装Java和其他依赖。需要确保Java环境变量正确配置,因为Hadoop和Spark都依赖Java。 接下来是配置Hadoop单节点模式,这包括编辑配置文件如core-site.xml、hdfs-site.xml等,以及格式化NameNode。这部分需要步骤详细,避免用户出错。 安装和配置Hive时,需要下载指定版本的Hive,并配置hive-site.xml,尤其是设置Spark相关的参数,如spark.home,引用[2]提到如果不设置SPARK_HOME,会使用默认的SparkSubmit,这可能导致问题,所以必须正确配置。 配置Hive on Spark需要将Spark的依赖包复制到Hive的lib目录,并确保Hive的配置指向正确的Spark路径。这里需要特别注意版本兼容性,如Hive 3.1.3可能对Spark 2.4.8有特定要求,需确认是否支持。 最后,启动Hadoop和Hive服务,并运行测试查询,以验证部署是否成功。用户可能遇到的常见问题包括端口冲突、配置文件错误或环境变量未正确设置,需要给出排查建议。 在整个过程中,需要确保所有步骤适用于Docker环境,比如文件挂载、网络设置等。可能还需要编写Dockerfile和docker-compose.yml来自动化部署,但用户可能需要手动执行步骤,所以分步说明更合适。 另外,生成相关问题时要围绕部署步骤、配置注意事项、版本兼容性和故障排除,帮助用户深入理解可能遇到的问题。</think>### 分步教程:Docker中单节点Hive on Spark部署 #### 1. 安装Docker环境 按照Docker官方文档安装并启动Docker[^1]: ```bash # 验证Docker安装 docker --version ``` #### 2. 准备基础镜像 使用Ubuntu镜像并安装必要依赖: ```dockerfile FROM ubuntu:20.04 RUN apt-get update && apt-get install -y \ openssh-server \ openjdk-8-jdk \ wget \ vim \ procps ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ``` #### 3. 部署Hadoop单机模式 使用Hadoop 3.3.4[^3]: ```bash wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz tar -xzvf hadoop-3.3.4.tar.gz -C /opt/ ``` 配置`etc/hadoop/core-site.xml`: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` 格式化HDFS: ```bash hdfs namenode -format ``` #### 4. 安装Spark 2.4.8 从Spark官网下载适配版本: ```bash wget https://archive.apache.org/dist/spark/spark-2.4.8/spark-2.4.8-bin-without-hadoop.tgz tar -xzvf spark-2.4.8-bin-without-hadoop.tgz -C /opt/ ``` 配置环境变量: ```bash export SPARK_HOME=/opt/spark-2.4.8-bin-without-hadoop export PATH=$SPARK_HOME/bin:$PATH ``` #### 5. 配置Hive 3.1.3 下载并解压Hive: ```bash wget https://downloads.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz tar -xzvf apache-hive-3.1.3-bin.tar.gz -C /opt/ ``` 配置`hive-site.xml`: ```xml <property> <name>spark.home</name> <value>/opt/spark-2.4.8-bin-without-hadoop</value> <!-- 必须明确指定SPARK_HOME[^2] --> </property> <property> <name>hive.execution.engine</name> <value>spark</value> </property> ``` #### 6. 集成HiveSpark 复制Spark依赖到Hive的lib目录: ```bash cp $SPARK_HOME/jars/*.jar $HIVE_HOME/lib/ cp $HADOOP_HOME/share/hadoop/common/lib/*.jar $HIVE_HOME/lib/ ``` #### 7. 启动服务并验证 启动HDFS和YARN: ```bash start-dfs.sh && start-yarn.sh ``` 初始化Hive元数据库: ```bash schematool -initSchema -dbType derby ``` 运行Hive CLI测试Spark引擎: ```sql CREATE TABLE test (id INT); INSERT INTO test VALUES (1); SELECT * FROM test; -- 观察是否触发Spark作业 ``` ### 常见问题排查 - **Spark作业未启动**:检查`spark.home`配置路径是否正确[^2] - **类冲突错误**:确保Hive的lib目录仅包含匹配版本的Spark和Hadoop依赖 - **端口冲突**:通过`netstat -tunlp`检查9000/8080端口占用情况
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值