[英]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內存+開銷。
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.