hadoop参数配置详解
在搭建hadoop开发环境的时,配置的参数非常多,要怎么设定才能达到最好的效能是一件令人头痛的事,通过本文的分析使读者能对hadoop的参数配置有一个详细的了解,初步学会如何进行hadoop参数配置。
一、配置文件介绍
在hadoop集群中,需要配置的文件主要包括四个,分别是core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml,这四个文件分别是对不同组件的配置参数,主要内容如下表所示:
| 序号 | 配置文件名 | 配置对象 | 主要内容 |
1 | core-site.xml | 集群全局参数 | 用于定义系统级别的参数,如HDFS URL、Hadoop的临时目录等 |
2 | hdfs-site.xml | HDFS参数 | 如名称节点和数据节点的存放位置、文件副本的个数、文件读取权限等 |
3 | mapred-site.xml | Mapreduce参数 | 包括JobHistory Server和应用程序参数两部分,如reduce任务的默认个数、任务所能够使用内存的默认上下限等 |
4 | yarn-site.xml | 集群资源管理系统参数 | 配置 ResourceManager,NodeManager 的通信端口,web 监控端口等 |
二、hadoop参数格式
Hadoop没有使用java语言的管理配置文件,也没有使用Apache管理配置文件,而是使用了一套独有的配置文件管理系统,并提供自己的API。以XML文档格式进行配置,使用相应的配置文件类读取,并配置集群的运行。
<?xml version="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://cloud01:9000</value>
<description>定义默认的文件系统主机和端口</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
<final>4096</final>
<description>流文件的缓冲区为4K</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hduser/tmp</value>
<description>Abase forother temporary directories.</description>
</property>
</configuration>
在Hadoop配置文件的根元素configuration,一般只包含子元素property。每一个property元素就是一个配置项,配置文件不支持分层或分级。
每个配置项一般包括配置属性 名称 name、值value和一个关于配置项的描述description。元素final和Java中的关键字final类似,意味着这个配置项是“固定不变的”。final一般不出现,但在合并资源的时候,可以防止配置项的值被覆盖。
在configuration中每个属性都是string类型的,值类型可能是以下多种类型包括java中的基本类型,如boolean、int、long、float也可以是其他类型,如String、File、数组等。以上面的配置文件为例,定义了三个集群的参数,分别是集群主机和端口、流文件的缓冲区大小,临时文件存放位置,只有流文件此配置项是int型,而另两个配置项是字符串型。
三、搭建集群配置时重要参数
本节讨论在给定的配置文件中指定重要的参数,在四个配置文件中,最重要的参数及其解释如下:
1. core-site.xml
| 序号 | 参数名 | 默认值 | 参数解释 |
1 | fs.defaultFS | file:/// | 文件系统主机和端口 |
2 | io.file.buffer.size | 4096 | 流文件的缓冲区大小 |
3 | hadoop.tmp.dir | /tmp/hadoop-${user.name} | 临时文件夹 |
2. hdfs-site.xml
| 序号 | 参数名 | 默认值 | 参数解释 |
1 | dfs.namenode.secondary.http-address | 0.0.0.0:50090 | 定义HDFS对应的HTTP服务器地址和端口 |
2 | dfs.namenode.name.dir | file://${hadoop.tmp.dir}/dfs/name | 定义DFS的名称节点在本地文件系统的位置 |
3 | dfs.datanode.data.dir | file://${hadoop.tmp.dir}/dfs/data | 定义DFS数据节点存储数据块时存储在本地文件系统的位置 |
4 | dfs.replication | 3 | 缺省的块复制数量 |
5 | dfs.webhdfs.enabled | true | 是否通过http协议读取hdfs文件,如果选是,则集群安全性较差 |
3. mapred-site.xml
| 序号 | 参数名 | 默认值 | 参数解释 |
1 | mapreduce.framework.name | local | 取值local、classic或yarn其中之一,如果不是yarn,则不会使用YARN集群来实现资源的分配 |
2 | mapreduce.jobhistory.address | 0.0.0.0:10020 | 定义历史服务器的地址和端口,通过历史服务器查看已经运行完的Mapreduce作业记录 |
3 | mapreduce.jobhistory.webapp.address | 0.0.0.0:19888 | 定义历史服务器web应用访问的地址和端口 |
4. yarn-site.xml
| 序号 | 参数名 | 默认值 | 参数解释 |
1 | yarn.resourcemanager.address | 0.0.0.0:8032 | ResourceManager 提供给客户端访问的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等 |
2 | yarn.resourcemanager.scheduler.address | 0.0.0.0:8030 | ResourceManager提供给ApplicationMaster的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等 |
3 | yarn.resourcemanager.resource-tracker.address | 0.0.0.0:8031 | ResourceManager 提供给NodeManager的地址。NodeManager通过该地址向RM汇报心跳,领取任务等 |
4 | yarn.resourcemanager.admin.address | 0.0.0.0:8033 | ResourceManager 提供给管理员的访问地址。管理员通过该地址向RM发送管理命令等。 |
5 | yarn.resourcemanager.webapp.address | 0.0.0.0:8088 | ResourceManager对web 服务提供地址。用户可通过该地址在浏览器中查看集群各类信息 |
6 | yarn.nodemanager.aux-services |
| 通过该配置项,用户可以自定义一些服务,例如Map-Reduce的shuffle功能就是采用这种方式实现的,这样就可以在NodeManager上扩展自己的服务。 |
四、搭建集群配置样例
样例中搭建的集群一共有三台机器,其yarn和namenode都在同一台机器上,该机器的机器名称为cloud01,所用系统为unbuntu 12.10。
配置文件1:core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://cloud01:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hduser/tmp</value>
</property>
</configuration>
配置文件2:hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>cloud01:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hduser/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hduser/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
配置文件3:mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>cloud01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>cloud01:19888</value>
</property>
</configuration>
配置文件4:yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>cloud01:8132</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>cloud01:8130</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value> cloud01:8131</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value> cloud01:8133</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>cloud01:8188</value>
</property>
</configuration>
四、更多的配置参数的信息
上面讲过的对hadoop进行的配置,都是一些重要的配置信息,一个好的hadoop 管理员应该熟悉和掌握全部的配置信息,这样才能更好地解决hadoop集群系统在运行过程中遇到的问题。通过可以通过两个办法获取得全部的配置信息:
方法一.可以通过hadoop官方网址查询,网址如下:
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
通过这些网址,可以了解最新的全部的hadoop 配置信息,而且包括一些过时的定义标识,从而更好地维护您的集群。
方法二:通过集群工具查询
集群配置好后,可以通过http://192.168.75.101:8188/conf,查看集群参数状况,其中192.168.75.101为yarn.resourcemanager.webapp.address配置项的地址,8188为该配置项设置的端口。
和方法一相比,方法二更适合于自己管理的集群,但要想知道最新的配置信息,还是需要定期到hadoop的官方网站上去获取。
课程安排@北京&远程
| Hadoop大数据 分析师 | 课程 | 大纲简介 | 预期效果 |
5月30日 | 大数据前沿知识及hadoop入门 | 1.大数据前沿知识介绍 2.课程介绍 3. Linux及unbuntu系统基础4.hadoop的单机和伪分布模式的安装配置 | 零基础入门,了解大数据的历史背景及发展方向,掌握hadoop的两种安装配置 |
5月31日 6月06日 | Java基础 | 1. java程序的基本框架 2. Java的数据类型与表达式介绍3. java程序设计的基础 4.java的面向对象编程及方法 | 零基础入门,了解java程序设计的基本思想,熟练利用eclipse进行简单的java程序设计,熟练使用jar文件,了解mysql等数据库管理系统的原理,了解基于web的程序开发流程 |
6月07日 | Hadoop部署进阶 | 1.Hadoop集群模式搭建 2. Hadoop分布式文件系统HDFS深入剖析3.使用hdfs提供的api进行hdfs文件操作 | 熟练掌握hadoop集群搭建;对Hadoop架构的分布式文件系统HDFS进行深入分析 |
6月13日 | MapReduce理论及实战 | 1. Mapreduce概念及思想 2.mapreduce构架和流程3.三个基于mapreduce的初级案例 4.mapreduce高级案例--人大经济论坛日志管理 | 熟悉MapReduce的工作原理及应用,熟悉基本的MapReduce程序设计,掌握根据大数据分析的目标设计和编写基于mapreduce的项目 |
6月14日 6月20日 | hadoop+Mahout实战 | 1. mahout学习之简介、安装及配置 2. 六个实战案例深入解析hadoop+mahout的大数据分析之分类、聚类与主题推荐 | 掌握基于hadoop+mahout的大数据分析方法的使用场景,熟练运用mahout的成熟算法进行特定场景的大数据分析 |
6月21日 | Hbase实战及 Hadoop生态环境介绍 | 1. hbase简介、安装及配置 2. hbase实战3. Hadoop生态环境介绍 | 掌握hbase的数据存储及项目实战 了解ZooKeeper、Pig、Hive、Sqoop的安装、配置及使用场景 |
详细课程大纲请见:https://bbs.pinggu.org/thread-3515862-1-1.html
课程试听部分:http://www.tudou.com/programs/view/96FhjLBDp1o/
大数据爱好者可加群:174921162(学习交流)
Hadoop大数据分析师@第二期安排
| 项目名称 | Hadoop大数据分析师 |
时间 | 5月30日-6月21日/@北京 &远程 周六日(共8天) |
地点 | 北京海淀区 人大经济论坛培训中心 |
价格(元) | 全程:8800(现场班)/5800(远程直播) |
优惠 | 1. 全日制在读学生8折优惠(凭全日制学生证报名) 2. 提前一月报名并缴费立减500元3. 参加过论坛其他现场班老学员9折优惠 4. 同一单位三人及以上报名9折优惠,五人及以上8折优惠5. 原价报名者将捐出100元作为助学基金,满3000捐赠贫困学生 注明:以上优惠不能累加 》》》》 |
关于证书 | 可申请工信部NTC《数据分析师证书》,培训后即可得到 需单独申请(另交申请费用 400元) |
现场班福利 | 全套现场视频资料,终身学习,在线答疑 赠送《数据分析基础》视频一套 可2000元购买CDA全套视频资料(原价2700元) 午餐,咖啡茶歇,论坛币(1000个) |
扫码加好友,拉您进群




收藏
