利用Cloudera的CDH套件搭建好Hadoop 2.6,可CDH中的Hive版本不高,于是独立安装Hive 2.3,由于Hive的执行引擎默认是Spark,根据Hive官网上的Hive on Spark教程开始配置。
Standalone
配置了Spark Standalone模式之后,配置Hive遇到一些困难。
由于使用的是pre-build版本的Spark,遇到报错:
1 2
java.lang.NoSuchFieldError: SPARK_RPC_CLIENT_CONNECT_TIMEOUT at org.apache.hive.spark.client.rpc.RpcConfiguration.<clinit>(RpcConfiguration.java:46)
接下来要自己编译Spark without Hive,可是一直没有解决,报错为:
1 2 3 4
[info] 'compiler-interface' not yet compiled for Scala 2.11.8. Compiling... error: scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mirror not found. at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:17) at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:18)
非常曲折,最后选择尝试已经配置好的Yarn模式的Spark。
Yarn
Yarn模式的Spark集群已经就绪,在Hive中配置Spark
1 2 3 4 5 6
set hive.execution.engine=spark; set spark.master=yarn; set spark.executor.memory=512m; set spark.serializer=org.apache.spark.serializer.KryoSerializer; set spark.eventLog.enabled=true; set spark.eventLog.dir=<Spark event log folder (must exist)>