综合描述
Apache Hadoop 2.7.1 是2.x.y版本发布的一个支线,它是在2.7.0的基础上建立的。这是2.6.x版本之后的一个稳定版本。
以下是该版本主要特点概要描述和对2.6.x版本的改进:
·注意事项
·这个版本不再支持JDK6,并且仅仅支持JDK7及以上版本。
·支持平台
·支持Windows Azure 存储 - 在Hadoop中以Blob容器作为文件系统。
·HDFS(分布式文件系统)
·支持文件截取
·支持任意的存储类型
·支持改变长度的文件
·YARN
·YARN使用插拔式授权
·自动共享,全局缓存本地资源(beta)
·MAPREDUCE
·能够限制一个Map/Reduce任务作业的运转。
·加快大规模的作业使FileOutputCommitter进行多文件输出。
开始
Hadoop参考文档中包括你所需要开始使用的Hadoop信息。从单机模式安装开始,这里告诉你如何安装配置一个单机模式的Hadoop。然后继续进入集群设置学习如何建立多节点Hadoop安装配置。
Hadoop:单节点设置
目的
本节讲述如何建立和配置一个单节点的Hadoop安装,以便你能够快速执行简单的使用Hadoop MapReduce和Hadoop分布式文件系统(HDFS)。
先决条件
支持平台
·GNU/Linux是产品开发和运行的平台。 Hadoop已在有2000个节点的GNU/Linux主机组成的集群系统上得到验证。
·Windows也可以作为一个支持平台,但以下操作仅仅为Linux环境。在Windows环境可到官网参考相关文档。
所需软件
所需软件包括:
1、JDK7必须安装。
2、ssh 必须安装并且保证 sshd一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程。
安装软件
如果您还尚未安装所需要的软件,您将需要安装它。
例如在Ubuntu Linux:
$ sudo apt-get install ssh
$ sudo apt-get install rsync
下载
为了获取Hadoop的发行版,从Apache的某个镜像服务器上下载最近的 。
运行Hadoop集群准备工作
解压所下载的Hadoop发行版。在发布的目录上,编辑etc/hadoop-env.sh 定义一些参数如下:
# set to the root of your Java installation
export JAVA_HOME=/usr/java/latest(jdk安装目录)
尝试执行以下命令:
$ bin/hadoop
这时候将显示文档的使用hadoop脚本。
现在您可以准备启动您Hadoop集群三种模式的其中一个模式:
·本机(独立)模式;
·伪分布式模式;
·完全分布式模式;
独立运行
Hadoop默认配置运行为非分布式模式,作为单个的java进程。这种方式对程序调式非常有帮助。
下面的实例将已解压的 conf 目录拷贝作为输入,查找并显示匹配给定正则表达式的条目。输出写入到指定的output目录(切记请不要手动创建output文件夹)。
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/ mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output ‘dfs[a-z.]+’
伪分布式操作
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>fs.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
$ export HADOOP_PREFIX=/usr/local/hadoop(hadoop安装路劲)
执行
以下操作是执行一个MapReduce本地作业,如果您想在YARN上执行一个作业,请参考YARN单节点设置教程。
1、 格式化一个分布式文件系统:
$ bin/hdfs namenode -format
2、 启动NameNode守护进程和DataNode守护进程:
$ sbin/start-dfs.sh
Hadoop守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 ${HADOOP_HOME}/logs).
3、 浏览器NameNode网络接口默认地址为:
NameNode –
4、 使用HDFS程序路径执行一个MapReduce作业:
$ bin/hdfs dfs –mkdir /user
$ bin/hdfs dfs –mkdir /user/<username>
5、 复制input文件夹中的文件到分布式文件系统:
$ bin/hdfs dfs –put etc/hadoop input
6、 执行一些示例提供的:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-2.7.1.jar input output ‘dfs[a-z.]+’
7、 检查output文件夹中的文件:将输出的文件从分布式文件系统复制到本地文件系统中并检查它们:
$ bin/hdfs dfs –get output output
$ cat output/*
或者
直接查看分布式文件系统中的文件:
$ bin/hdfs dfs –cat output/*
8、 当你完成操作后,停止守护进程:
$ sbin/stop-dfs.sh
单节点中的YARN
在伪分布式模式中的YARN,您可以通过设置一些参数、运行资源管理守护进程以及NodeManager守护进程执行一个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守护进程:
$ bin/start-yarn.sh
3、 ResourceManager浏览器网络接口默认地址:
·ResourceManager –
4、 执行一个MapReduce作业。
5、 当您完成这些操作时,可通过以下命令停止守护进程:
$ sbin/stop-yarn.sh
完全分布式操作
关于完全分布式建立,请参考集群设置文档。