簡體   English   中英

Hive on Spark CDH 5.7-無法創建Spark客戶端

[英]Hive on Spark CDH 5.7 - Failed to create spark client

在使用spark引擎執行配置單元查詢時,我們遇到了錯誤。

無法執行Spark任務,但異常'org.apache.hadoop.hive.ql.metadata.HiveException(無法創建spark客戶端。)'失敗:執行錯誤,從org.apache.hadoop.hive.ql返回代碼1。 exec.spark.SparkTask

以下屬性設置為將spark用作執行引擎,而不是mapreduce:

set hive.execution.engine=spark;
set spark.executor.memory=2g;

我也嘗試更改以下屬性。

 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;

我是否需要設置其他屬性? 有人可以建議嗎?

似乎e YARN容器內存小於Spark Executor的要求。 請將YARN容器內存和最大值設置為大於Spark Executor內存+開銷。

  1. yarn.scheduler.maximum分配-MB
  2. yarn.nodemanager.resource.memory-MB

yarn.nodemanager.resource.memory-MB:

可分配給容器的物理內存量(以MB為單位)。 這意味着YARN可以在此節點上使用的內存量,因此該屬性應低於該計算機的總內存。

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

下一步是就如何將可用的總資源分配到容器中提供YARN指導。 通過指定要分配給容器的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歷史記錄服務器:在YARN服務實例>歷史記錄服務器> History Service WebUI上轉到Spark>單擊相關作業>單擊相關的失敗作業>單擊該作業的失敗階段,然后查找“詳細信息”部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM