Hadoop集群参数和常用端口
一、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三个配置文件的参数含义说明.