Hadoop2.0的架构和1.0完全不一样,在安装配置上和1.0也有很大的不同,譬如配置文件的目录不一样了,还有要对yarn进行配置,这个在1.0是没有的。很多人第一次接触hadoop2.0的时候,会很不适应,而且官方的文档也有些写得不太清楚的地方,也有些错误。笔者在初次安装hadoop2.0的时候,看着官方的文档,中间也出现过很多问题。为了帮助大家很快的部署上hadoop2.0,笔者写了这篇文章。这篇文章主要就是介绍一个hadoop2.0的一个最基本最简单的配置,目的就是尽快的让hadoop2.0在机器上跑起来。后面会有其他文章来介绍在这个基本的配置上做一些更复杂的特性的配置,包括HA,federation等,还有对一些实用参数的配置和优化。
--------------------------------------分割线 --------------------------------------
相关阅读:
Ubuntu 13.04上搭建Hadoop环境
Ubuntu 12.10 +Hadoop 1.2.1版本集群配置
搭建Hadoop环境(在Winodws环境下用虚拟机虚拟两个Ubuntu系统进行搭建)
--------------------------------------分割线 --------------------------------------
1 hadoop版本
hadoop-2.2.0,这是hadoop2.0的第一个稳定版,在2013年10月15日发布。
2 安装机器
这里以2台机器为例,一台master,一台slaver。多台slaver的情况一样。
master:hadoop2-m1
slaver:hadoop2-s1
3 配置
hadoop安装的根目录是 HADOOP_HOME=/your/path/to/hadoop-2.2.0
则配置目录默认是:HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
需要对$HADOOP_CONF_DIR目录下的四个配置文件进行配置:
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
3.1 设置JAVA_HOME环境变量
export JAVA_HOME=/your/path/to/jdkdir
3.2 设置core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop2-m1:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/tmp/hadoop2.0</value>
</property>
</configuration>
3.3 设置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/dfs/data</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
3.4 设置mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
3.5 yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop2-m1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop2-m1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop2-m1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop2-m1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop2-m1:8088</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
<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>
</configuration>
注意:yarn.nodemanager.aux-services的值是“mapreduce_shuffle”(在hadoop-2.1-beta中的值是“mapreduce.shuffle”)