Hadoop 優化的一些方法

1 .MapReduce 跑的慢的原因

1.1主要有兩點:

  • 計算機性能
    CPU、內存、磁盤、網絡

  • IO 操作優化

  1. 數據傾斜
    2)Map 和 Reduce 數目設置不合理
    3)Map 時間過長,導致 Reduce 等待太久
    4)小文件過多
    5)大量的不可分塊的超大文件
    6)spill(溢寫)次數過多
    7)Merge 次數過多
    1.2 MapReduce 優化方法
  • 主要從六個方面考慮:數據輸入,Map 階段、Reduce 階段、IO傳輸階段、數據傾斜問題和參數調優。
    1.2.1 數據輸入
    (1)合併小文件:在執行MR 任務前將小文件進行合併,大量的小文件會產生大量的map 任務,增大 map 任務裝載次數,而任務的裝在比較耗時,從而導致 mr 運行很慢。
    合併小文件的方法:
    (1)在數據採集的時候,就將小文件或小批數據合成大文件再上傳HDFS。
    (2)在業務處理之前,在HDFS上使用MapReduce程序對小文件進行合併。
    (3)在MapReduce處理時,可採用CombineTextInputFormat提高效率。

![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200629221505801.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIzNjA5NjAz,size_10,color_FFFFFF,t_50
)
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200629221555685.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIzNjA5NjAz,size_16,color_FFFFFF,t_70 )
1.2.2 map階段
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200629221751287.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIzNjA5NjAz,size_16,color_FFFFFF,t_70 )
1.2.3 Reduce 階段
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200629221914746.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIzNjA5NjAz,size_16,color_FFFFFF,t_70 )
1.2.4 I/O傳輸
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200629222055387.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIzNjA5NjAz,size_16,color_FFFFFF,t_70 )
1.2.5 數據傾斜問題
(1)數據傾斜現象
數據頻率傾斜: 某一個區域的數據量遠遠大於其他區域。
數據大小傾斜:部分記錄的大小遠遠大於平均值。
(2)減少數據傾斜的方法
方法 1:抽樣和範圍分區
對原始數據進行抽樣得到結果集,預設分區邊界。
方法2 :自定義分區
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200629222430705.png )![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200629222449789.png )
方法 4 : Mapjoin,避免 Reduce join.
1.2.6 參數調優
![(1)](https://img-blog.csdnimg.cn/20200629222628210.png )

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章