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是否启动成功:
通过以下URL可查看HDFS是否启动成功:
经过以上两步操作,Hadoop成功启动,接下来可以通过Hadoop Shell或者Eclipse插件访问HDFS和提交MapReduce作业。下面两小节分别介绍Hadoop Shell和Eclipse插件的使用方法。
[1]单机环境中,Hadoop有两种工作模式:本地模式和伪分布式模式。其中,本地模式完全运行在本地,不会加载任何MapReduce服务,因而不会涉及MapReduce最核心的代码实现;伪分布式模式即为“单点集群”,在该模式下,所有的守护进程均会运行在单个节点上,因而本节选用该工作模式。