Hadoop運行模式分為安全模式和非安全模式,在這里,我將講述非安全模式下,主要配置文件的重要參數功能及作用,本文所使用的Hadoop版本為2.6.4。
etc/hadoop/core-site.xml
參數 |
屬性值 |
解釋 |
fs.defaultFS |
NameNode URI |
hdfs://host:port/ |
io.file.buffer.size |
131072 |
SequenceFiles文件中.讀寫緩存size設定 |
范例:
1 <configuration>
2 <property>
3 <name>fs.defaultFS</name>
4 <value>hdfs://192.168.1.100:900</value>
5 <description>192.168.1.100為服務器IP地址,其實也可以使用主機名</description>
6 </property>
7 <property>
8 <name>io.file.buffer.size</name>
9 <value>131072</value>
10 <description>該屬性值單位為KB,131072KB即為默認的64M</description>
11 </property>
12 </configuration>
etc/hadoop/hdfs-site.xml
參數 |
屬性值 |
解釋 |
dfs.namenode.name.dir |
在本地文件系統所在的NameNode的存儲空間和持續化處理日志 |
如果這是一個以逗號分隔的目錄列表,然 后將名稱表被復制的所有目錄,以備不時 需。 |
dfs.namenode.hosts/ dfs.namenode.hosts.exclude |
Datanodes permitted/excluded列表 |
如有必要,可以使用這些文件來控制允許 數據節點的列表 |
dfs.blocksize |
268435456 |
大型的文件系統HDFS塊大小為256MB |
dfs.namenode.handler.count |
100 |
設置更多的namenode線程,處理從 datanode發出的大量RPC請求 |
范例:
1 <configuration>
2 <property>
3 <name>dfs.replication</name>
4 <value>1</value>
5 <description>分片數量,偽分布式將其配置成1即可</description>
6 </property>
7 <property>
8 <name>dfs.namenode.name.dir</name>
9 <value>file:/usr/local/hadoop/tmp/namenode</value>
10 <description>命名空間和事務在本地文件系統永久存儲的路徑</description>
11 </property>
12 <property>
13 <name>dfs.namenode.hosts</name>
14 <value>datanode1, datanode2</value>
15 <description>datanode1, datanode2分別對應DataNode所在服務器主機名</description>
16 </property>
17 <property>
18 <name>dfs.blocksize</name>
19 <value>268435456</value>
20 <description>大文件系統HDFS塊大小為256M,默認值為64M</description>
21 </property>
22 <property>
23 <name>dfs.namenode.handler.count</name>
24 <value>100</value>
25 <description>更多的NameNode服務器線程處理來自DataNodes的RPCS</description>
26 </property>
27 </configuration>
參數 |
屬性值 |
解釋 |
dfs.datanode.data.dir |
逗號分隔的一個DataNode上,它應該保存它的塊的本地文件系統的路徑列表 |
如果這是一個以逗號分隔的目錄列表,那么數據將被存儲在所有命名的目錄,通常在不同的設備。 |
范例:
1 <configuration>
2 <property>
3 <name>dfs.datanode.data.dir</name>
4 <value>file:/usr/local/hadoop/tmp/datanode</value>
5 <description>DataNode在本地文件系統中存放塊的路徑</description>
6 </property>
7 </configuration>
etc/hadoop/yarn-site.xml
- 配置ResourceManager 和 NodeManager:
參數 |
屬性值 |
解釋 |
yarn.resourcemanager.address |
客戶端對ResourceManager主機通過 host:port 提交作業 |
host:port |
yarn.resourcemanager.scheduler.address |
ApplicationMasters 通過ResourceManager主機訪問host:port跟蹤調度程序獲資源 |
host:port |
yarn.resourcemanager.resource-tracker.address |
NodeManagers通過ResourceManager主機訪問host:port |
host:port |
yarn.resourcemanager.admin.address |
管理命令通過ResourceManager主機訪問host:port |
host:port |
yarn.resourcemanager.webapp.address |
ResourceManager web頁面host:port. |
host:port |
yarn.resourcemanager.scheduler.class |
ResourceManager 調度類(Scheduler class) |
CapacityScheduler(推薦),FairScheduler(也推薦),orFifoScheduler |
yarn.scheduler.minimum-allocation-mb |
每個容器內存最低限額分配到的資源管理器要求 |
以MB為單位 |
yarn.scheduler.maximum-allocation-mb |
資源管理器分配給每個容器的內存最大限制 |
以MB為單位 |
yarn.resourcemanager.nodes.include-path/ yarn.resourcemanager.nodes.exclude-path |
NodeManagers的permitted/excluded列表 |
如有必要,可使用這些文件來控制允許NodeManagers列表 |
范例:
1 <configuration>
2 <property>
3 <name>yarn.resourcemanager.address</name>
4 <value>192.168.1.100:8081</value>
5 <description>IP地址192.168.1.100也可替換為主機名</description>
6 </property>
7 <property>
8 <name>yarn.resourcemanager.scheduler.address</name>
9 <value>192.168.1.100:8082</value>
10 <description>IP地址192.168.1.100也可替換為主機名</description>
11 </property>
12 <property>
13 <name>yarn.resourcemanager.resource-tracker.address</name>
14 <value>192.168.1.100:8083</value>
15 <description>IP地址192.168.1.100也可替換為主機名</description>
16 </property>
17 <property>
18 <name>yarn.resourcemanager.admin.address</name>
19 <value>192.168.1.100:8084</value>
20 <description>IP地址192.168.1.100也可替換為主機名</description>
21 </property>
22 <property>
23 <name>yarn.resourcemanager.webapp.address</name>
24 <value>192.168.1.100:8085</value>
25 <description>IP地址192.168.1.100也可替換為主機名</description>
26 </property>
27 <property>
28 <name>yarn.resourcemanager.scheduler.class</name>
29 <value>FairScheduler</value>
30 <description>常用類:CapacityScheduler、FairScheduler、orFifoScheduler</description>
31 </property>
32 <property>
33 <name>yarn.scheduler.minimum</name>
34 <value>100</value>
35 <description>單位:MB</description>
36 </property>
37 <property>
38 <name>yarn.scheduler.maximum</name>
39 <value>256</value>
40 <description>單位:MB</description>
41 </property>
42 <property>
43 <name>yarn.resourcemanager.nodes.include-path</name>
44 <value>nodeManager1, nodeManager2</value>
45 <description>nodeManager1, nodeManager2分別對應服務器主機名</description>
46 </property>
47 </configuration>
參數 |
屬性值 |
解釋 |
yarn.nodemanager.resource.memory-mb |
givenNodeManager即資源的可用物理內存,以MB為單位 |
定義在節點管理器總的可用資源,以提供給運行容器 |
yarn.nodemanager.vmem-pmem-ratio |
最大比率為一些任務的虛擬內存使用量可能會超過物理內存率 |
每個任務的虛擬內存的使用可以通過這個比例超過了物理內存的限制。虛擬內存的使用上的節點管理器任務的總量可以通過這個比率超過其物理內存的使用 |
yarn.nodemanager.local-dirs |
數據寫入本地文件系統路徑的列表用逗號分隔 |
多條存儲路徑可以提高磁盤的讀寫速度 |
yarn.nodemanager.log-dirs |
本地文件系統日志路徑的列表逗號分隔 |
多條存儲路徑可以提高磁盤的讀寫速度 |
yarn.nodemanager.log.retain-seconds |
10800 |
如果日志聚合被禁用。默認的時間(以秒為單位)保留在節點管理器只適用日志文件 |
yarn.nodemanager.remote-app-log-dir |
logs |
HDFS目錄下的應用程序日志移動應用上完成。需要設置相應的權限。僅適用日志聚合功能 |
yarn.nodemanager.remote-app-log-dir-suffix |
logs |
后綴追加到遠程日志目錄。日志將被匯總到${yarn.nodemanager.remoteapplogdir}/${user}/${thisParam} 僅適用日志聚合功能。 |
yarn.nodemanager.aux-services |
mapreduce-shuffle |
Shuffle service 需要加以設置的Map Reduce的應用程序服務 |
范例:
1 <configuration>
2 <property>
3 <name>yarn.nodemanager.resource.memory-mb</name>
4 <value>256</value>
5 <description>單位為MB</description>
6 </property>
7 <property>
8 <name>yarn.nodemanager.vmem-pmem-ratio</name>
9 <value>90</value>
10 <description>百分比</description>
11 </property>
12 <property>
13 <name>yarn.nodemanager.local-dirs</name>
14 <value>/usr/local/hadoop/tmp/nodemanager</value>
15 <description>列表用逗號分隔</description>
16 </property>
17 <property>
18 <name>yarn.nodemanager.log-dirs</name>
19 <value>/usr/local/hadoop/tmp/nodemanager/logs</value>
20 <description>列表用逗號分隔</description>
21 </property>
22 <property>
23 <name>yarn.nodemanager.log.retain-seconds</name>
24 <value>10800</value>
25 <description>單位為S</description>
26 </property>
27 <property>
28 <name>yarn.nodemanager.aux-services</name>
29 <value>mapreduce-shuffle</value>
30 <description>Shuffle service 需要加以設置的MapReduce的應用程序服務</description>
31 </property>
32 </configuration>
etc/hadoop/mapred-site.xml
參數 |
屬性值 |
解釋 |
mapreduce.framework.name |
yarn |
執行框架設置為 Hadoop YARN. |
mapreduce.map.memory.mb |
1536 |
對maps更大的資源限制的. |
mapreduce.map.java.opts |
-Xmx2014M |
maps中對jvm child設置更大的堆大小 |
mapreduce.reduce.memory.mb |
3072 |
設置 reduces對於較大的資源限制 |
mapreduce.reduce.java.opts |
-Xmx2560M |
reduces對 jvm child設置更大的堆大小 |
mapreduce.task.io.sort.mb |
512 |
更高的內存限制,而對數據進行排序的效率 |
mapreduce.task.io.sort.factor |
100 |
在文件排序中更多的流合並為一次 |
mapreduce.reduce.shuffle.parallelcopies |
50 |
通過reduces從很多的map中讀取較多的平行 副本 |
范例:
1 <configuration>
2 <property>
3 <name> mapreduce.framework.name</name>
4 <value>yarn</value>
5 <description>執行框架設置為Hadoop YARN</description>
6 </property>
7 <property>
8 <name>mapreduce.map.memory.mb</name>
9 <value>1536</value>
10 <description>對maps更大的資源限制的</description>
11 </property>
12 <property>
13 <name>mapreduce.map.java.opts</name>
14 <value>-Xmx2014M</value>
15 <description>maps中對jvm child設置更大的堆大小</description>
16 </property>
17 <property>
18 <name>mapreduce.reduce.memory.mb</name>
19 <value>3072</value>
20 <description>設置 reduces對於較大的資源限制</description>
21 </property>
22 <property>
23 <name>mapreduce.reduce.java.opts</name>
24 <value>-Xmx2560M</value>
25 <description>reduces對 jvm child設置更大的堆大小</description>
26 </property>
27 <property>
28 <name>mapreduce.task.io.sort</name>
29 <value>512</value>
30 <description>更高的內存限制,而對數據進行排序的效率</description>
31 </property>
32 <property>
33 <name>mapreduce.task.io.sort.factor</name>
34 <value>100</value>
35 <description>在文件排序中更多的流合並為一次</description>
36 </property>
37 <property>
38 <name>mapreduce.reduce.shuffle.parallelcopies</name>
39 <value>50</value>
40 <description>通過reduces從很多的map中讀取較多的平行副本</description>
41 </property>
42 </configuration>
- 配置mapreduce的JobHistory服務器
參數 |
屬性值 |
解釋 |
maprecude.jobhistory.address |
MapReduce JobHistory Server host:port |
默認端口號 10020 |
mapreduce.jobhistory.webapp.address |
MapReduce JobHistory Server Web UIhost:port |
默認端口號 19888 |
mapreduce.jobhistory.intermediate-done-dir |
/mrhistory/tmp |
在歷史文件被寫入由MapReduce作業 |
mapreduce.jobhistory.done-dir |
/mrhistory/done |
目錄中的歷史文件是由MR JobHistory Server管理 |
范例:
1 <configuration>
2 <property>
3 <name> mapreduce.jobhistory.address</name>
4 <value>192.168.1.100:10200</value>
5 <description>IP地址192.168.1.100可替換為主機名</description>
6 </property>
7 <property>
8 <name>mapreduce.jobhistory.webapp.address</name>
9 <value>192.168.1.100:19888</value>
10 <description>IP地址192.168.1.100可替換為主機名</description>
11 </property>
12 <property>
13 <name>mapreduce.jobhistory.intermediate-done-dir</name>
14 <value>/usr/local/hadoop/mrhistory/tmp</value>
15 <description>在歷史文件被寫入由MapReduce作業</description>
16 </property>
17 <property>
18 <name>mapreduce.jobhistory.done-dir</name>
19 <value>/usr/local/hadoop/mrhistory/done</value>
20 <description>目錄中的歷史文件是由MR JobHistoryServer管理</description>
21 </property>
22 </configuration>
Web Interface
Daemon |
Web Interface |
Notes |
NameNode |
http://nn_host:port/ |
默認端口號50070 |
ResourceManager |
http://rm_host:port/ |
默認端口號8088 |
MapReduce JobHistory Server |
http://jhs_host:port/ |
默認端口號19888 |