一、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 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 |
2.3 其他端口
参数 | 描述 | 默认端口 | 配置文件 |
dfs.secondary.http.address | secondary namenode web管理端口 | 50090 | hdfs-site.xml |
【参考链接】
[1] 董西成, .
[2]
[3] yangjl38,