Hadoop2.2.0 单节点安装

jopen 10年前

如果是基于学习的目的而需要使用Hadoop,建议下载Linux虚拟机,比如Ubuntu,然后在虚拟机中安装Hadoop。
可以Google一下VMWare Player和Ubuntu,并下载安装到本地。你也可以下载其他一些工具以方便您操作虚拟机,比如Putty。请参考各自相关文档。
如果不具备操作Linux的基本知识,建议先熟悉Linux的基本操作。(本人也不是Linux高手,但是可以进行基本操作,比如复制文件、安装程序之类的)

本文写作时,Hadoop 2.2已经发布,您可以访问以下地址获取最新的安装包:
http://mirror.esocc.com/apache/hadoop/common/ 下载hadoop-2.2.0.tar.gz
d1.jpg
安装前提:
以下两个软件是在Linux下必须安装的。如果没有安装,可以分别执行以下命令进行安装:
$ sudo apt-get install ssh
$ sudo apt-get install rsync

我们以单节点集群为例,演示如何安装在Ubuntu上安装Hadoop2.2.0。

安装步骤:
1)将下载的Hadoop安装包放到指定的目录,比如放到您当前用户的home目录。执行以下命令解压安装包:
tar xzf hadoop-2.2.0.tar.gz

2)编辑home目录下的.bashrc,添加以下项:
# add for hadoop 2.2
export HADOOP_HOME=/home/user/hadoop-2.2.0
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

3)添加namenode和datanode目录
mkdir -p $HADOOP_HOME/yarn/yarn_data/hdfs/namenode
mkdir -p $HADOOP_HOME/yarn/yarn_data/hdfs/datanode
注:请将$HADOOP_HOME替换成hadoop的安装目录

4)编辑yarn-site.xml,加入以下配置:

<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>

注:根据需要,可以更改端口号以及本地文件目录。如果使用了本地文件目录,最好事先创建好这些对应的目录。比如上面的配置文件中,我们使用了/home/user/hadoop-2.2.0/nodemanager-local-dirs 这个目录。

5)编辑core-site.xml,添加以下配置:
 <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>

6)编辑hdfs-site.xml,添加以下配置:
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/home/user/hadoop-2.2.0/yarn/yarn_data/hdfs/namenode</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/home/user/hadoop-2.2.0/yarn/yarn_data/hdfs/datanode</value>
  </property>

7)编辑mapred-site.xml,添加以下配置:
  <property>
  <name>mapreduce.cluster.temp.dir</name>
    <value></value>
    <description>No description</description>
    <final>true</final>
  </property>
  <property>
<name>mapreduce.cluster.local.dir</name>
<value></value>
    <description>No description</description>
    <final>true</final>
  </property>
注:如果该文件不存在,可通过复制mapred-site.xml.template文件而得。

8)编辑hodoop-env.sh,修改以下对应行为:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
注:请确定JAVA已正确安装。如果没有,你可以参照相关文档进行JAVA的安装。

9)初始化noamenode
bin/hadoop namenode -format

10)启动hadoop守护进程。依次执行以下命令:
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
sbin/hadoop-daemon.sh start secondarynamenode
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
sbin/mr-jobhistory-daemon.sh start historyserver

11)运行以下命令可以查看各服务状态:
http://localhost:50070
http://localhost:8088
http://localhost:19888
d2.jpg
</div>
如果需要停止以上服务,可依次运行以下命令:
sbin/hadoop-daemon.sh stop namenode
sbin/hadoop-daemon.sh stop datanode
sbin/hadoop-daemon.sh stop secondarynamenode
sbin/yarn-daemon.sh stop resourcemanager
sbin/yarn-daemon.sh stop nodemanager
sbin/mr-jobhistory-daemon.sh stop historyserver
注:可以将以上多条命令放到一个脚本文件中,以方便执行。
12)测试
运行以下命令创建数据文件并复制到dfs中:
mkdir in 
vi in/file
Hadoop is fast
Hadoop is cool 
bin/hadoop fs -copyFromLocal in/ /in

用Hadoop自带的wordcount进行测试:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /in /out

如果安装正确,您将可以在屏幕上看到任务调用后的各项处理信息。
如果你再次调用该任务,可能会出现/out目录已存在的错误信息,此时您可以调用以下命令清除对应的目录,比如:
bin/hadoop fs -rm -r /out


本文参考了以下文章:
http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/index.html