允许Yarn在节点上缓存必要的spark依赖关系jar,这样每次应用程序运行时都不需要分发它。
-
在Hive 2.2.0之前,将spark-assembly jar上传到hdfs文件(例如:hdfs:// xxxx:8020 / spark-assembly.jar)并在hive-site.xml中添加以下内容
<property>
<name>spark.yarn.jar</name>
<value>hdfs:
//xxxx:8020/spark-assembly.jar</value>
</property>
-
Hive 2.2.0及之后,将$ SPARK_HOME / jars中的所有jar上传到hdfs文件夹(例如:hdfs:/// xxxx:8020 / spark-jars)并在hive-site.xml中添加以下内容
<property>
<name>spark.yarn.jars</name>
<value>hdfs:
//xxxx:8020/spark-jars/*</value>
</property>
上述配置完成后会出现
Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.metadata.HiveException(Failed to create spark client.)'
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Failed to create spark client.这样的问题,hive无法创建spark任务启动客户端,是因为缺少了spark的yarn-client的ip配置
需要在hive-site.xml中增加一些配置
<property>
<name>spark.master</name>
<value>spark://master:7077</value>
</property>