偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Hadoop運(yùn)維記錄

云計(jì)算 Hadoop
Hive是目前應(yīng)用最多最廣的SQL on Hadoop工具,近期很多專業(yè)的大數(shù)據(jù)公司推出了很多新的,基于列式或者內(nèi)存熱數(shù)據(jù)的SQL工具,像Impala,Tez,Spark等等,但是Hive仍然是目前使用率最高和普及面最廣的SQL on Hadoop的工具。在以前淘寶羅李的報(bào)告中,淘寶90%的業(yè)務(wù)跑在Hive上面。

記錄一些Hive的優(yōu)化點(diǎn),和能夠提升的效率差異。

Hive是目前應(yīng)用最多最廣的SQL on Hadoop工具,近期很多專業(yè)的大數(shù)據(jù)公司推出了很多新的,基于列式或者內(nèi)存熱數(shù)據(jù)的SQL工具,像Impala,Tez,Spark等等,但是Hive仍然是目前使用率最高和普及面最廣的SQL on Hadoop的工具。在以前淘寶羅李的報(bào)告中,淘寶90%的業(yè)務(wù)跑在Hive上面。暴風(fēng)影音的比例更高一些,大概95%以上都是跑在Hive上面。盡管很多人對(duì)Hive有看法,效率低,查詢慢,bug多。但是并不可否認(rèn)hive是一個(gè)開創(chuàng)性的工具,提供了更多的想象空間。而且,在生產(chǎn)集群上的數(shù)據(jù)查詢程序的開發(fā)效率,Hive要遠(yuǎn)遠(yuǎn)高于自己寫MR。

在默認(rèn)情況下,Hive的配置參數(shù)比較保守,所以效率會(huì)比較差一點(diǎn),修改配置會(huì)讓查詢效率有比較大的提升,記錄幾個(gè)對(duì)查詢效率影響比較重要的參數(shù)。

首先拿到一個(gè)hive要修改的就是他的元數(shù)據(jù)存儲(chǔ),默認(rèn)情況下,Hive是用Derby內(nèi)存數(shù)據(jù)庫(kù)存儲(chǔ)元數(shù)據(jù),不明白,都是嵌入式數(shù)據(jù)庫(kù),Hive為啥不用SQLite呢,之前寫過修改元數(shù)據(jù)存儲(chǔ)的文章,不在贅述。修改元數(shù)據(jù)存儲(chǔ)的傳送門在這里。

Hive參數(shù)優(yōu)化:

 

 

比較重要是頭幾個(gè)和后幾個(gè),尤其是最后兩個(gè),性能提升效果是最明顯的。但是會(huì)同時(shí)開啟更多的MR任務(wù),這就需要一個(gè)平衡了。

嵌套SQL并行執(zhí)行優(yōu)化:

set hive.exec.parallel=true;

set hive.exec.parallel.thread.number=16;

效率可提升至少100%

某job需要11個(gè)stage:

非并行35分鐘

并行8個(gè)job執(zhí)行10分鐘

并行16個(gè)job執(zhí)行6分鐘

Hive查詢的優(yōu)化:

一、數(shù)據(jù)量大的表和數(shù)據(jù)量小的表做關(guān)聯(lián)的時(shí)候,把數(shù)據(jù)量小的表放到j(luò)oin前面去select。

原因是在 Join 操作的 Reduce 階段,位于 Join 操作符左邊的表的內(nèi)容會(huì)被加載進(jìn)內(nèi)存,將條目少的表放在左邊,可以有效減少發(fā)生內(nèi)存溢出錯(cuò)誤的幾率。

二、Join優(yōu)化

Join查找操作中如果存在多個(gè)join,且所有參與join的表中其參與join的key都相同,則會(huì)將所有的join合并到一個(gè)mapred程序中。

例:

SELECT a.val, b.val, c.val FROM a JOIN b ON (a.key = b.key1) JOIN c ON (c.key = b.key1) 在一個(gè)mapre程序中執(zhí)行join

SELECT a.val, b.val, c.val FROM a JOIN b ON (a.key = b.key1) JOIN c ON (c.key = b.key2) 在兩個(gè)mapred程序中執(zhí)行join

Map join的關(guān)鍵在于join操作中的某個(gè)表的數(shù)據(jù)量很小

例:

SELECT /*+ MAPJOIN(b) */ a.key, a.value FROM a join b on a.key = b.key

三、用sum() group by的方式來替換count(distinct)。

四、排序優(yōu)化

Order by 實(shí)現(xiàn)全局排序,一個(gè)reduce實(shí)現(xiàn),效率低

Sort by 實(shí)現(xiàn)部分有序,單個(gè)reduce輸出的結(jié)果是有序的,效率高,通常和DISTRIBUTE BY關(guān)鍵字一起使用(DISTRIBUTE BY關(guān)鍵字 可以指定map 到 reduce端的分發(fā)key)

CLUSTER BY col1 等價(jià)于DISTRIBUTE BY col1 SORT BY col1.

五、合并小文件

文件數(shù)目過多,會(huì)給 HDFS 帶來壓力,并且會(huì)影響處理效率,可以通過合并 Map 和 Reduce 的結(jié)果文件來盡量消除這樣的影響

hive.merge.mapfiles = true是否和并 Map 輸出文件,默認(rèn)為 True

hive.merge.mapredfiles = false是否合并 Reduce 輸出文件,默認(rèn)為 False

hive.merge.size.per.task = 256*1000*1000合并文件的大小。

這里的參數(shù)沒有寫到上面的表格里是因?yàn)檫@是可以根據(jù)任務(wù)不同臨時(shí)設(shè)置的,而不一定非要是全局設(shè)置。有時(shí)候全局設(shè)置了反而對(duì)大文件的操作有性能影響。

六、使用分區(qū),RCFile,lzo,ORCFile等

Hive中的每個(gè)分區(qū)都對(duì)應(yīng)hdfs上的一個(gè)目錄,分區(qū)列也不是表中的一個(gè)實(shí)際的字段,而是一個(gè)或者多個(gè)偽列,在表的數(shù)據(jù)文件中實(shí)際上并不保存分區(qū)列的信息與數(shù)據(jù)。Partition關(guān)鍵字中排在前面的為主分區(qū)(只有一個(gè)),后面的為副分區(qū)

靜態(tài)分區(qū):靜態(tài)分區(qū)在加載數(shù)據(jù)和使用時(shí)都需要在sql語(yǔ)句中指定

例:(stat_date='20120625',province='hunan')

動(dòng)態(tài)分區(qū):使用動(dòng)態(tài)分區(qū)需要設(shè)置hive.exec.dynamic.partition參數(shù)值為true,默認(rèn)值為false,在默認(rèn)情況下,hive會(huì)假設(shè)主分區(qū)時(shí)靜態(tài)分區(qū),副分區(qū)使用動(dòng)態(tài)分區(qū);如果想都使用動(dòng)態(tài)分區(qū),需要設(shè)置set hive.exec.dynamic.partition.mode=nostrick,默認(rèn)為strick

例:(stat_date='20120625',province)

七、使用外部表而盡量少用內(nèi)部表,這主要從數(shù)據(jù)的安全性上考量。

本文出自 “實(shí)踐檢驗(yàn)真理” 博客,http://slaytanic.blog.51cto.com/2057708/1295222。

 

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

2016-12-13 13:15:49

運(yùn)維

2019-03-19 08:41:38

Linux運(yùn)維變更

2019-03-15 10:13:10

運(yùn)維云計(jì)算運(yùn)營(yíng)

2010-01-21 22:19:25

網(wǎng)絡(luò)優(yōu)化運(yùn)維管理摩卡軟件

2013-03-29 09:15:08

IT運(yùn)維運(yùn)維人員運(yùn)維工程師

2020-06-30 09:35:25

智能運(yùn)維云架構(gòu)IT運(yùn)營(yíng)

2018-03-27 16:23:53

運(yùn)維AI智能

2014-08-04 10:10:35

IT運(yùn)維自動(dòng)化運(yùn)維

2019-02-19 09:14:52

IT運(yùn)維系統(tǒng)

2018-08-16 08:37:03

機(jī)房運(yùn)維硬件

2010-04-14 16:15:20

IT運(yùn)維Mocha BSM摩卡軟件

2017-12-15 09:20:20

IT運(yùn)維順豐

2013-05-06 15:10:18

IT運(yùn)維管理大數(shù)據(jù)

2017-03-20 14:19:10

DevOps運(yùn)維IT

2022-10-20 17:37:46

運(yùn)維智能管理平臺(tái)

2011-11-24 21:59:55

運(yùn)維企業(yè)外包

2015-10-30 10:40:45

意義數(shù)據(jù)運(yùn)維運(yùn)維

2011-03-21 14:43:42

2017-10-13 13:14:35

互聯(lián)網(wǎng)

2019-12-26 10:10:41

運(yùn)維架構(gòu)技術(shù)
點(diǎn)贊
收藏

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