简述
hive on spark 就是应用 hive 记录元数据,以及解析 sql。应用 spark 的 rdd 真正执行计算工作。
hdfs 负责存储
spark 负责执行
hive 负责数据管理
版本
apache-hive-3.1.3-bin.tar
spark-3.3.1-bin-hadoop3
spark-3.3.1-bin-without-hadoop
坑
因为初步接触大数据,有些常识性的坑,列在上面。
- hive 目前只反对 jdk1.8,所以 hadoop、hive、spark 集群里的 jdk 都得用 1.8
- spark 依赖的 jar,上传到 hdfs 集群的时候,要用 without-hadoop 版本的。spark 官网能够找到对应的版本
- hive 适配 3.x 版本的 spark,必须本人用源码编译
- win 环境编译不太不便,因为很多 sh 脚本 win 环境下不能间接执行。我这里装了 centos 虚拟机,桌面版 idea 编译的
- hive sql 执行失败的时候查看日志。拜访你集群 yarn 的治理界面,点击进去每次 hive 连贯,外面 log 有对应日志
配置文件
hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.0.121:3306/metastore?useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>hadoop-4</value>
</property>
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>spark.yarn.jars</name>
<value>hdfs://hadoop-4:8020/spark-jars/*</value>
</property>
<property>
<name>hive.execution.engine</name>
<value>spark</value>
</property>
<property>
<name>hive.spark.client.connect.timeout</name>
<value>100000ms</value>
</property>
<property>
<name>hive.auto.convert.join</name>
<value>false</value>
<description>Enables the optimization about converting common join into mapjoin</description>
</property>
</configuration>
spark-defaults.conf
spark.master yarn
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop-4:8020/spark-history
spark.executor.memory 1g
spark.driver.memory 1g
spark-env.sh
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
hive spark 版本不兼容
https://blog.csdn.net/lilyjok…
https://cxyzjd.com/article/we…