Hadoop高速入门

先决条件



支持平台

  • GNU/Linux是产品开发和执行的平台。 Hadoop已在有2000个节点的GNU/Linux主机组成的集群系统上得到验证。
  • Win32平台是作为开发平台支持的。因为分布式操作尚未在Win32平台上充分測试,所以还不作为一个生产平台被支持。


所需软件

Linux和Windows所需软件包含:

  1. JavaTM1.5.x,必须安装,建议选择Sun公司发行的Java版本号。
  2. ssh 必须安装而且保证 sshd一直执行,以便用Hadoop 脚本管理远端Hadoop守护进程。

Windows下的附加软件需求

  1. ​Cygwin​​ - 提供上述软件之外的shell支持。


安装软件

假设你的集群尚未安装所需软件,你得首先安装它们。

以Ubuntu Linux为例:

$ sudo apt-get install ssh

$ sudo apt-get install rsync

在Windows平台上,假设安装cygwin时未安装所有所需软件,则需启动cyqwin安装管理器安装例如以下软件包:

  • openssh - Net


下载



为了获取Hadoop的发行版。从Apache的某个镜像server上下载近期的 ​​稳定发行版​ ​。


执行Hadoop集群的准备工作



解压所下载的Hadoop发行版。编辑 conf/hadoop-env.sh文件。至少须要将JAVA_HOME设置为Java安装根路径。


尝试例如以下命令:

$ bin/hadoop

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

如今你能够用下面三种支持的模式中的一种启动Hadoop集群:

  • 单机模式
  • 伪分布式模式
  • 全然分布式模式


单机模式的操作方法



默认情况下,Hadoop被配置成以非分布式模式执行的一个独立Java进程。这对调试很有帮助。

以下的实例将已解压的 conf 文件夹拷贝作为输入,查找并显示匹配给定正則表達式的条目。

输出写入到指定的output文件夹。

$ mkdir input

$ cp conf/*.xml input

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

$ cat output/*


伪分布式模式的操作方法



Hadoop能够在单节点上以所谓的伪分布式模式执行,此时每个Hadoop守护进程都作为一个独立的Java进程执行。


配置

使用例如以下的 conf/hadoop-site.xml:

<configuration>

  <property>

    <name>fs.default.name</name>

    <value>localhost:9000</value>

  </property>

  <property>

    <name>mapred.job.tracker</name>

    <value>localhost:9001</value>

  </property>

  <property>

    <name>dfs.replication</name>

    <value>1</value>

  </property>

</configuration>


免passwordssh设置

如今确认是否能不输入口令就用ssh登录localhost:

$ ssh localhost

假设不输入口令就无法用ssh登陆localhost。运行以下的命令:

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


运行

格式化一个新的分布式文件系统:

$ bin/hadoop namenode -format

启动Hadoop守护进程:

$ bin/start-all.sh

Hadoop守护进程的日志写入到 ${HADOOP_LOG_DIR} 文件夹 (默认是 ${HADOOP_HOME}/logs).

浏览NameNode和JobTracker的网络接口,它们的地址默觉得:

将输入文件复制到分布式文件系统:

$ bin/hadoop fs -put conf input

执行发行版提供的演示样例程序:

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

查看输出文件:

将输出文件从分布式文件系统复制到本地文件系统查看:

$ bin/hadoop fs -get output output

$ cat output/*

或者

在分布式文件系统上查看输出文件:

$ bin/hadoop fs -cat output/*

完毕所有操作后,停止守护进程:

$ bin/stop-all.sh


全然分布式模式的操作方法



关于搭建全然分布式模式的。有实际意义的集群的资料能够在​​这里​​找到。