成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hadoop運維記錄

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

記錄一些Hive的優化點,和能夠提升的效率差異。

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

在默認情況下,Hive的配置參數比較保守,所以效率會比較差一點,修改配置會讓查詢效率有比較大的提升,記錄幾個對查詢效率影響比較重要的參數。

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

Hive參數優化:

 

 

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

嵌套SQL并行執行優化:

set hive.exec.parallel=true;

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

效率可提升至少100%

某job需要11個stage:

非并行35分鐘

并行8個job執行10分鐘

并行16個job執行6分鐘

Hive查詢的優化:

一、數據量大的表和數據量小的表做關聯的時候,把數據量小的表放到join前面去select。

原因是在 Join 操作的 Reduce 階段,位于 Join 操作符左邊的表的內容會被加載進內存,將條目少的表放在左邊,可以有效減少發生內存溢出錯誤的幾率。

二、Join優化

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

例:

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

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

Map join的關鍵在于join操作中的某個表的數據量很小

例:

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

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

四、排序優化

Order by 實現全局排序,一個reduce實現,效率低

Sort by 實現部分有序,單個reduce輸出的結果是有序的,效率高,通常和DISTRIBUTE BY關鍵字一起使用(DISTRIBUTE BY關鍵字 可以指定map 到 reduce端的分發key)

CLUSTER BY col1 等價于DISTRIBUTE BY col1 SORT BY col1.

五、合并小文件

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

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

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

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

這里的參數沒有寫到上面的表格里是因為這是可以根據任務不同臨時設置的,而不一定非要是全局設置。有時候全局設置了反而對大文件的操作有性能影響。

六、使用分區,RCFile,lzo,ORCFile等

Hive中的每個分區都對應hdfs上的一個目錄,分區列也不是表中的一個實際的字段,而是一個或者多個偽列,在表的數據文件中實際上并不保存分區列的信息與數據。Partition關鍵字中排在前面的為主分區(只有一個),后面的為副分區

靜態分區:靜態分區在加載數據和使用時都需要在sql語句中指定

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

動態分區:使用動態分區需要設置hive.exec.dynamic.partition參數值為true,默認值為false,在默認情況下,hive會假設主分區時靜態分區,副分區使用動態分區;如果想都使用動態分區,需要設置set hive.exec.dynamic.partition.mode=nostrick,默認為strick

例:(stat_date='20120625',province)

七、使用外部表而盡量少用內部表,這主要從數據的安全性上考量。

本文出自 “實踐檢驗真理” 博客,http://slaytanic.blog.51cto.com/2057708/1295222。

 

責任編輯:王程程 來源: 51CTO博客
相關推薦

2016-12-13 13:15:49

運維

2019-03-19 08:41:38

Linux運維變更

2019-03-15 10:13:10

運維云計算運營

2010-01-21 22:19:25

網絡優化運維管理摩卡軟件

2013-03-29 09:15:08

IT運維運維人員運維工程師

2020-06-30 09:35:25

智能運維云架構IT運營

2018-03-27 16:23:53

運維AI智能

2014-08-04 10:10:35

IT運維自動化運維

2019-02-19 09:14:52

IT運維系統

2018-08-16 08:37:03

機房運維硬件

2010-04-14 16:15:20

IT運維Mocha BSM摩卡軟件

2017-12-15 09:20:20

IT運維順豐

2013-05-06 15:10:18

IT運維管理大數據

2017-03-20 14:19:10

DevOps運維IT

2022-10-20 17:37:46

運維智能管理平臺

2011-11-24 21:59:55

運維企業外包

2015-10-30 10:40:45

意義數據運維運維

2011-03-21 14:43:42

2017-10-13 13:14:35

互聯網

2019-12-26 10:10:41

運維架構技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产女人精品视频 | 在线观看国产视频 | 国产精品一区二区久久久久 | 国产免费国产 | 精品网站999| 久久久蜜桃一区二区人 | 久久久新视频 | 成人a视频片观看免费 | 日日欧美 | 亚洲一区国产 | 亚洲一区二区日韩 | 亚洲最大av| 国产一区影院 | 青青久久久 | 无码日韩精品一区二区免费 | 在线免费观看黄视频 | 午夜一区二区三区 | 免费一级黄色电影 | 国产精品毛片无码 | 国产精品99一区二区 | 九九热在线视频 | av免费在线播放 | 精品免费在线 | 国产香蕉视频在线播放 | 精品久久久久久久久亚洲 | 国产精品久久久久久久一区二区 | 久久久久久久一级 | 欧美精品一区二区三区在线 | 精品福利在线 | 欧美精品久久久久 | 伊人二区 | 亚洲精品在线观 | 超碰免费在 | 99久久免费精品国产男女高不卡 | 一区二区三区久久久 | 精品一区国产 | 密桃av| 天天综合网天天综合色 | 欧美久久国产 | 亚洲高清在线观看 | 亚洲第一视频网站 |