hive開啟計算引擎session卡死

2021-10-11 13:22:49 字數 2455 閱讀 1441

平台:h3c dataengine

表現形式:啟動hive shell第一次執行走計算流程的sql時,開啟計算引擎的session時卡死,視覺化檢視任務正常提交,就是無法執行。

原因解釋:無論什麼yarn排程器預設都是單佇列,h3c使用的是公平排程器,但佇列中存在其他正在執行的任務導致佇列資源占用達到10%,導致後面的任務需要等待前面的任務走完,卡死的根本原因是安裝了spark,導致後台會啟動spark session且一直執行,導致之後的任務無法提交。

解決方案:配置yarn多佇列

<?xml version="1.0"?>

>

>

>

name

="tez"

>

>

5weight

>

>

fairschedulingpolicy

>

queue

>

name

="default"

>

>

5weight

>

queue

>

queue

>

>

name

="specified"

create

="false"

/>

name

="default"

/>

queueplacementpolicy

>

allocations

>

啟動hive shell,設定hive的資源隊列為tez

set mapred.job.queue.name=tez;

報錯:不允許設定當hive正在執行時

解釋:當前白名單允許修改的配置中不包括當前配置

解決:將該字段新增到白名單中,或直接修改hive配置

hiveserver2-site中新增如下配置

hive.security.

authorization

tez\.

.*\..*

|mapreduce\.

.*\..*

|mapreduce\.

.*\.

.*\..*

|mapreduce\.

.*\.

.*\.

.*\..*

|parquet\.

.*\.

.*\.

.*\..*

|hive\..*

|hive\.

.*\..*

|hive\.

.*\.

.*\..*

|hive\.

.*\.

.*\.

.*\.

.*

hive的問題解決,但啟動的任務仍然放在default中,即使制定了hive任務的佇列,猜測可能是因為queueplacementpolicy策略理解有誤,待考察第二套方案,根據使用者名稱設定佇列,任務誰提交放在哪個佇列下

<?xml version="1.0"?>

>

>

>

name

="hdfs"

>

>

5weight

>

queue

>

name

="default"

>

>

5weight

>

>

fairschedulingpolicy

>

queue

>

queue

>

>

name

="specified"

create

="false"

>

rule

>

name

="primarygroup"

create

="false"

>

rule

>

name

="user"

create

="false"

>

rule

>

name

="default"

>

rule

>

queueplacementpolicy

>

allocations

>

問題解決,經測試,使用yarn使用者提交wordcount任務,走default資源佇列,兩個任務實現並行執行,問題解決

Hive更換Tez計算引擎

centos7 jdk1.8 hive 2.3.6 hadoop 2.7.7 tez 0.9.2 linux下hive的安裝 用hive直接編寫mr程式,假設有4個有依賴關係的mr作業,上圖中,藍色代表maptask,綠色代表reducetask,雲狀表示中間結果持久化到磁碟 tez可以將多個有依賴...

hive安裝Tez計算引擎

centos 7 hive 1.2.1 apache tez 0.9.1 上傳taz到hdfs中 hadoop fs mkdir tez hadoop fs put apache tez 0.9.1 bin.tar.gz tez 解壓縮tar zxvf apache tez 0.9.1 bin.ta...

Hive支援的計算引擎

目前hive支援mapreduce tez和spark 3種計算引擎。mapreduce計算引擎 在hive 2.0之後不推薦mr作為計算引擎。map和reduce的工作流程 mr執行的完整過程 map在讀取資料時,先將資料拆分成若干資料,並讀取到map方法中被處理。資料在輸出的時候,被分成若干分割...