说明:本文档是个人研究配置Hadoop 集群过程后产生的,参考了别人的配置文档,同时结合自己实际的情况,解决遇到的问题后最终配置成功。
1准备机器 :没有多余机器,安装了vmware7.0 后模拟的 2 台系统,操作系统是 Ubuntu10.10
所有的系统必须有相同的用户和密码,这里两个系统都是用hadoop:hadoop 作用户名和密码
以下操作均是以hadoop 身份进行的。
2 根据机器 IP 地址更改 hosts 文件
说明:master 代表第一台机器,主节点( IP:202.112.1.50 ), slave 代表第二台机器,数据节点( IP:202.112.1.49 ),以下可能直接使用此名称。
Master上的 hosts 文件
127.0.0.1 hadoop1 localhost
202.112.1.50 hadoop1 hadoop1
202.112.1.49 hadoop2 hadoop2
Slave上的 hosts 文件
127.0.0.1 hadoop2 localhost
202.112.1.50 hadoop1 hadoop1
202.112.1.49 hadoop2 hadoop2
另外:需要将/etc/hostname文件内容更改为hadoop1或者hadoop2(不知道是否是必须,我这个该了的,OK)
(引用别人的:对于hadoop 来说,从 hdfs 来看,节点分为 namenode 和 datanode ,其中 namenode 只有一个, datanode 有多个;从 mapreduce 来看,节点分为 jobtracker 和 tasktracker ,其中 jobtracker 只有一个, tasktracker 有多个;)
3 安装 ssh (为什么要安装这个东西,我不知道,或者说可以去百度一下看看别人怎么说的,他们好像说集群中通信用 ssh ,谁在乎呢,安装吧)
Master和 Slave 机器上都要 ssh
命令: apt-get install ssh (没有多余配置了,哦,有一个需要输入Y 表示同意安装:::)
在master 机器上做以下操作
安装成功后执行以下命令:
[hadoop@hadoop1:~]$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
然后是
[hadoop@hadoop1:~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
在slave 机器上建立 .ssh 文件夹, master 上通过以上命令自己创建了一个, slave 就要自己动手了,毕竟是 slave 嘛。
[hadoop@hadoop2:~]$ mkdir .ssh
然后将master 上的 authorized_keys 拷贝到 slave 的 .ssh 文件夹下,可以通过以下命令:
[hadoop@hadoop1:~]$ scp ~/.ssh/authorized_keys hadoop2: /home/hadoop/.ssh/
测试一下:[hadoop@hadoop1:~] ssh hadoop2
提示是否连接,输入yes ,连接成功。以后就不需要输入 yes 了。只需要从 master 到 slave 的无密码连接,而不需要测试从 slave 到 master 的无密码连接;在 master 和 slave 机器上 .ssh 文件夹下的内容也是不完全一样的。
4安装 jdk
Ubuntu下执行 [hadoop@hadoop1:~] sudo apt-get instal sun-java6-jdk
Master和 Slave 机器都需要 jdk 环境。在 ubuntu 下 10.10 下是不需要再去设置 java_home 等环境变量的,安装完后直接输入 java -version 和 javac -version 测试一下, OK 。
至于其他Linux 环境,需要安装 jdk 和配置 jdk 环境变量的,请百度 /Google 吧,直到 java -version 返回正确结果为止。