hadoop入門手冊1:hadoop【2.7.1】【多節點】集群配置【必知配置知識1】


問題導讀



1.說說你對集群配置的認識?
2.集群配置的配置項你了解多少?
3.下面內容讓你對集群的配置有了什么新的認識?






目的

目的1:
這個文檔描述了如何安裝配置hadoop集群,從幾個節點到上千節點。為了學習hadoop,你可能先從單節點入手 (查看 Single Node Setup).這里有中文版hadoop2.7【單節點】單機、偽分布、分布式安裝指導
http://www.aboutyun.com/thread-12798-1-1.html
這個文檔不包括:hadoop在安全模式下配置和HA【高可用配置】,后面在更新

目的2:
我們看了很多集群配置文檔,你是否靜下心來,想集群配置到底是怎么一回事。

准備

1.安裝Java
2.下載hadoop包
##################################
包集合:
hadoop家族、strom、spark、Linux、flume等jar包、安裝包匯總下載(持續更新)
http://www.aboutyun.com/thread-8178-1-1.html
##################################
安裝

安裝hadoop集群包括:解壓包,配置hadoop,划分主節點和子節點。

集群中可以將namenode和ResourceManager分布在不同的機器上,這些稱之為master。其它服務例如:Web App Proxy Server 和 MapReduce Job History server,根據負載可以共享設施或則使用專用的機器。

集群其它機器作為 DataNode 和 NodeManager.這些是slaves


配置hadoop【非安全模式】

hadoop配置文件被分為兩類:

1.只讀默認配置,有下列配置文件
core-default.xml, hdfs-default.xml, yarn-default.xml and mapred-default.xml.

2.定制配置,有下列配置文件
etc/hadoop/core-site.xml, etc/hadoop/hdfs-site.xml, etc/hadoop/yarn-site.xml and etc/hadoop/mapred-site.xml.

另外你可以配置hadoop腳本,在hadoop的bin目錄下,通過 etc/hadoop/hadoop-env.sh 和 etc/hadoop/yarn-env.sh來指定值。

配置hadoop集群需要配置環境變量,Hadoop守護進程執行以及Hadoop守護進程的配置參數。如果沒有配置過集群,可能對這個了解不多,具體參考
hadoop(2.x)以hadoop2.2為例完全分布式最新高可靠安裝文檔
http://www.aboutyun.com/thread-7684-1-1.html


hdfs守護進程:
NameNode, SecondaryNameNode, 和 DataNode

YARN 守護進程:
ResourceManager, NodeManager, 和 WebAppProxy

如果運行MapReduce , MapReduce Job History Server也會運行。前提需要配置並開啟。對於比較大的集群安裝,他們分別運行在不同的客戶端。


配置守護進程環境變量
管理員使用 etc/hadoop/hadoop-env.sh , etc/hadoop/mapred-env.sh 和 etc/hadoop/yarn-env.sh 腳本來定制hadoop守護進程變量。
至少需要需要指定JAVA_HOME ,每個節點都必須指定。

管理員可以配置單獨的守護進程,使用下面的選項。

Daemon
Environment Variable
NameNode
HADOOP_NAMENODE_OPTS
DataNode
HADOOP_DATANODE_OPTS
Secondary NameNode
HADOOP_SECONDARYNAMENODE_OPTS
ResourceManager
YARN_RESOURCEMANAGER_OPTS
NodeManager
YARN_NODEMANAGER_OPTS
WebAppProxy
YARN_PROXYSERVER_OPTS
Map Reduce Job History Server
HADOOP_JOB_HISTORYSERVER_OPTS


例如:配置Namenode 使用parallelGC,在 hadoop-env.sh 聲明如下:

[Bash shell]  純文本查看 復制代碼
?
1
export HADOOP_NAMENODE_OPTS= "-XX:+UseParallelGC"




查看 etc/hadoop/hadoop-env.sh 其它例子

其它可定義的有用參數包括

  • HADOOP_PID_DIR - 存儲守護進程id的文件目錄.
  • HADOOP_LOG_DIR - 存儲守護進程日志文件目錄. 日志文件自動創建如果不存在。
  • HADOOP_HEAPSIZE / YARN_HEAPSIZE -heapsize內存最大配置.如果變量為1000, heap 是1000MB. 這是為守護進程配置heap. 默認值1000M.


在大多數情況下,應該指定HADOOP_PID_DIR 和 HADOOP_LOG_DIR,他們由用戶運行hadoop守護進程所寫,否則可能是潛在攻擊。

傳統配置HADOOP_PREFIX 在系統級環境變量配置,例如一個簡單的腳本 /etc/profile.d:

[Bash shell]  純文本查看 復制代碼
?
1
2
HADOOP_PREFIX= /path/to/hadoop
export HADOOP_PREFIX





Daemon
Environment Variable
ResourceManager
YARN_RESOURCEMANAGER_HEAPSIZE
NodeManager
YARN_NODEMANAGER_HEAPSIZE
WebAppProxy
YARN_PROXYSERVER_HEAPSIZE
Map Reduce Job History Server
HADOOP_JOB_HISTORYSERVER_HEAPSIZE



配置hadoop守護進程

本節涉及在給定的配置文件中指定的重要參數:

etc/hadoop/core-site.xml

Parameter
Value
Notes
fs.defaultFS
NameNode URI
io.file.buffer.size
131072
讀寫序列文件緩存大小

 

  • etc/hadoop/hdfs-site.xml



  • 配置NameNode:

徹底了解namenode

Parameter
Value
Notes
dfs.namenode.name.dir
本地文件系統存儲着命令空間和操作日志
如果含有多個目錄,是冗余的【多個目錄以逗號隔開】
dfs.hosts / dfs.hosts.exclude
列出排除DataNodes.
如何需要使用這一功能來控制datanode的訪問
dfs.blocksize
268435456
大文件系統HDFS blocksize  256MB
dfs.namenode.handler.count
100
更多 NameNode server 線程來處理來自datanode的 RPCs請求
  • 配置 DataNode:


Parameter
Value
Notes
dfs.datanode.data.dir
存儲blocks的本地路徑列表,用逗號隔開
這是一個逗號分隔的目錄列表, 數據將被存儲在所有被命名的目錄中,通常在不同的設備上。

 

  • etc/hadoop/yarn-site.xml
  • 配置ResourceManager 和 NodeManager:


Parameter
Value
Notes
yarn.acl.enable
true / false
是否啟用ACLs,默認為false不啟用
yarn.admin.acl
Admin ACL
admin.acl設置YARN的集群管理員,. 值為*表示任何人都可以. 僅指定的可以訪問
yarn.log-aggregation-enable
false
配置啟用或則禁用日志




  • 配置ResourceManager:

 

Parameter
Value
Notes
yarn.resourcemanager.address
ResourceManager host:port 為客戶端提交job.
如果配置host:port , 會覆蓋在yarn.resourcemanager.hostname 設置的 hostname
yarn.resourcemanager.scheduler.address
ResourceManager 對ApplicationMaster暴露的訪問地址。ApplicationMaster通過該地址向RM申請資源、釋放資源等。
如果配置 host:port , 會覆蓋在yarn.resourcemanager.hostname 設置的 hostname
yarn.resourcemanager.resource-tracker.address
ResourceManager 對NodeManager暴露的地址.。NodeManager通過該地址向RM匯報心跳,領取任務等。
如果配置host:port , 會覆蓋在yarn.resourcemanager.hostname 設置的 hostname
yarn.resourcemanager.admin.address
ResourceManager 對管理員暴露的訪問地址。管理員通過該地址向RM發送管理命令等
如果配置host:port , 會覆蓋在yarn.resourcemanager.hostname 設置的 hostname
yarn.resourcemanager.webapp.address
ResourceManager web-ui host:port(ResourceManager訪問端口)
如果配置host:port , 會覆蓋在yarn.resourcemanager.hostname 設置的 hostname
yarn.resourcemanager.hostname
ResourceManager 客戶端.
host Single hostname that can be set in place of setting all yarn.resourcemanager*address resources. Results in default ports for ResourceManager components.
yarn.resourcemanager.scheduler.class
ResourceManager 調度類 .
CapacityScheduler (recommended), FairScheduler (also recommended), or FifoScheduler
yarn.scheduler.minimum-allocation-mb
單個container可申請的最小內存資源量。比如設置為1024,則運行MapRedce作業時,每個Task最少可申請1024MB內存
In MBs
yarn.scheduler.maximum-allocation-mb
單個container可申請的最大內存資源量。比如設置為3072,則運行MapRedce作業時,每個Task最多可申請3072MB內存。
In MBs
yarn.resourcemanager.nodes.include-path /yarn.resourcemanager.nodes.exclude-path
NodeManager黑白名單。
NodeManager黑白名單。如果發現若干個NodeManager存在問題,比如故障率很高,任務運行失敗率高,則可以將之加入黑名單中。注意,這兩個配置參數可以動態生效。(調用一個refresh命令即可)
默認值:“”
  • 配置 NodeManager:

 

Parameter
Value
Notes
yarn.nodemanager.resource.memory-mb
NodeManager總的可用物理內存。
定義了資源總量的nodemanager可用運行containers
yarn.nodemanager.vmem-pmem-ratio
每使用1MB物理內存,最多可用的虛擬內存數。
每個任務的虛擬內存的使用可能會超過其物理內存的限制,這個比例。通過對nodemanager任務使用的虛擬內存總量可能超過物理內存使用的比率。
yarn.nodemanager.local-dirs
中間結果存放位置
這個參數通常會配置多個目錄,分攤磁盤IO負載。
yarn.nodemanager.log-dirs
日志存放路徑
這個參數通常會配置多個目錄,分攤磁盤IO負載。
yarn.nodemanager.log.retain-seconds
10800
NodeManager上日志最多存放時間(不啟用日志聚集功能時有效)。
yarn.nodemanager.remote-app-log-dir
/logs
當應用程序運行結束后,日志被轉移到的HDFS目錄(啟用日志聚集功能時有效)。
yarn.nodemanager.remote-app-log-dir-suffix
logs
遠程日志目錄子目錄名稱(啟用日志聚集功能時有效)。
yarn.nodemanager.aux-services
mapreduce_shuffle
NodeManager上運行的附屬服務。需配置成mapreduce_shuffle,才可運行MapReduce程序.
  • 配置 History Server (Needs to be moved elsewhere):

 

Parameter
Value
Notes
yarn.log-aggregation.retain-seconds
-1
參數解釋:在HDFS上聚集的日志最多保存多長時間。
默認值:-1
yarn.log-aggregation.retain-check-interval-seconds
-1
參數解釋:多長時間檢查一次日志,並將滿足條件的刪除,如果是0或者負數,則為上一個值的1/10。
默認值:-1

 

  • etc/hadoop/mapred-site.xml
  • 配置MapReduce Applications:

mapreduce.map.memory.mb
mapreduce.reduce.memory.mb
說明:這兩個參數指定用於MapReduce的兩個任務(Map and Reduce task)的內存大小,其值應該在RM中的最大最小container之間。如果沒有配置則通過如下簡單公式獲得:
max(MIN_CONTAINER_SIZE, (Total Available RAM) / containers))
一般的reduce應該是map的2倍。注:這兩個值可以在應用啟動時通過參數改變;



mapreduce.map.java.opts
mapreduce.reduce.java.opts
說明:這兩個參主要是為需要運行JVM程序(java、scala等)准備的,通過這兩個設置可以向JVM中傳遞參數的,與內存有關的是,-Xmx,-Xms等選項。此數值大小,應該在AM中的map.mb和reduce.mb之間。


Parameter
Value
Notes
mapreduce.framework.name
yarn
執行框架設置為Hadoop YARN.
mapreduce.map.memory.mb
1536
maps資源限制
mapreduce.map.java.opts
-Xmx1024M
maps的child jvms heap-size
mapreduce.reduce.memory.mb
3072
reduces資源限制
mapreduce.reduce.java.opts
-Xmx2560M
reduces的child jvms heap-size
mapreduce.task.io.sort.mb
512
任務內部排序緩沖區大小
mapreduce.task.io.sort.factor
100
排序文件的時候一次同時最多可並流的個數,這里設置100。
mapreduce.reduce.shuffle.parallelcopies
50
reuduce shuffle階段並行傳輸數據的數量。
  • 配置MapReduce JobHistory Server:

 

Parameter
Value
Notes
mapreduce.jobhistory.address
MapReduce JobHistory Server地址【host:port】
默認端口號 10020.
mapreduce.jobhistory.webapp.address
MapReduce JobHistory Server Web UI地址【 host:port】
默認端口號 19888.
mapreduce.jobhistory.intermediate-done-dir
/mr-history/tmp
MapReduce作業產生的日志存放位置。
mapreduce.jobhistory.done-dir
/mr-history/done
MR JobHistory Server管理的日志的存放位置。






相關內容 
hadoop入門手冊1:hadoop【2.7.1】【多節點】集群配置【必知配置知識1】



hadoop入門手冊2:hadoop【2.7.1】【多節點】集群配置【必知配置知識2】




hadoop入門手冊3:Hadoop【2.7.1】初級入門之命令指南



hadoop入門手冊4:Hadoop【2.7.1】初級入門之命令:文件系統shell1



hadoop入門手冊5:Hadoop【2.7.1】初級入門之命令:文件系統shell2



hadoop2.X使用手冊1:通過web端口查看主節點、slave1節點及集群運行狀態
http://www.aboutyun.com/thread-7712-1-1.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM