来源自官方文档,hadoop版本2.6,官网http://hadoop.apache.org/
建立Hadoop单节点集群
目的
本文档介绍了如何设置和配置一个单一节点的Hadoop安装过程,可以使您快速地使用Hadoop MapReduce和Hadoop分布式文件系统(HDFS)进行简单的操作。
支持的平台
1、GNU/Linux被支持作为开发和生产平台。Hadoop已被证明能在GNU/Linux平台下运行2000个节点的集群。
2、Windows同样也是一个支持的平台,但以下步骤只适用于Linux环境下。在Windows中配置Hadoop,参见wiki页面。
需要的软件
在Linux下需要的软件包括:
1、JavaTM必须安装。在HadoopJavaVersions中对推荐的Java版本进行了描述。
2、必须安装ssh,并且sshd必须一直在运行使得可以使用Hadoop脚本管理远程Hadoop守护进程。
安装软件
如果集群尚未安装必要的软件,你需要安装它。
例如在Ubuntu Linux:
$ sudo apt-get install ssh
$ sudo apt-get install rsync
下载
获得一个Hadoop,选择一个Apache镜像地址下载最近的稳定发行版镜像。
准备启动hadoop集群
解压下载的Hadoop分布。编辑文件 etc/hadoop/hadoop-env.sh定义一些参数如下:
# set to the root of your Java installation
export JAVA_HOME=/usr/java/latest
# Assuming your installation directory is /usr/local/hadoop
export HADOOP_PREFIX=/usr/local/hadoop
尝试下面的命令:
$ bin/hadoop
这将显示使用Hadoop的脚本文件。
现在你可以在三种支持的模式下选择一个启动Hadoop集群。
单机(本地)模式
伪分布式模式
完全分布式模式
单机模式
默认情况下,Hadoop被配置成一个以非分布式模式运行的独立Java进程,适合开始时做调试工作。
以下示例将复制解压后的conf目录作为输入,然后查找并显示给定的正则表达式的每一个比较。输出写入指定的输出目录。
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
$ cat output/*
伪分布模式
Hadoop也可以在单节点上以伪分布式模式运行,每一个Hadoop守护进程运行在独立的Java进程。
配置
如下:
etc/hadoop/core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
etc/hadoop/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
免密码ssh配置
现在检查你可以ssh到localhost没有密码:
$ ssh localhost
如果你不能无密码ssh到localhost,执行下列命令:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
执行
以下说明是独立运行MapReduce的一个作业。如果你想在YARN上执行一个工作,看单节点YARN
1、格式化文件系统:
$ bin/hdfs namenode -format
2、启动NameNode和DataNode守护进程:
$ sbin/start-dfs.sh
hadoop守护进程日志文件输出到$HADOOP_LOG_DIR
目录下(默认在$HADOOP_HOME/logs
)。
3、浏览NameNode Web界面;默认情况下是可用的:
NameNode - http://localhost:50070/
4、创建执行MapReduce工作所需要的HDFS目录:
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/
5、复制输入文件到分布式文件系统:
$ bin/hdfs dfs -put etc/hadoop input
6、运行提供的例子:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
7、检查输出文件:
从分布式文件系统复制输出文件到本地文件系统并检查结果:
$ bin/hdfs dfs -get output output
$ cat output/*
或者在分布式文件系统中查看输出文件:
$ bin/hdfs dfs -cat output/*
8、当完成任务时,用下列命令停止守护进程:
$ sbin/stop-dfs.sh
单节点YARN
你可以通过设置一些参数,另外运行ResourceManager和NodeManager的守护进程在伪分布模式YARN下运行MapReduce工作。
下面的说明假定上述的1~4步骤已经执行完成。
1、配置参数如下:
etc/hadoop/mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
etc/hadoop/yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
2、启动ResourceManager和NodeManager守护进程:
$ sbin/start-yarn.sh
3、浏览ResourceManager的Web界面;默认情况下是:
ResourceManager – http://localhost:8088/
4、运行一个MapReduce工作
5、当你完成工作之后,关闭守护进程用:
$ sbin/stop-yarn.sh
完全分布式模式
了解如何建立完全分布式,非平凡集群的信息查看集群安装。