实验环境:
rhel6.3 selinux and iptables disabled, sshd enabled
主机:192.168.122.5 master
192.168.122.6 slave
192.168.122.7 slave
软件: hadoop.apache.org
Hadoop 主从节点分解:
主节点包括名称节点、从属名称节点和 jobtracker 守护进程(即所谓的主守护进程)以及管理集群所用的实用程序和浏览器。从节点包括 tasktracker 和数据节点(从属守护进程)。两种设置的不同之处在于,主节点包括提供 Hadoop 集群管理和协调的守护进程,而从节点包括实现Hadoop 文件系统(HDFS)存储功能和 MapReduce 功能(数据处理功能)的守护进程。
每个守护进程在 Hadoop 框架中的作用。namenode 是 Hadoop 中的主服务器,它管理文件系统名称空间和对集群中存储的文件的访问。还有一个 secondary namenode,它不是
namenode 的冗余守护进程,而是提供周期检查点和清理任务。在每个 Hadoop 集群中可以找到一个 namenode 和一个 secondary namenode。
datanode 管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个 datanode 守护进程。
每个集群有一个 jobtracker,它负责调度 datanode 上的工作。每个 datanode 有一个tasktracker,它们执行实际工作。jobtracker 和 tasktracker 采用主-从形式,jobtracker 跨
datanode 分发工作,而 tasktracker 执行任务。jobtracker 还检查请求的工作,如果一个datanode 由于某种原因失败,jobtracker 会重新调度以前的任务。
所有节点安装 jdk:
添加如下行
rhel 上可能已经安装了 openjdk,你需要更新一下:
在所有节点上创建一个相同的普通用户:
使用普通用户运行 hadoop:
在 master 节点上执行以下操作:
Hadoop 环境变量
在 /home/hadoop/hadoop/hadoop-config 目 录 下 的 hadoop-env.sh 中 设 置Hadoop 需 要 的 环 境 变 量 , 其 中 JAVA_HOME 是 必 须 设 定 的 变 量 。
HADOOP_HOME 变量可以设定也可以不设定,如果不设定, HADOOP_HOME默认的是 bin 目录的父目录,即本文中的/home/hadoop/hadoop。我的是这样设置
的:
hadoop-1.2.1/conf/hadoop-env.sh
hadoop-1.2.1/conf/core-site.xml
hadoop-1.2.1/conf/core-site.xml
hadoop-1.2.1/conf/mapred-site.xml
无密码 ssh 设置:
这个命令将为 hadoop1 上的用户 hadoop 生成其密钥对。生成的密钥对id_rsa,id_rsa.pub,在/home/hadoop/.ssh 目录下
然后将 id_rsa.pub 的内容复制/home/hadoop/.ssh/authorized_keys 文件中,并修改其权限为600,必须保证 authorized_keys 只对其所有者有读写权限,其他人不允许有写的权限,否则 SSH 是不会工作的
对于slave用户建立ssh默认发布目录,并修改其权限为700
[hadoop@server2 ~]$ mkdir .ssh
[hadoop@server2 ~]$ chmod 700 .ssh/
[hadoop@server3 ~]$ chmod 700 .ssh/
[hadoop@server3 ~]$ mkdir .ssh
此处的 scp 就是通过 ssh 进行远程 copy ,此处需要输入远程主机的密码,即hadoop2 , hadoop3 机器上 hadoop 帐户的密码,当然,你也可以用其他方法将
authorized_keys 文件拷贝到其他机器上。
接 着 , 在 3 台 机 器 上 都 需 要 对 sshd 服 务 进 行 配 置 , 修 改 文件/etc/ssh/sshd_config。
#去除密码认证
PasswordAuthentication no
(?如果这样,putty 就不能登陆 Linux 了,去掉)
AuthorizedKeysFile .ssh/authorized_keys
再次登录hadoop2 hadoop3会发现不再需要输入密码
修改 masters 文件
打开 masters 文件,该文件用来指定 NameNode,内容如下:
192.168.122.5
修改 slaves 文件
前所述,在 hadoop1(NameNode) 的 hadoop-config/ 目录下,打开 slaves 文件,该文件用来指定所有的 DataNode ,一行指定一个主机名
192.168.122.6
192.168.122.7
前面讲的这么多 Hadoop 的环境变量和配置文件都是在 hadoop1 这台机器上的,现在需要将 hadoop 部署到其他的机器上,保证目录结构一致。
[hadoop@server1 ~]$ scp -r hadoop-1.2.1/ 192.168.122.7:
[hadoop@server1 ~]$ scp -r hadoop-1.2.1/ 192.168.122.6:
格式化一个新的分布式文件系统:
启动 Hadoop 守护进程:
使用jps查看在各个节点查看 hadoop 进程
浏览 NameNode 和 JobTracker 的网络接口,它们的地址默认为:
NameNode – http://192.168.122.5:50070/
JobTracker – http://192.168.122.5:50030/
到此hadoop的简单搭建就完成了