厦门网站开发培训,能盈利的网站,怎么做投资网站不违法,wordpress 缓存下不计数目录 1 Hive 引擎简介2 Hive on Spark 配置2.1 在 Hive 所在节点部署 Spark2.2 在hive中创建spark配置文件2.3 向 HDFS上传Spark纯净版 jar 包2.4 修改hive-site.xml文件2.5 Hive on Spark测试2.6 报错 1 Hive 引擎简介 Hive引擎包括#xff1a;MR#xff08;默认#xff09… 目录 1 Hive 引擎简介2 Hive on Spark 配置2.1 在 Hive 所在节点部署 Spark2.2 在hive中创建spark配置文件2.3 向 HDFS上传Spark纯净版 jar 包2.4 修改hive-site.xml文件2.5 Hive on Spark测试2.6 报错 1 Hive 引擎简介 Hive引擎包括MR默认、tez、spark。
Hive on SparkHive既作为存储元数据又负责 SQL 的解析优化语法是 HQL 语法执行引擎变成了 SparkSpark 负责采用 RDD 执行。
Spark on HiveHive 只作为存储元数据Spark负责SQL解析优化语法是Spark SQL语法Spark负责采用 RDD 执行。
2 Hive on Spark 配置 注意官网下载的Hive3.1.2和Spark3.0.0默认是不兼容的。因为Hive3.1.2支持的Spark版本是2.4.5所以需要我们重新编译Hive3.1.2版本。
编译步骤官网下载Hive3.1.2源码修改pom文件中引用的Spark版本为3.0.0如果编译通过直接打包获取jar包。如果报错就根据提示修改相关方法直到不报错打包获取jar包。 2.1 在 Hive 所在节点部署 Spark 1Spark官网下载 jar 包地址http://spark.apache.org/downloads.html
2上传并解压解压spark-3.0.0-bin-hadoop3.2.tgz
[huweihadoop101 software]$ tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module/
[huweihadoop101 software]$ mv /opt/module/spark-3.0.0-bin-hadoop3.2 /opt/module/spark3配置 SPARK_HOME 环境变量
[huweihadoop101 module]$ sudo vim /etc/profile.d/my_env.sh添加如下内容
# SPARK_HOME
export SPARK_HOME/opt/module/spark
export PATH$PATH:$SPARK_HOME/bin使环境变量生效
[huweihadoop101 module]$ source /etc/profile.d/my_env.sh2.2 在hive中创建spark配置文件 [huweihadoop101 software]$ cd /opt/module/hive-3.1.2/conf/
[huweihadoop101 conf]$ vim spark-defaults.conf添加如下内容
spark.masteryarn
spark.eventLog.enabledtrue
spark.eventLog.dirhdfs://hadoop101:9820/spark-history
spark.executor.memory1g
spark.driver.memory1g
spark.memory.offHeap.enabledtrue
spark.memory.offHeap.size2g
spark.driver.extraLibraryPath/opt/module/hadoop-3.1.3/lib/native
spark.executor.extraLibraryPath/opt/module/hadoop-3.1.3/lib/native在HDFS创建如下路径用于存储历史日志
[huweihadoop101 conf]$ hadoop fs -mkdir /spark-history2.3 向 HDFS上传Spark纯净版 jar 包 由于Spark3.0.0非纯净版默认支持的是 hive2.3.7版本直接使用会和安装的Hive3.1.2出现兼容性问题。所以采用Spark纯净版jar包不包含hadoop和hive相关依赖避免冲突。
Hive任务最终由Spark来执行Spark任务资源分配由Yarn来调度该任务有可能被分配到集群的任何一个节点。所以需要将Spark的依赖上传到HDFS集群路径这样集群中任何一个节点都能获取到。
1上传并解压spark-3.0.0-bin-without-hadoop.tgz
[huweihadoop101 conf]$ tar -zxvf /opt/software/spark-3.0.0-bin-without-hadoop.tgz -C /opt/module/2上传Spark纯净版jar包到HDFS
[huweihadoop101 conf]$ hadoop fs -mkdir /spark-jars
[huweihadoop101 conf]$ hadoop fs -put spark-3.0.0-bin-without-hadoop/jars/* /spark-jars2.4 修改hive-site.xml文件 [huweihadoop101 conf]$ vim /opt/module/hive-3.1.2/conf/hive-site.xml添加如下内容
!--Spark依赖位置注意端口号8020必须和namenode的端口号一致--
propertynamespark.yarn.jars/namevaluehdfs://hadoop101:9820/spark-jars/*/value
/property!--Hive执行引擎--
propertynamehive.execution.engine/namevaluespark/value
/property!--Hive和Spark连接超时时间--
propertynamehive.spark.client.connect.timeout/namevalue10000ms/value
/property2.5 Hive on Spark测试 1启动 spark
[huweihadoop101 ~]$ cd /opt/module/
[huweihadoop101 module]$ cd spark
[huweihadoop101 spark]$ sbin/start-all.sh
2启动hive客户端
[huweihadoop101 conf]$ hive3创建一张测试表
hive (default) create table student(id int, name string);4通过insert测试效果
hive (default) insert into table student values(1,abc);若结果如下则说明配置成功 2.6 报错 在最后插入数据测试Hive on Spark的时候总是报错也不是版本问题也不是内存问题困扰了一天了最后发现跟着教程走的namenode端口号写成了8020而我使用的是hadoop3版本在安装hadoop时将namenode端口号设的是9820 后来我将以下两个配置文件namenode的端口号改成9820最终才解决。