Hadoop 2.9.1 单机与伪分布式安装
该文档翻译自 http://hadoop.apache.org/docs/r2.9.1/hadoop-project-dist/hadoop-common/SingleCluster.html
目的
该文档 阐述如何安装配置单节点的Hadoop,你可以快速开始开始使用一些简单的HadoopMapReduce
和HDFS
的操作
环境需求
支持平台
- GNU/Linux可以作为研发与生产的平台,Hadoop已经在2000多个GNU/Linux节点上试验过
- Windows也可以支持,但是下面的这些步骤只是在Linux上的安装过程。Windows上的构建指导可以参考wiki page.
软件需求
Linux上安装需要的软件有:
- 必须安装Java™,推荐的Java版本可以从这里获取HadoopJavaVersions.
- 必须安装
ssh
,并且sshd
必须运行起来。这样才能使用Hadoop的脚本来管理远端的Hadoop节点。
安装软件
如果你的集群节点没有安装这些必须的软件,你需要先安装他们
例如在Ubuntu Linux
上:
|
|
软件下载
从Apache Download Mirrors下载一个目前Hadoop发布的稳定版本。
准备启动Hadoop集群
解压下载的Hadoop发布版本,编辑etc/hadoop/hadoop-env.sh
修改一些参数
|
|
执行下面的命令
|
|
这会显示这个hadoop脚本的使用文档说明
现在你可以准备几种方式来启动你的Hadoop集群了
单机模式
默认情况下,Hadoop被配置为非分布式模式的独立的Java进程,这对调测非常有用。
下面的实例将已解压的 conf 目录拷贝作为输入,查找并显示匹配给定正则表达式的条目。输出写入到指定的output目录
|
|
伪分布式模式
Hadoop可以在单节点上以所谓的伪分布式模式运行,此时每一个Hadoop守护进程都作为一个独立的Java进程运行。
配置
使用如下的 etc/hadoop/core-site.xml
:
|
|
etc/hadoop/hdfs-site.xml
|
|
免密码ssh设置
现在确认能否不输入口令就用ssh登录localhost:
|
|
如果不能免密码登陆localhost,执行下面的命令
|
|
执行
下面的指令是本地执行一个MapReduce
的job,如果你想在YARN
上执行job,可以看 单节点上的YARN.
-
格式化文件系统
1
$ bin/hdfs namenode -format
-
启动守护进程
NameNode
和DataNode
1
$ sbin/start-dfs.sh
hadoop守护进程的日志打印在
$HADOOP_LOG_DIR
中(默认是$HADOOP_HOME/logs
) -
查看
NameNode
的web界面,默认地址是:- NameNode - http://localhost:50070/
-
创建执行MapReduce任务需要的HDFS目录
1 2
$ bin/hdfs dfs -mkdir /user $ bin/hdfs dfs -mkdir /user/<username>
-
将任务需要的输入文件拷贝到分布式文件系统
1
$ bin/hdfs dfs -put etc/hadoop input
-
执行一些提供的示例
1
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar grep input output 'dfs[a-z.]+'
-
检查输出文件。将输出文件从分布式文件系统拷贝到本地文件系统中,打开检查
1 2
$ bin/hdfs dfs -get output output $ cat output/*
或者你可以直接在分布式文件系统中查看
1
$ bin/hdfs dfs -cat output/*
-
完成示例测试后,停掉守护进程
1
$ sbin/stop-dfs.sh
单节点上的YARN
在伪分布式模式下,你也可以配置一些参数启动ResourceManager
和NodeManager
,在YARN
上执行MapReduce
任务
下面1-4的步骤建立在上面章节提到的指令都已经执行过的前提下
-
配置
etc/hadoop/mapred-site.xml
1 2 3 4 5 6
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
etc/hadoop/yarn-site.xml
1 2 3 4 5 6
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
-
启动
ResourceManager
和NodeManager
1
$ sbin/start-yarn.sh
-
打开查看
ResourceManager
的web界面,默认地址是:- ResourceManager - http://localhost:8088/
-
执行一个MapReduce任务
-
完成后,停止守护进程
1
$ sbin/stop-yarn.sh
完全分布式模式
关于搭建完全分布式模式的,有实际意义的集群的资料可以在这里找到。