hadoop2.8.2官方文档之单节点集群

来源:互联网 发布:淘宝客刷爆款 编辑:程序博客网 时间:2024/05/22 05:08

目标

本文档描述怎样安装和配置一个单节点的Hadoop,让你最快的使用MapReduce和HDFS来进行一些简单的操作。

需求

平台支持

  • GNU/Linux可以用作开发和正式平台,Hadoop在GNU/Linux平台集群2000个节点已经被证实是可行的。
  • windows平台也是支持的,不过下面文档中的步骤都是在Linux上的,如果要在windows上安装Hadoop,请查看wiki page

软件支持

linux平台上的软件

  • java必须安装,推荐的版本请查看Hadoop java versions
  • ssh必须安装并且使用Hadoop脚本执行sshd来管理远程Hadoop实例。

安装软件

如果你没有这些需求的软件,那么你需要安装他们,在Ubuntu Linux上实例如下:

$ sudo apt-get install ssh

$ sudo apt-get install rsync

下载

从Apache Download Mirrors下载一个当前稳定的Hadoop版本.

准备启动Hadoop集群

解压已下载的Hadoop压缩包,然后编辑文件etc/hadoop/hadoop-env.sh,定义一些参数,如下:

export JAVA_HOME=/usr/java/latest

输入下面命令:

$ bin/hadoop

这个命令会展示出一些有用帮助说明,可以使用这些命令来操作hadoop。命令如下:

Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]  CLASSNAME            run the class named CLASSNAME or  where COMMAND is one of:  fs                   run a generic filesystem user client  version              print the version  jar <jar>            run a jar file                       note: please use "yarn jar" to launch                             YARN applications, not this command.  checknative [-a|-h]  check native hadoop and compression libraries availability  distcp <srcurl> <desturl> copy file or directories recursively  archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive  classpath            prints the class path needed to get the  credential           interact with credential providers                       Hadoop jar and the required libraries  daemonlog            get/set the log level for each daemon  trace                view and modify Hadoop tracing settings

现在万事俱备,只欠东风,你可以开始你的Hadoop集群了。

单节点模式

默认的Hadoop配置运行在非分布式模式,运行在一个java进程下,这对于开发调试来说是有用的。
下面的例子拷贝一些xml文件到input目录下,从这些文件中找到并输出符合给定正则表达式的结果,结果输出到output目录中。

$ mkdir input$ cp etc/hadoop/*.xml input$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.2.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-keygen -t rsa -P '' -f ~/.ssh/id_rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys

启动

下面的实例在本地运行MapReduce任务,如果你想运行在YARN,下面在介绍。

1:格式化文件系统

 $ bin/hdfs namenode -format

2:启动NameNode和DataNode

 $ sbin/start-dfs.sh

hadoop日志输出在$HADOOP_LOG_DIR 目录中,默认就是安装目录下的logs目录中。

3:浏览NameNode的web接口

打开浏览器,输出http://localhost:50070/。

4:使HDFS目录可执行MapReduce任务

  $ bin/hdfs dfs -mkdir /user  $ bin/hdfs dfs -mkdir /user/<username>

5:复制input文件到HDFS中

  $ bin/hdfs dfs -put etc/hadoop input

6:执行提供好的实例

$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.2.jar grep input output 'dfs[a-z.]+'

7:查看输出文件

先把HDFS中的结果复制到本地文件系统中然后查看。

  $ bin/hdfs dfs -get output output  $ cat output/*

当然你也可以直接在HDFS中查看。

$ bin/hdfs dfs -cat output/*

8:停止

$ sbin/stop-dfs.sh

YARN

你可以使用YARN来运行伪分布模式,通过设置几个参数,启动ResourceManager进程和NodeManager 进程。
假设上面的1-4步骤已经执行完成。

5:配置文件

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>

6:启动ResourceManager 和NodeManager

$ sbin/start-yarn.sh

7:浏览ResourceManager的web接口

http://localhost:8088/

8:执行MapReduce任务

参考上面的6-7步骤

9:停止

 $ sbin/stop-yarn.sh
原创粉丝点击