@changedi
2016-05-04T15:08:17.000000Z
字数 2687
阅读 2864
大数据
Hadoop
原文:http://hadoop.apache.org/docs/r2.6.4/hadoop-project-dist/hadoop-common/SingleCluster.html
支持的平台
GNU/Linux 和Windows都是支持的,Hadoop已经在2000台机器的集群上做过展示。
Linux环境下需要的软件:
Java™ 一定要安装
ssh一定要安装并且sshd进程必须run,用来管理远程的Hadoop守护进程。
安装
以 Ubuntu Linux 为例:
$ sudo apt-get install ssh
$ sudo apt-get install rsync
从Apache Download Mirrors下载一个Hadoop的发行版。
准备安装
解压Hadoop版本。编辑etc/hadoop/hadoop-env.sh来定义如下参数:
# set to the root of your Java installation
export JAVA_HOME=/usr/java/latest
# Assuming your installation directory is /usr/local/hadoop
export HADOOP_PREFIX=/usr/local/hadoop
尝试执行如下命令:
$ bin/hadoop
这通常会显示usage——hadoop使用说明的文档。
这样其实hadoop已经安装好了,接下来就是启动Hadoop集群,有几种启动模式:
Local (Standalone) Mode
Pseudo-Distributed Mode
Fully-Distributed Mode
默认情况Hadoop配置是一个非分布式的模式,也就是一个Java进程。这样的配置对于debug是非常有帮助的。
下面的例子拷贝解压后的conf目录作为输入,输出写到指定的输出目录。
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar grep input output 'dfs[a-z.]+'
$ cat output/*
Hadoop也可以在一个节点上(单台机器上)运行分布式模式,方法就是不同的daemon运行到不同的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到localhost:
$ ssh localhost
如果不可以,执行如下命令:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
接下来的指令可以本地运行一个Mapreduce作业。如果希望在YARN上运行,参见YARN on Single Node.
格式化文件系统:
$ bin/hdfs namenode -format
启动NameNode和DataNode的进程:
$ sbin/start-dfs.sh
hadoop的守护进程日志输出到$HADOOP_LOG_DIR目录。(默认是到$HADOOP_HOME/logs).
浏览NameNode的web界面,默认是在:
NameNode - http://localhost:50070/
创建HDFS的目录来执行Mapreduce作业:
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/<username>
拷贝输入文件到分布式文件系统:
$ bin/hdfs dfs -put etc/hadoop input
运行一些已经提供的示例程序:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar grep input output 'dfs[a-z.]+'
检查输出文件:
把分布式系统里的输出文件拷贝到本地文件系统:
$ bin/hdfs dfs -get output output
$ cat output/*
或者直接在分布式文件系统查看输出文件:
$ bin/hdfs dfs -cat output/*
做完测试后,结束进程:
$ sbin/stop-dfs.sh
你也可以通过设置一些参数来启动ResourceManager和NodeManager进程来运行Mapreduce作业在YARN的伪分布式环境下。
下面的步骤假设上面提到的1-4步已经执行过了。
配置参数:
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>
启动ResourceManager和NodeManager:
$ sbin/start-yarn.sh
浏览ResourceManager的web界面;默认是:
ResourceManager - http://localhost:8088/
运行一个Mapreduce作业。
当运行完成后,结束进程:
$ sbin/stop-yarn.sh