2.1.3 安装并运行Hadoop
介绍Hadoop的安装之前,先介绍一下Hadoop对各个节点的角色定义。
Hadoop分别从三个角度将主机划分为两种角色。第一,最基本的划分为Master和Slave,即主人与奴隶;第二,从HDFS的角度,将主机划分为NameNode和DataNode(在分布式文件系统中,目录的管理很重要,管理目录相当于主人,而NameNode就是目录管理者);第三,从MapReduce的角度,将主机划分为JobTracker和TaskTracker(一个Job经常被划分为多个Task,从这个角度不难理解它们之间的关系)。
Hadoop有官方发行版与cloudera版,其中cloudera版是Hadoop的商用版本,这里先介绍Hadoop官方发行版的安装方法。
Hadoop有三种运行方式:单机模式、伪分布式与完全分布式。乍看之下,前两种方式并不能体现云计算的优势,但是它们便于程序的测试与调试,所以还是很有意义的。
你可以在以下地址获得Hadoop的官方发行版:http://www.apache.org/dyn/closer.cgi/Hadoop/core/。
下载hadoop-1.0.1.tar.gz并将其解压,本书后续都默认将Hadoop解压到/home/u/目录下。
(1)单机模式配置方式
安装单机模式的Hadoop无须配置,在这种方式下,Hadoop被认为是一个单独的Java进程,这种方式经常用来调试。
(2)伪分布式Hadoop配置
可以把伪分布式的Hadoop看做只有一个节点的集群,在这个集群中,这个节点既是Master,也是Slave;既是NameNode,也是DataNode;既是JobTracker,也是TaskTracker。
伪分布式的配置过程也很简单,只需要修改几个文件。
进入conf文件夹,修改配置文件。
指定JDK的安装位置:
Hadoop-env.sh:
export JAVA_HOME=/usr/lib/jvm/jdk
这是Hadoop核心的配置文件,这里配置的是HDFS(Hadoop的分布式文件系统)的地址及端口号。
conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
以下是Hadoop中HDFS的配置,配置的备份方式默认为3,在单机版的Hadoop中,需要将其改为1。
conf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
以下是Hadoop中MapReduce的配置文件,配置JobTracker的地址及端口。
conf/mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
接下来,在启动Hadoop前,需要格式化Hadoop的文件系统HDFS。进入Hadoop文件夹,输入命令:
bin/Hadoop NameNode-format
格式化文件系统,接下来启动Hadoop。
输入命令,启动所有进程:
bin/start-all.sh
最后,验证Hadoop是否安装成功。
打开浏览器,分别输入网址:
http://localhost:50030(MapReduce的Web页面)
http://localhost:50070(HDFS的Web页面)
如果都能查看,说明Hadoop已经安装成功。
对于Hadoop来说,启动所有进程是必须的,但是如果有必要,你依然可以只启动HDFS(start-dfs.sh)或MapReduce(start-mapred.sh)。
关于完全分布式的Hadoop会在2.4节详述。