1. 环境centos 6.5 32bit hadoop-0.20.2

2. 三中运行模式

1> 单机模式:安装简单,几乎不用任何配置,仅限于调试;

2> 伪分布模式:在单节点(单机)上同时启动namenode、datanode、jobtracker、tasktracker、

    secondary namenode等5个进程,模拟分布式运行的各个节点;

3> 完全分布模式:正常的hadoop集群,由多个各司其职的节点构成。

3. 伪分布式模式的安装和配置步骤(单机)

1> 下载安装0.20.2;

2> 进入Hadoop的解压目录,编辑conf/hadoop-env.sh(0.23版之后有所变化);


3> 编辑conf目录下core-site.xml、hdfs-site.xml和mapred-site.xml三个核心配置文件;


a 修改core-site.xml(若完全分布式,要把localhost改成相应ip)


fs.default.name:NameNode的IP地址和端口

b 修改hdfs-site.xml


dfs.data.dir:数据节点数据存放目录(预先创建好目录)

dfs.replication:数据块复制的份数(伪分布式为1,因为节点数为1)


c 修改mapred-site.xml(若完全分布式,要把localhost改成相应ip)


mapred.job.tracker:作业跟踪器


4> 配置ssh,生成密钥,使得到SSH可以免密码链接localhost(方便节点之间数据交互);

给当前root用户创建一对密钥,公钥、私钥(用公钥加密的用私钥解开、用私钥加密的用公钥解开)

[root@localhost ~]# cd /root/
[root@localhost ~]# ssh-keygen -t rsa
[root@localhost ~]# cd .ssh
[root@localhost .ssh]# ls
id_rsa id_rsa.pub
[root@localhost .ssh]# vi id_rsa
#复制公钥为authorized_keys文件
[root@localhost .ssh]# cp id_rsa.pub authorized_keys
[root@localhost .ssh]# ls
authorized_keys id_rsa id_rsa.pub

5> 格式化HDFS;

6> 使用bin/start-all.sh启动Hadoop;

7> 使用bin/stop-all.sh关闭Hadoop。

4. 完全分布式模式的安装和配置步骤(服务器集群)

1> 配置hosts文件

hosts文件作用:对主机名进行解析,是彼此之间都可以将主机名称解析为IP地址,所有的节点都要进行配置,以便能够相互解析。


2> 建立hadoop运行账号

[root@localhost ~]# useradd grid

[root@localhost ~]# passwd grid

3> 配置ssh免密码连入(必须把相应主机自己的公钥放在最上方,配置成功之后会生成known_hosts文件,下图中为h3主机配置)


4> 下载解压hadoop安装包

5> 配置namenode,修改site文件(三个site文件,修改伪分布式中localhost,用的h1的ip地址)

6> 配置hadoop-env.sh文件

7> 配置masters和slaves文件

masters:namenode和jobtracker所在节点(h1)

slaves:datanode和tasktracker所在节点(h2、h3)

8> 向各个节点复制hadoop


9> 格式化namenode


10> 启动hadoop


11> 用jps检验各后台进程是否启动成功(java安装目录中的jps命令)




12> 测试是否成功

创建两个文件并放入hdfs文件系统中(如果报错一般是因为没有用root用户关闭防火墙)


测试:(离开hadoop安全模式才会显示下面信息,否则什么也不显示

bin/hadoop dfsadmin -safemode leave)


查看测试结果:


13> 浏览器查看hadoop系统

namenode: http://10.20.3.211:50070


Browse the filesystem链接打不开是因为这个链接转向的是节点的主机名,客户端hosts文件没有配置(C:\Windows\System32\drivers\etc\hosts),所以浏览器无法解析出IP地址

jobtracker: http://10.20.3.211:50030