大資料叢集優化
叢集優化
一個小叢集:1個master,10個datanode。
最開始使用pig指令碼分析作業,後面作業執行時觀察發現,pig指令碼執行的小作業太多導致任務排程頻繁,叢集效率低。
小作業太多的影響:
- 頻繁新建和關閉task,頻繁分配container會消耗資源。
- 一個oozie action先會啟動一個oozie laucher作業消耗一個container,然後再啟動實際的job,啟動的job首先會用個container啟動application master,然後在啟動計算的task 現在同時最多會有29個job,至少會有50個container不是在計算。
1 程式碼優化
增加5分鐘基礎作業時間粒度,5分鐘->15分鐘,減少Job數
- 合併15分鐘粒度作業,Pig->MR,grouping comparator,減少基礎資料重複讀取次數,減少Job數
- 合併5分鐘基礎作業,一個作業處理三種話單,去除冗餘欄位(各粒度時間),減少Job數,減少資料量
2 叢集引數配置
2.1 HDFS
- HDFS塊大小:從預設的128MB調整為256MB,更大的塊大小(block)意味著更少的job,由於當前作業計算並不複雜,可以使用更大塊。
- 複製因子:預設是3,現在修改為2。減少資料儲存量,可以減小話單上傳的時間消耗
- DataNode處理程式計數:引數是dfs.datanode.handler.count 預設值是3,調整為30。datanode上用於處理RPC的執行緒數。預設為3,較大叢集,可適當調大些,比如8。需要注意的是,每新增一個執行緒,需要的記憶體增加。
- NameNode處理程式計數:引數是dfs.namenode.handler.count 預設是30,建議值是47,現在調整為60.namenode或者jobtracker中用於處理RPC的執行緒數,預設是10,較大叢集,可調大些,比如64。 NameNode服務處理程式計數:引數是 dfs.namenode.service.handler.count,預設值是30,建議值是47,現在調整為60。NameNode 用於服務呼叫的伺服器執行緒數量。
- 最大傳輸執行緒數:引數是一起配置的為:dfs.datanode.max.xcievers, dfs.datanode.max.transfer.threads對於datanode來說,就如同linux上的檔案控制代碼的限制,當datanode 上面的連線數操作配置中的設定時,datanode就會拒絕連線。 一般都會將此引數調的很大,40000+左右。
2.2 YARN
- 每個作業的 Reduce 任務的預設數量:引數為mapreduce.job.reduces預設值為1,現在調整為30。通過觀察當前執行的job例項,觀察其reduce執行時間,發現時間消耗不足1秒,故不必啟用過多reduce。
- 啟用 Ubertask 優化:Uber模式是Hadoop2.0針對MR小作業的優化機制。通過mapreduce.job.ubertask.enable來設定是否開啟小作業優化,預設為false。 如果用Job足夠小,則序列在的一個JVM完成該JOB,即MRAppMaster程序中,這樣比為每一個任務分配Container效能更好。關於Ubertask的詳細可以參考Ubertask模式。
- Map任務記憶體:引數為mapreduce.map.memory.mb,保持預設值1GB。
- Reduce任務記憶體:引數為mapreduce.reduce.memory.mb,保持預設值1GB。
- Map任務CPU虛擬核心:引數為mapreduce.map.cpu.vcores,為作業的每個 Map 任務分配的虛擬 CPU 核心數。預設每個map一個CPU,使用者提交應用程式時,可以指定每個任務需要的虛擬CPU個數。在MRAppMaster中,每個Map Task和Reduce Task預設情況下需要的虛擬CPU個數為1。
- Reduce任務CPU虛擬核心:引數為mapreduce.reduce.cpu.vcores,說明 與Map任務CPU虛擬核心一致。
- Map 任務最大堆疊:引數是mapreduce.map.java.opts.max.heap,Map 程序的最大 Java 堆疊(位元組)。該引數與mapreduce.reduce.java.opts.max.heap一樣,都是ClouderManager獨有的,標準的hadoop引數是mapreduce.map.java.opts和mapreduce.reduce.java.opts
- Reduce 任務最大堆疊: 同Map 任務最大堆疊。
- 容器記憶體:引數是yarn.nodemanager.resource.memory-mb。表示該節點上YARN可使用的實體記憶體總量,預設是8192(MB),注意,如果你的節點記憶體資源不夠8GB,則需要調減小這個值,而YARN不會智慧的探測節點的實體記憶體總量。當前配置為24GB。
- 容器虛擬 CPU 核心:引數是yarn.nodemanager.resource.cpu-vcores可以為容器分配的虛擬CPU核心的數量。叢集中每臺伺服器只有24個虛核,所以容器記憶體配24G記憶體就行,現在作業都小map、reduce都用不了太多記憶體,預設是1GB。多了也沒用,因為每個container至少要1個核。
2.3 Oozie
Oozie Server 的 Java 堆疊大小 預設值為1GB,現在修改為4GB。
2.4 HBase
HBaseMaster的Java堆疊大小:暫無調整。
HBase Region Server處理程式計數:引數為hbase.regionserver.handler.count,預設值為30,調節至150.是RegionServer的請求處理IO執行緒數。較少的IO執行緒,適用於處理單次請求記憶體消耗較高的Big PUT場景(大容量單次PUT或設定了較大cache的scan,均屬於Big PUT)或ReigonServer的記憶體比較緊張的場景。 較多的IO執行緒,適用於單次請求記憶體消耗低,TPS要求非常高的場景。設定該值的時候,以監控記憶體為主要參考。 這裡需要注意的是如果server的region數量很少,大量的請求都落在一個region上,因快速充滿memstore觸發flush導致的讀寫鎖會影響全域性TPS,不是IO執行緒數越高越好。 壓測時,開啟Enabling RPC-level logging,可以同時監控每次請求的記憶體消耗和GC的狀況,最後通過多次壓測結果來合理調節IO執行緒數。
HBase RegionServer的Java堆疊大小(位元組):HBase regionserver堆疊能多大就多大,計算方式是RegionServer java堆大小= 伺服器總記憶體-已分配記憶體 (注意:此配置為優化索引入庫)
2.5 伺服器引數
- 伺服器時鐘同步
- 修改swappiness值 在所有伺服器上,使用root使用者執行
# sysctl vm.swappiness=0
# echo 'vm.swappiness=0'>> /etc/sysctl.conf
# sysctl -p
- 禁用透明巨頁
# echo never >/sys/kernel/mm/redhat_transparent_hugepage/enabled
相關推薦
大資料叢集優化
叢集優化一個小叢集:1個master,10個datanode。 最開始使用pig指令碼分析作業,後面作業執行時觀察發現,pig指令碼執行的小作業太多導致任務排程頻繁,叢集效率低。 小作業太多的影響:頻繁新建和關閉task,頻繁分配container會消耗資源。一個oozie
CDH大資料叢集安全風險彙總
一,風險分為內部和外部 首先內部: CDH大資料叢集部署過程中會自動建立以服務命名的使用者,如圖所示 使用者名稱(login_name):口令位置(passwd):使用者標識號(UID):使用者組標識號(GID):註釋性描述(users):主目錄(home_directory):登陸shell(Shel
記一次hadoop大資料叢集生產事故
陸續對原有的hadoop、hbase叢集做了擴容,增加了幾個節點,中間沒有重啟過,今天早上發現一個hregionserver服務停止了,就先啟動服務,沒想到啟動之後一直有訪問資料的出錯,嘗試對整個hbase叢集進行重啟出現了下面的錯誤: $ start-hbase.sh master running
CentOS5/6/7系統下搭建安裝Amabari大資料叢集時出現SSLError: Failed to connect. Please check openssl library versions.錯誤的解決辦法(圖文詳解)
不多說,直接上乾貨! ========================== Creating target directory... ======================
網路配置、防火牆 (大資料叢集環境)Linux防火牆
網路配置、防火牆 1.大資料叢集環境,形成叢集區域網,使用機器名替代真實IP,如何完成IP地址與機器名的對映? 1)修改機器名 在CenterOS7,使用hostname命令,修改當前機器名,如果重啟節點機器名失效;修改/etc/hostname配置檔案(內容:自定義機器名 例:p
大資料叢集架之——nginx 反向代理的安裝配置文件。
二、Nginx安裝配置 1.安裝gcc 方式1 - yum線上安裝: //yum install gcc  
雲端計算與大資料 叢集搭建 學習筆記
雲集群的搭建 一、虛擬機器設定: 1.開啟ESXI虛擬機器;(本人所用) 2.網路設定為橋接模式 3.按F2設定系統,輸入密碼 4.Restart Manangement Network 5.esc 退出 加硬碟: 1.開啟虛擬機器給出的ip地址,檢視VWware ES
docker部署分散式大資料叢集hadoop、spark、hive、jdk、scala、
(一)1 用docker建立映象並搭建三個節點容器的hadoop及spark服務 包括:mysql,hadoop,jdk,spark,hive,scala,sqoop docker已經安裝並且啟動 #搜尋centos映象: docker search centos #拉取
HA機制的大資料叢集的搭建過程
叢集規劃 說明: 1、在hadoop2.0中通常由兩個NameNode組成,一個處於active狀態,另一個處於standby狀態。Active NameNode對外提供服務,而Standby NameNode則不對外提供服務,僅同步active nameno
大資料叢集:CDH 6.0.X 完整版 安裝
CDH 6.0.x 安裝步驟 前沿 一CDH6新功能介紹 二:下面開始進行CDH6安裝前的準備工作: 1、配置主機名和hosts解析(所有節點) 2、關閉防火牆 3、關閉SELinux 4、新增定時任務 5、禁用
D001.5 Docker搭建大資料叢集環境(基礎篇)
0x00 教程內容 0x01 Docker的安裝 1. 2. 3. 0x02 Docker的簡單操作 1. 2. 3. 0x03 Docker資料卷 Docker的資料卷與Centos的
從零開始的Hadoop大資料叢集(偽)搭建,全免費VirtualBox虛擬機器Ubuntu版,學習向,超詳細---(一)
在公司工作了一段時間了,大資料平臺都是公司的運維人員搭建維護的,自己也想親自搭建一套,純粹為了學習和提高自己,也為了以後自己研究用。公司的環境不太適合亂來,自己的就可以隨意玩了。 寫這個也是為了記錄自己學習的過程,同時給大家提供一個參考,想要學習大資料的也
大資料叢集搭建之節點的網路配置過程(二)
緊接著上一章來設定windows的vmnet8的ip地址和虛擬機器中centos的ip地址。 NAT虛擬網路的配置圖如下圖所示: 1、這裡根據VMware中得到的閘道器地址去設定vmnet8的ip地址。 閘道器地址檢視: 2、得到的閘道器地址後去
大資料Spark優化讀取Hbase--region 提高並行數過程詳細解析
一. Hbase 的 region 我們先簡單介紹下 Hbase 的 架構和 region : 從物理叢集的角度看,Hbase 叢集中,由一個 Hmaster 管理多個 HRegionServer,其中每個 HRegionServer 都對應一臺物理機器,一臺 HRegionServer
超越Spark,大資料叢集計算的生產實踐(內含福利)
Spark擁有一個龐大的、不斷增長的社群,還有在企業環境中不可或缺的生態系統。這些生態系統提供了不同生產環境案例所需的許多功能。一般來說,Spark應用做的是機器學習演算法、日誌聚合分析或者商務智慧相關的運算,因為它在許多領域都有廣泛的應用,包括商務智慧、資料倉庫、推薦系
大資料叢集JVM調優&記憶體管理
大資料叢集的工作,很大一部分精力花在了調整叢集的jvm引數上面。由於現在的開源大資料產品無論是Hadoop、Hbase、yarn還是Spark等等,都運行於jvm環境中,因此而產生的垃圾收集問題是影響叢集可用性的是工作中的重點。 本文首先歸納一些常見的因jvm垃圾收集導
CDH大資料平臺優化---hdfs優化
hdfs作為大資料底層的分散式檔案系統,在大資料生態圈中起著很重要的作用,hdfs檔案系統的效能直接影響著大資料平臺效能。故對hdfs做有效的優化顯得尤其重要。現對hdfs優化總結如下: core-default.xml h
CDH大資料平臺優化---作業系統優化
在安裝cdh大資料平臺之前,為了得到更高的效率,需要從作業系統層面做一些簡單的優化。優化主要有以下幾點: 1.Disable the tuned Service systemctl stop tuned systemctl disable tuned 2.Disabling Tr
大資料叢集下filesystem測試工具之filebench
簡介 Filebench 是一款檔案系統性能的自動化測試工具,它通過快速模擬真實應用伺服器的負載來測試檔案系統的效能。它不僅可以模擬檔案系統微操作(如 copyfiles, createfiles, randomread, randomwrite ),而且可以模擬複雜的應用程式(如 varmail,
資料庫提高查詢效率(較大資料)優化方法
1、資料庫設計方面: (1)建立索引 (2)分割槽(MySQL,如按時間分割槽) (3)儘量使用固定長度欄位和限制欄位長度。(如VARCHAR2(10);優勢:①降低物理儲存空間 ②提高資料庫處理速度 ③附帶校驗資料是否合法功能 2、在資料庫I/O方面: (1)增加緩衝區