CDH 版本: cdh6.3.2
组件版本:
hadoop 版本: 3.0.0
spark 版本:2.4.0
hive 版本 :2.1.1
使用编码方式进行整合
首先添加spark-hive 依赖 和hive 依赖
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>2.1.1-cdh6.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>2.4.0-cdh6.3.2</version>
</dependency>
spark session 配置
def sc: SparkSession = {
var conf = new SparkConf()
.set("spark.sql.legacy.allowCreatingManagedTableUsingNonemptyLocation", "true")
.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
.set("spark.sql.warehouse.dir", "your hdfs parth")
.set("hive.metastore.uris", "your hive metastore path")
SparkSession.builder()
.config(conf)
.enableHiveSupport()
.getOrCreate()
}
如果你的cdh 集群中没有将hive-core.xml 和hive-site.xml copy 到spark conf 目录下可以使用该方式进行整合。
使用这种方式整合hive 需要hiveserver2 已经启动 通过hive.metastore.uris 获取hive元数据