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 集群:
- Local (Standalone) Mode http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/SingleCluster.html#Standalone_Operation
- Pseudo-Distributed Mode
- http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation
- Fully-Distributed Mode
- http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/SingleCluster.html#Fully-Distributed_Operation
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