Hadoop Intro - Configure
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
- 配置NameNode
| 参数 | 属性值 | 解释 |
| 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>

- 配置DataNode
| 参数 | 属性值 | 解释 |
| 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>

- 配置NodeManager
| 参数 | 属性值 | 解释 |
| 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/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
| 参数 | 属性值 | 解释 |
| 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 |
Hadoop Intro - Configure的更多相关文章
- Hadoop Intro - Configure 01
hadoop配置文件详解.安装及相关操作 一. Hadoop伪分布配置 1. 在conf/hadoop-env.sh文件中增加:export JAVA_HOME=/home/Java/j ...
- hadoop yarn configure
<property> <description>The minimum allocation for every container request at the RM, ...
- Hadoop&Hbase 双机热备--Pacemaker&DRBD部署
相关文章 DRBD的介绍请参考http://blog.csdn.net/rzhzhz/article/details/7103772 DRBD的部署请参考http://blog.csdn.ne ...
- Golang、Php、Python、Java基于Thrift0.9.1实现跨语言调用
目录: 一.什么是Thrift? 1) Thrift内部框架一瞥 2) 支持的数据传输格式.数据传输方式和服务模型 3) Thrift IDL 二.Thrift的官方网站在哪里? 三.在哪里下载?需要 ...
- Python3学习之路~9.1 paramiko模块:实现ssh执行命令以及传输文件
我们一般使用linux的时候,都是在Windows上安装一个ssh客户端连接上去.那么从一台linux如何连接到另一条linux呢?使用ssh命令即可,因为每台linux机器自己都有一个ssh客户端. ...
- 国产深度学习框架mindspore-1.3.0 gpu版本无法进行源码编译
官网地址: https://www.mindspore.cn/install 所有依赖环境 进行sudo make install 安装,最终报错: 错误记录信息: cat /tmp/mind ...
- Hadoop源码学习笔记(1) ——第二季开始——找到Main函数及读一读Configure类
Hadoop源码学习笔记(1) ——找到Main函数及读一读Configure类 前面在第一季中,我们简单地研究了下Hadoop是什么,怎么用.在这开源的大牛作品的诱惑下,接下来我们要研究一下它是如何 ...
- configure HDFS(hadoop 分布式文件系统) high available
注:来自尚学堂小陈老师上课笔记 1.安装启动zookeeper a)上传解压zookeeper包 b)cp zoo_sample.cfg zoo.cfg修改zoo.cfg文件 c)dataDir=/o ...
- [Hadoop in Action] 第7章 细则手册
向任务传递定制参数 获取任务待定的信息 生成多个输出 与关系数据库交互 让输出做全局排序 1.向任务传递作业定制的参数 在编写Mapper和Reducer时,通常会想让一些地方可以配 ...
随机推荐
- Linux sogou input method
afda@afda-Y720-15IKB:~$ wget "http://pinyin.sogou.com/linux/download.php?f=linux&bit=64&quo ...
- 最常用的15个前端表单验证JS正则表达式
在表单验证中,使用正则表达式来验证正确与否是一个很频繁的操作,本文收集整理了15个常用的JavaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份 ...
- snmp snmp4j的使用
snmp4j的使用 一.什么是snmp及snmp4j? snmp是 Simple Network Management Protocol (简单网络管理协议)的简写. SNMP4J是一个用Java来实 ...
- dubbo异步调用原理 (1)
此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 一.使用方式 服务提供方不变,调用方代码如下: 1 <dubbo:reference id=& ...
- (转)Haar-like矩形遍历检测窗口演示Matlab源代码
from:http://blog.sina.com.cn/s/blog_736aa0540101kzqb.html clc; clear; close all; % Haar-like特征矩形计算 b ...
- VMWare 装mac os x 一个必备优化神器 beamoff
https://blog.csdn.net/whitehack/article/details/47074403/ VMWare 装mac os x 一个必备优化神器 beamoff 2015年07月 ...
- Windows 下 Swoole开发环境配置
一直停留在windows,入了 jetbrains 的全家桶.准备入门 Swoole,不可能每做一点修改就 git push 运行一下.因此要在 windows 上配置 swoole 运行环境.对比了 ...
- 乱序优化与GCC的bug
以下内容来自搜狗实验室技术交流文档,搜狐公司研发中心版权所有,仅供技术交流 摘要 --------- 乱序优化是现代编译器非常重要的特性,本文介绍了什么是乱序优化,以及由此引发的一个bug,希 ...
- VB-机房收费系统之Excel导出
敲机房很久了,感觉对代码的感知力终于有所提高了,很是开心.今天在敲学生充值记录查询的时候发现,其中有了新的知识, 这时候就该到了分析问题的时候了.不说废话了! 首先 保证自己的笔记本或者电脑上必须有 ...
- MongoDB3.2(C#版) CRUD
Retrieve(检索.查询): 分两种(一种是插入对象没有自定义; 第二种就是自定义插入对象) 这两种情况下的区别就是插入数据库中的文档类型不一样,一个是BsonDocument,一个是自定义对象( ...