Spark CDH 5.7上的Hive - 无法创建spark客户端

时间:2017-10-26 11:34:25

标签: apache-spark hive

我们在使用spark引擎执行配置单元查询时遇到错误。

  

执行spark任务失败,但有异常   'org.apache.hadoop.hive.ql.metadata.HiveException(无法创建   火花客户端。)'失败:执行错误,返回代码1   org.apache.hadoop.hive.ql.exec.spark.SparkTask

以下属性设置为使用spark作为执行引擎而不是mapreduce:

 set yarn.scheduler.maximum-allocation-mb=2048;
    set yarn.nodemanager.resource.memory-mb=2048;
    set spark.executor.cores=4;
    set spark.executor.memory=4g;
    set spark.yarn.executor.memoryOverhead=750;
    set hive.spark.client.server.connect.timeout=900000ms;

我也尝试更改以下属性。

screen_name, screen_name_retweet , screen_name_mention

我是否需要设置其他一些属性?谁有人建议?

1 个答案:

答案 0 :(得分:1)

似乎e YARN Container Memory小于Spark Executor要求。请将YARN Container内存和最大值设置为大于Spark Executor Memory + Overhead。

  1. yarn.scheduler.maximum分配-MB
  2. yarn.nodemanager.resource.memory-MB
  3. <强> yarn.nodemanager.resource.memory-MB:

    可以为容器分配的物理内存量(MB)。这意味着YARN可以在此节点上使用的内存量,因此该属性应该低于该计算机的总内存。

    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>40960</value> <!-- 40 GB -->
    

    下一步是提供有关如何分解容器中可用资源总量的YARN指南。您可以通过指定要为Container分配的最小RAM单位来执行此操作。

    在yarn-site.xml中

    <name>yarn.scheduler.minimum-allocation-mb</name> <!-- RAM-per-container ->
     <value>2048</value>
    

    <强> yarn.scheduler.maximum分配-MB:

    它以MB为单位定义容器可用的最大内存分配

    这意味着RM只能以“yarn.scheduler.minimum-allocation-mb”的增量为容器分配内存,而不能超过“yarn.scheduler.maximum-allocation-mb”,并且它不应该超过总分配内存节点。

    在yarn-site.xml中

    <name>yarn.scheduler.maximum-allocation-mb</name> <!-Max RAM-per-container->
     <value>8192</value>
    
      

    另请访问Spark History Server:在YARN服务实例上转到Spark&gt;   历史服务器&gt;历史服务WebUI&gt;点击相关工作&gt;点击   关于相关的失败工作&gt;单击该作业的失败阶段并查看   对于“细节”部分。