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 2 3 fs.defaultFS 4 hdfs://192.168.1.100:900 5 192.168.1.100为服务器IP地址,其实也可以使用主机名 6 7 8 io.file.buffer.size 9 131072 10 该属性值单位为KB,131072KB即为默认的64M 11 12
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 2 3 dfs.replication 4 1 5 分片数量,伪分布式将其配置成1即可 6 7 8 dfs.namenode.name.dir 9 file:/usr/local/hadoop/tmp/namenode 10 命名空间和事务在本地文件系统永久存储的路径 11 12 13 dfs.namenode.hosts 14 datanode1, datanode2 15 datanode1, datanode2分别对应DataNode所在服务器主机名 16 17 18 dfs.blocksize 19 268435456 20 大文件系统HDFS块大小为256M,默认值为64M 21 22 23 dfs.namenode.handler.count 24 100 25 更多的NameNode服务器线程处理来自DataNodes的RPCS 26 27
参数 | 属性值 | 解释 |
dfs.datanode.data.dir | 逗号分隔的一个DataNode上,它应该保存它的块的本地文件系统的路径列表 | 如果这是一个以逗号分隔的目录列表,那么数据将被存储在所有命名的目录,通常在不同的设备。 |
1 2 3 dfs.datanode.data.dir 4 file:/usr/local/hadoop/tmp/datanode 5 DataNode在本地文件系统中存放块的路径 6 7
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 2 3 yarn.resourcemanager.address 4 192.168.1.100:8081 5 IP地址192.168.1.100也可替换为主机名 6 7 8 yarn.resourcemanager.scheduler.address 9 192.168.1.100:8082 10 IP地址192.168.1.100也可替换为主机名 11 12 13 yarn.resourcemanager.resource-tracker.address 14 192.168.1.100:8083 15 IP地址192.168.1.100也可替换为主机名 16 17 18 yarn.resourcemanager.admin.address 19 192.168.1.100:8084 20 IP地址192.168.1.100也可替换为主机名 21 22 23 yarn.resourcemanager.webapp.address 24 192.168.1.100:8085 25 IP地址192.168.1.100也可替换为主机名 26 27 28 yarn.resourcemanager.scheduler.class 29 FairScheduler 30 常用类:CapacityScheduler、FairScheduler、orFifoScheduler 31 32 33 yarn.scheduler.minimum 34 100 35 单位:MB 36 37 38 yarn.scheduler.maximum 39 256 40 单位:MB 41 42 43 yarn.resourcemanager.nodes.include-path 44 nodeManager1, nodeManager2 45 nodeManager1, nodeManager2分别对应服务器主机名 46 47
参数 | 属性值 | 解释 |
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 2 3 yarn.nodemanager.resource.memory-mb 4 256 5 单位为MB 6 7 8 yarn.nodemanager.vmem-pmem-ratio 9 90 10 百分比 11 12 13 yarn.nodemanager.local-dirs 14 /usr/local/hadoop/tmp/nodemanager 15 列表用逗号分隔 16 17 18 yarn.nodemanager.log-dirs 19 /usr/local/hadoop/tmp/nodemanager/logs 20 列表用逗号分隔 21 22 23 yarn.nodemanager.log.retain-seconds 24 10800 25 单位为S 26 27 28 yarn.nodemanager.aux-services 29 mapreduce-shuffle 30 Shuffle service 需要加以设置的MapReduce的应用程序服务 31 32
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 2 3 mapreduce.framework.name 4 yarn 5 执行框架设置为Hadoop YARN 6 7 8 mapreduce.map.memory.mb 9 1536 10 对maps更大的资源限制的 11 12 13 mapreduce.map.java.opts 14 -Xmx2014M 15 maps中对jvm child设置更大的堆大小 16 17 18 mapreduce.reduce.memory.mb 19 3072 20 设置 reduces对于较大的资源限制 21 22 23 mapreduce.reduce.java.opts 24 -Xmx2560M 25 reduces对 jvm child设置更大的堆大小 26 27 28 mapreduce.task.io.sort 29 512 30 更高的内存限制,而对数据进行排序的效率 31 32 33 mapreduce.task.io.sort.factor 34 100 35 在文件排序中更多的流合并为一次 36 37 38 mapreduce.reduce.shuffle.parallelcopies 39 50 40 通过reduces从很多的map中读取较多的平行副本 41 42
- 配置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 2 3 mapreduce.jobhistory.address 4 192.168.1.100:10200 5 IP地址192.168.1.100可替换为主机名 6 7 8 mapreduce.jobhistory.webapp.address 9 192.168.1.100:19888 10 IP地址192.168.1.100可替换为主机名 11 12 13 mapreduce.jobhistory.intermediate-done-dir 14 /usr/local/hadoop/mrhistory/tmp 15 在历史文件被写入由MapReduce作业 16 17 18 mapreduce.jobhistory.done-dir 19 /usr/local/hadoop/mrhistory/done 20 目录中的历史文件是由MR JobHistoryServer管理 21 22
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 |