在搭建hadoop开发环境的时,配置的参数非常多,要怎么设定才能达到最好的效能是一件令人头痛的事,通过本文的分析使读者能对hadoop的参数配置有一个详细的了解,初步学会如何进行hadoop参数配置。 一、配置文件介绍 在hadoop集群中,需要配置的文件主要包括四个,分别是core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml,这四个文件分别是对不同组件的配置参数,主要内容如下表所示: 二、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 2. hdfs-site.xml 3. mapred-site.xml 4. yarn-site.xml 四、搭建集群配置样例 样例中搭建的集群一共有三台机器,其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./docs/current/hadoop-project-dist/hadoop-common/core-default.xml http://hadoop./docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml http://hadoop./docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml http://hadoop./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家族》