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