1.5 Hadoop初体验

一般而言,我们想要深入学习一个新的系统时,首先要尝试使用该系统,了解系统对外提供的功能,然后通过某个功能逐步深入其实现细节。本节将介绍如何在伪分布式工作模式[1]下使用Hadoop,包括启动Hadoop、访问HDFS以及向MapReduce提交作业等最基本的操作。本节只是有代表性地介绍Hadoop的一些基本使用方法,使读者对Hadoop有一个初步认识,并引导读者逐步进行更全面的学习。

1.5.1 启动Hadoop

步骤1 修改Hadoop配置文件。在conf目录下,修改mapred-site.xml、core-site.xml和hdfs-site.xml三个文件,在<configuration>与</configuration>之间添加以下内容。

❑mapred-site. xml:


<property>

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

<value>localhost:9001</value>

</property>


❑core-site.xml:


<property>

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

<value>hdfs://localhost:9000</value>

</property>


❑hdfs-site.xml:


<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>


如果是Windows环境,还需要在hadoop-env.xml中添加以下配置:


export JAVA_HOME=D:/hadoop/Java/jdk1.6.0_27


步骤2 设置免密码登录。前面提到Hadoop启动启动/停止脚本时需要通过SSH发送命令启动相关守护进程,为了避免每次启动/停止Hadoop输入密码进行验证,需设置免密码登录,设置步骤如下。

1)打开命令行终端(Windows下为Cygwin终端,Linux下为Shell终端,下同),输入以下命令:


ssh-keygen-t rsa


执行上述命令后,将会在“~/.ssh/”目录下生成公钥文件id_rsa.pub和私钥文件id_rsa。

2)将公钥文件id_rsa.pub中的内容复制到相同目录下的authorized_keys文件中:


cd~/.ssh/

cat id_rsa.pub>>authorized_keys


步骤3 启动Hadoop。在Hadoop安装目录中,按以下两步操作启动Hadoop。

1)格式化HDFS:


bin/hadoop namenode-format


2)启动Hadoop:


bin/start-all.sh


通过以下URL可查看MapReduce是否启动成功:


http://localhost:50030/


通过以下URL可查看HDFS是否启动成功:


http://localhost:50070/


经过以上两步操作,Hadoop成功启动,接下来可以通过Hadoop Shell或者Eclipse插件访问HDFS和提交MapReduce作业。下面两小节分别介绍Hadoop Shell和Eclipse插件的使用方法。

[1]单机环境中,Hadoop有两种工作模式:本地模式和伪分布式模式。其中,本地模式完全运行在本地,不会加载任何MapReduce服务,因而不会涉及MapReduce最核心的代码实现;伪分布式模式即为“单点集群”,在该模式下,所有的守护进程均会运行在单个节点上,因而本节选用该工作模式。