1,首先是环境一定要统一,我首先说一下我的环境
Hive3.1.2(并且是对于spark3.00来说是编译好的),spark的2个压缩包分别为
spark-3.0.0-bin-hadoop3.2.tgz,spark-3.0.0-bin-without-hadoop.tgz
上面的2个spark一定要确定版本,如果hive编译的spark的3.1.1版本一定要用spark3.1.1的2个压缩包
2.上面环境弄好后就是解压spark的第一个压缩包,然后配置环境变量,注意只要配置环境变量就好,其它的配置可以不用去弄,我把以前的spark的环境变量注释了,采用新的
3,如果上面的做好了,就可以解压缩另一个spark的压缩包,然后在hdfs上将解压的jar包拉进来
命令如下:
hadoop fs -mkdir /spark-jars
hadoop fs -put spark-3.0.0-bin-without-hadoop/jars/* /spark-jars
4,后面就是在hive的conf目录建一个文件夹名为spark-defaults.conf,内容如下:
spark.master yarn
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop102:8020/spark-history
spark.executor.memory 1g
spark.driver.memory 1g
其中spark.eventLog.dir 是用来存放spark行日志,根据自己的机器来
5,下面才是最重要的一步,就是修改hive-site.xml文件,加入spark引擎,这一步一定要做
<!--Spark依赖位置(注意:端口号8020必须和namenode的端口号一致)-->
<property>
<name>spark.yarn.jars</name>
<value>hdfs://hadoop102:8020/spark-jars/*</value>
</property>
<!--Hive执行引擎-->
<property>
<name>hive.execution.engine</name>
<value>spark</value>
</property>
可能每个人的hive-site.xml都不一样,但一定要记住,如果你以前配置过hive现在要重新配置hive一定要将元数据的数据库变成一个新的,一定不要和以前的一样,还有就是一定要在hive的lib加入连接MySQL的jar包
我遇到的问题是下面这种情况,就是缺少这个jar包,名字是MySQL.jar
如果你上面的步骤都做好了,并且都配置好了,那么你就可以启动hive的元数据了,如果是下面的图片的问题就是启动成功了,下面就是测试hive了
6.如果你在hive往表里插入数据是如下图,那么恭喜你你的hive配置spark计算引擎成功了,hive首次使用spark计算会有点慢,等一下就好
最后在给大家提一下,首先就是注意hive的版本一定是编译好的,这个一定要的,然后按我的那个步骤来安装就好,最后就是提醒一下,如果上面的都配置好了如果启动还是又问题那么一定是hive-site.xml文件没有配置好,一定是这个有问题导致失败,大家如果遇到问题一定要心静慢慢解决问题,确保自己每一步都没有问题,如果大家要安装包和hive-site.xml文件的配置都可以给我留言,或者遇到别的问题也可以,我能解决的一定帮助大家解决。