一、Hadoop集群參數配置
在hadoop集群中,需要配置的文件主要包括四個,分別是core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml,這四個文件分別是對不同組件的配置參數,具體如下:
- core-site.xml,集群全局參數。用於定義系統級別的參數,如HDFS、URL、Hadoop的臨時目錄等。
- hdfs-site.xml,HDFS參數。如名字節點和數據節點的存放位置、文件副本的個數、文件讀取權限等。
- yarn-site.xml,集群資源管理系統參數。配置ResourceManager、NodeManager的通信端口,web監控端口等。
- mapred-site.xml,MapReduce參數。包括JobHistory Server和應用程序參數兩部分,如reduce任務的默認個數、任務所能使用內存的默認上下限等。
1.1 core-site.xml
參數名稱 |
默認值/缺省值 |
說明 |
fs.defaultFS |
file:/// |
文件系統主機和端口 |
io.file.buffer.size |
4096 |
流文件的緩沖區大小,,建議為65536(64K) |
hadoop.tmp.dir |
/tmp/hadoop-${user.name} |
臨時文件夾 |
fs.trash.interval |
0 |
當文件被刪除時,會放到用戶目錄的.Trash目錄下,而不是立即刪掉。建議配置1440(一天) |
1.2 hdfs-site.xml配置
1、NameNode的配置
參數名稱 |
默認值/缺省值 |
說明 |
dfs.namenode.name.dir |
file://${hadoop.tmp.dir}/dfs/name |
定義DFS的名字節點在本地文件系統的位置 |
dfs.namenode.hosts / dfs.namenode.hosts.exclude |
null,所有DataNode都可連入NameNode |
設置允許/拒絕請求NameNode的DataNode |
dfs.blocksize |
268435456 |
對於新文件切切分的大小,單位byte。默認256M |
dfs.namenode.handler.count |
10 |
NameNode用來處理來自DataNode的RPC請求的線程數量。建議設置成Datanode數量的10% |
2、DataNode的配置
參數 |
默認值 |
參數解釋 |
dfs.datanode.data.dir |
file://${hadoop.tmp.dir}/dfs/data |
定義DFS數據節點存儲數據塊時存儲在本地文件系統的位置 |
1.3 yarn-site.xml配置
1、ResourceManager和NodeManager配置
參數名稱 |
默認值/缺省值 |
說明 |
yarn.acl.enable |
true |
acl訪問權限控制是否開啟 |
yarn.admin.acl |
* |
管理員acl權限 |
yarn.log-aggregation-enable |
false |
是否啟用日志聚集功能 |
yarn.log-aggregation.retain-seconds |
-1 |
在HDFS上聚集的日志最多保存多長時間 |
yarn.log-aggregation.retain-check-interval-seconds |
-1 |
多長時間檢查一次日志 |
yarn.log-aggregation.retain-seconds |
/tmp/logs /${user}/${thisParam} |
遠程日志目錄子目錄名稱(啟用日志聚集功能時有效) |
2、ResourceManager配置
參數名稱 |
默認值/缺省值 |
說明 |
yarn.resourcemanager.address |
0.0.0.0:8032 |
ResourceManager提供給客戶端訪問的地址,客戶端通過該地址向RM提交應用程序,殺死應用程序等; |
yarn.resourcemanager.scheduler.address |
0.0.0.0:8030 |
ResourceManager提供給Applicationmaster的訪問地址。ApplicationMaster通過改地址向RM申請資源、釋放資源等 |
yarn.resourcemanager.resource-tracker.address |
0.0.0.0:8031 |
ResourceManager提供給NodeManager的地址。NodeManager通過改地址向RM匯報心跳、領取任務等 |
yarn.resourcemanager.admin.address |
0.0.0.0:8033 |
ResourceManager提供給管理員的訪問地址。管理員通過該地址向RM發送管理命令 |
yarn.resourcemanager.webapp.address |
0.0.0.0:8088 |
ResourceManager對web服務提供地址,用戶可通過該地址在瀏覽器中查看集群各類信息 |
yarn.resourcemanager.hostname |
hostname |
ResourceManager主機名 |
yarn.resourcemanager.scheduler.class |
CapacityScheduler |
啟動的資源調度器主類。目前可用的有FIFO、Capacity Scheduler和Fair Scheduler |
yarn.scheduler.minimum-allocation-mb / yarn.scheduler.maximum-allocation-mb |
1024 / 8192 |
單個任務可申請的最小/最大內存資源量 |
yarn.scheduler.minimum-allocation-vcores / yarn.scheduler.maximum-allocation-vcores |
1 / 32 |
單個任務可申請的最小/最大虛擬CPU數 |
yarn.resourcemanager.nodes.include-path / yarn.resourcemanager.nodes.exclude-path |
“” |
NodeManager黑白名單,用於允許/拒絕NodeManager對ResourceManager的訪問 |
yarn.resourcemanager.resource-tracker.client.thread-count |
50 |
處理來自NodeManager的RPC請求的Handler數目 |
yarn.resourcemanager.scheduler.client.thread-count |
50 |
處理來自ApplicationMaster的RPC請求的Handler數目 |
yarn.resourcemanager.nodemanagers.heartbeat-interval-ms |
1000(ms) |
NodeManager心跳間隔 |
3、NodeManager配置
參數名稱 |
默認值/缺省值 |
說明 |
yarn.nodemanager.resource.memory-mb |
8192 (MB) |
NodeManager總的可用物理內存。該參數一旦設置,在整個運行過程中不可動態修改 |
yarn.nodemanager.vmem-pmem-ratio |
2.1 |
每使用1MB物理內存,最多可用的虛擬內存數 |
yarn.nodemanager.resource.cpu-vcores |
8 |
NodeManager總的可用虛擬CPU個數 |
yarn.nodemanager.local-dirs |
${hadoop.tmp.dir}/nm-local-dir |
中間結果存放位置,一般會配置多個目錄,分攤磁盤IO負載 |
yarn.nodemanager.log-dirs |
${yarn.log.dir}/userlogs |
日志存放地址 |
yarn.nodemanager.log.retain-seconds |
10800 (3小時) |
NodeManager上日志最多存放時間(不啟用日志聚集功能時有效) |
yarn.nodemanager.aux-services |
“” |
NodeManager上運行的附屬服務 |
yarn.nodemanager.remote-app-log-dir |
/tmp/logs |
當應用程序運行結束時,日志被轉移到HDFS目錄(啟用日志聚集時有效) |
yarn.nodemanager.remote-app-log-dir-suffix |
${remote-app-log-dir}/${user}/{thisParam} |
集合日志后的存放地址由 ${remote-app-log-dir}/${user}/{thisParam}構成 |
1.4 mapred-site.xml配置
該配置文件主要是MapReduce相關參數配置,分為JobHistory Server和應用程序參數兩部分,JobHistory可運行在一個獨立節點上,而應用程序參數則可放在mapred-site.xml中作為默認參數,可以在提交應用程序時指定。
1、MapReduce JobHistory相關參數配置
在JobHistory所在節點的mapred-site.xml中配置
參數名稱 |
默認值/缺省值 |
說明 |
mapreduce.jobhistory.address |
0.0.0.0:10020 |
MapReduce JobHistory Server地址 |
mapreduce.jobhistory.webapp.address |
0.0.0.0:19888 |
MapReduce JobHistory Server Web UI地址 |
mapreduce.jobhistory.intermediate-done-dir |
/mr-history/tmp |
MapReduce作業產生的日志存放位置 |
mapreduce.jobhistory.done-dir |
/mr-history/done |
mapreduce.jobhistory.done-dir |
2、MapReduce作業參數配置
可在客戶端的mapred-site.xml中配置,也可在作業提交時指定這些參數。
參數名稱 |
默認值/缺省值 |
說明 |
mapreduce.job.name |
作業名稱 |
|
mapreduce.job.priority |
NORMAL |
作業優先級 |
yarn.app.mapreduce.am.resource.mb |
1536 |
MR ApplicationMaster占用的內存量 |
yarn.app.mapreduce.am.resource.cpu-vcores |
1 |
MR ApplicationMaster占用的虛擬CPU個數 |
mapreduce.am.max-attempts |
2 |
MR ApplicationMaster最大失敗嘗試次數 |
mapreduce.map.memory.mb |
1536 |
每個Map Task需要的內存量 |
mapreduce.map.cpu.vcores |
1 |
每個Map Task需要的虛擬CPU個數 |
mapreduce.map.maxattempts |
4 |
Map Task最大失敗嘗試次數 |
mapreduce.map.java.opts |
-Xmx1024M |
map任務啟用的子JVM的最大堆大小 |
mapreduce.reduce.memory.mb |
3072 |
每個Reduce Task需要的內存量 |
mapreduce.reduce.cpu.vcores |
1 |
每個Reduce Task需要的虛擬CPU個數 |
mapreduce.reduce.maxattempts |
4 |
Reduce Task最大失敗嘗試次數 |
mapreduce.map.speculative |
false |
是否對Map Task啟用推測執行機制 |
mapreduce.reduce.speculative |
false |
是否對Reduce Task啟用推測執行機制 |
mapreduce.reduce.java.opts |
-Xmx2560M |
Reduce任務啟用的子JVM的最大的堆大小 |
mapreduce.job.queuename |
default |
作業提交到的隊列 |
mapreduce.task.io.sort.mb |
512 |
任務內部排序緩沖區大小 |
mapreduce.task.io.sort.factor |
100 |
排序時一次合並的文件數 |
mapreduce.map.sort.spill.percent |
0.8 |
Map階段溢寫文件的閾值(排序緩沖區大小的百分比) |
mapreduce.reduce.shuffle.parallelcopies |
50 |
Reduce Task啟動的並發拷貝數據的線程數目 |
二、Hadoop常用端口
2.1 HDFS端口
參數 |
描述 |
默認端口 |
配置文件 |
fs.default.name.namemode |
namenode RPC交互端口 |
8020 |
core-site.xml |
dfs.http.address |
namenode web管理端口 |
50070 |
hdfs-site.xml |
dfs.datanode.address |
datanode控制端口 |
50010 |
hdfs-site.xml |
dfs.datanode.ipc.address |
datanode的RPC服務器地址和端口 |
50020 |
hdfs-site.xml |
dfs.datanode.http.address |
datanode的HTTP服務器地址和端口 |
50075 |
hdfs-site.xml |
2.2 Yarn端口
2.3 MapReduce端口
參數 |
描述 |
默認端口 |
配置文件 |
mapred.job.tracker |
job-tracker交互端口 |
8021 |
mapred-site.xml |
job |
tracker的web管理端口 |
50030 |
mapred-site.xml |
mapred.task.tracker.http.address |
task-tracker的HTTP端口 |
50060 |
mapred-site.xml |
【參考鏈接】
[1] 董西成, Hadoop YARN配置參數剖析.
[2] https://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/ClusterSetup.html
[3] yangjl38, hadoop三個配置文件的參數含義說明.