Centos7搭建单节点的Hadoop hadoop单节点安装_hadoop安装


1.目的

这个文档描述了如何安装和配置hadoop,这样很快的你就可以使用hadoop mapreduce 和 HDFS(hadoop文件系统)进行简单操作。

2.先决条件:

2.1平台支持

.支持GUN/Linux 作为开发和生产的平台。hadoop 展示过在GUN/Linux 上的 2000节点的集群。

.也支持windows 平台,但是下面的步骤只适用于linux。windows 上安装页面,参考wiki.

http://wiki.apache.org/hadoop/Hadoop2OnWindows

2.2所需软件:

在linux 上需要安装下列软件:

1.java 必须安装 可以参考:http://wiki.apache.org/hadoop/HadoopJavaVersions

2.ssh 必须安装,并且sshd 必须用hadoop 脚本来运行,这样就可以管理远程hadoop后台进程。

3.软件安装:

如果你的集群节点没有所需的软件,你需要安装,例如在乌班图上:

sudo apt-get install ssh

sudo apt-get install rsync

3.1下载

可以从http://www.apache.org/dyn/closer.cgi/hadoop/common/相关页面找到下载地址。

3.2准备开启hadoop 集群:

解压下载的hadoop 分布式文件。cd到解压后的文件夹中,编辑etc/hadoop/hadoop-env.sh 定义下列参数:

# set to the root of your Java installation
 export JAVA_HOME=/usr/java/latest

然后运行下列命令:

bin/hadoop

这将显示使用hadoop脚本的文档。

现在你可以用下列三种模式中的一种来启动 hadoop 集群:

4.独立操作模式:

默认情况,hadoop作为单独的java进程,以一个非分布式的模式的配置启动。这个一般用于debug调试。

下面的例子是使用 正则来匹配 从解压出的conf 文件中对应的文件,将这些文件拷贝到input文件夹作为input,然后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.]+'

cat output/*

--重新执行测试,output文件夹不能相同。

5.伪分布式操作:

hadoop 可以也在一个单独节点上使用伪分布式的模式,每个hadoop后台以单独java进程启动。

5.1配置:

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>

5.2配置无密码ssh:

检查你的本地无密码

ssh localhost

如果不能无密码登陆,执行下列操作:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
 vi /etc/profile export HADOOP_PREFIX=/usr/local/hadoop

5.3执行:

下面介绍在本地运行一个MapReduce,如果你想在YARN上执行任务,参考YARN on a Single Node:

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

5.拷贝输入文件到分布式文件系统:

bin/hdfs dfs -put etc/hadoop input

6.一些运行的例子:

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep 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

6.在单独节点上使用YARN:

你可以在一个伪分布式节点上,通过设置一些参数,并且运行ResourceManager守护进程和NodeManager守护进程的条件下,在YARN 上运行MapReduce 任务。

下列1-4个操作步骤(假设上面介绍的执行步骤都已经执行):

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

6.2 执行

1.开启资源管理进程和节点管理进程

sbin/start-yarn.sh

2.为资源管理器配置web;默认地址是:

ResourceManager - http://localhost:8088/

3.运行一个 MapReduce 任务

4.当你完成时,关闭进程:

$ sbin/stop-yarn.sh

7.全分布式操作:

更多设置一个完整分布式,简单集群可以参考:

http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/ClusterSetup.html