自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hive動(dòng)態(tài)分區(qū)導(dǎo)致的Jobtracker Hang問題

運(yùn)維 數(shù)據(jù)庫運(yùn)維 數(shù)據(jù)庫
昨天下午有20多分鐘Hadoop平臺(tái)無法跑Hive,Jobtracker的頁面也打不開,hadoop job –list也hang住沒有響應(yīng),過了10分鐘后恢復(fù)了,查看gc日志發(fā)現(xiàn)Jobtracker沒有進(jìn)行full gc,查看這段時(shí)間的Job日志發(fā)現(xiàn)一個(gè)可疑的Hive SQL: Insert into table t(dt) as select xxx,dt from txx,是一個(gè)用了動(dòng)態(tài)分區(qū)的查詢.這個(gè)查詢和Jobtracker Hang住有什么關(guān)系呢?

熟悉Jobtracker的都知道,在進(jìn)行Job初始化時(shí)EagerTaskInitializationListener會(huì)鎖住JobInProgress然后進(jìn)行InitTask,細(xì)節(jié)請各位查看代碼,這里有一步就是需要向hdfs寫入初始數(shù)據(jù)并flush,而Fairscheduler的Update Thread在更新資源池的資源時(shí)是在持有JobTracker和Fairscheduler的獨(dú)占鎖然后再去計(jì)算每個(gè)資源池的資源情況,而計(jì)算running_map/running_reduce的時(shí)候要去獲取相應(yīng)的JobInProgress鎖,各位讀者可能不明白,我為啥要講這塊呢,問題就出現(xiàn)在這里.

Hive在處理動(dòng)態(tài)分區(qū)的時(shí)候,主要經(jīng)歷這么幾個(gè)步驟tablescan->filesink->movetask

在進(jìn)行filesink的時(shí)候是根據(jù)記錄來處理的,會(huì)起N(part)個(gè)record writer然后開始處理動(dòng)態(tài)分區(qū)字段,即這里的dt,如果dt是連續(xù)的那么打開一個(gè)block開始寫,否則關(guān)閉當(dāng)前block,打開新dir的block繼續(xù)寫,這里如果dt是不連續(xù)的出現(xiàn)并且記錄數(shù)量巨大的情況下會(huì)產(chǎn)生大量的文件,導(dǎo)致hdfs的負(fù)載標(biāo)高,和當(dāng)時(shí)的hdfs的監(jiān)控是匹配的:

當(dāng)時(shí)的集群負(fù)載:

wKiom1Mr3syTM-zOAAMWZ6-2LOo698.jpg

當(dāng)時(shí)產(chǎn)生的文件數(shù):

wKioL1Mr3rOSDZwoAANEo5qPywU667.jpg

進(jìn)而導(dǎo)致JobInProgress被鎖住,從而JobTracker被鎖住,導(dǎo)致JobTracker Hang住了!

那怎么解決呢?利用distributeby dt把相同的dt排列到一起再進(jìn)行filesink就不會(huì)造成大量的小文件產(chǎn)生了。

原文鏈接:http://boylook.blog.51cto.com/7934327/1380981

責(zé)任編輯:彭凡 來源: 51CTO博客
相關(guān)推薦

2012-08-16 10:43:10

GC

2021-02-20 08:21:18

Hive動(dòng)態(tài)分區(qū)

2010-08-25 10:24:40

2017-04-19 12:09:56

數(shù)組動(dòng)態(tài)擴(kuò)容GC

2023-03-30 09:06:20

HiveSpark大數(shù)據(jù)

2010-04-29 11:01:14

Unix分區(qū)

2021-07-14 23:38:02

PostgreSQLOracle模式

2016-12-19 19:04:30

Hive問題集

2010-06-09 13:03:00

Opensuse分區(qū)

2022-12-13 10:05:13

MySQL數(shù)據(jù)庫

2016-11-07 09:20:24

2021-01-08 05:22:47

Spark動(dòng)態(tài)優(yōu)化

2015-07-20 17:05:38

SQL ServerNULL值

2017-07-05 14:14:33

MySQL表服務(wù)變慢

2017-07-19 09:53:42

Oracle分區(qū)問題

2011-07-06 15:47:29

SQL Server分區(qū)

2023-01-30 08:09:18

權(quán)限GreatSQL運(yùn)行

2022-07-03 20:31:59

JVMJava虛擬機(jī)

2022-05-11 08:22:54

IO負(fù)載NFSOS

2010-06-08 17:12:55

OpenSUSE 硬盤
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)