几天在单机环境下搭好了Hadoop,这两天开始着手搭建集群环境。使用设备是我自己在实验室的一台PC机和实验室的两台服务器,PC作为Namenode节点,同时运行一个Namenode和一个Datanode,两台服务器作为slave,各自作为一个Datanode,这样就一共有3个Datanode节点。IP地址分配为:
master:192.168.5.236,Ubuntu9.10,运行Namenode,SecondaryNamenode,Datanode,JobTracker,TaskTracker
slave1:192.168.5.201,Debian4.0,运行Datanode,TaskTracker
slave2:192.168.5.202,Debian4.0,运行Datanode,TaskTracker
1.在所有节点上配置java环境
2.登录这3台机器的用户名必须相同。
3.修改三台机器的/etc/hosts,
# /etc/hosts (for master AND slave)
192.168.5.236 master
192.168.5.201 slave1
192.168.5.202 slave2
然后在每台机器使用ping hostname ,确保可以连接成功。
4.设置namenode以ssh免密码方式连接datanode
a)先在PC上设置ssh免密码登录:
hadoop@ubuntu:~$ ssh-keygen -t rsa -P ""
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Created directory '/home/hadoop/.ssh'.
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
9d:47:ab:d7:22:54:f0:f9:b9:3b:64:93:12:75:81:27 hadoop@ubuntu
hadoop@ubuntu:~$
|
b)然后,再把master的$HOME/.ssh/id_rsa.pub文件拷贝到slave1和slave2的$HOME/.ssh/下。
5.修改master节点的配置文件
a)修改 <HADOOP_INSTALL>/conf/masters如下:
master
b)修改 <HADOOP_INSTALL>/conf/slaves如下:
master //此处将namenode节点也同时做为一个datanode节点
slave1
slave2
6.修改namenode的配置文件
a)修改conf/hadoop-env.sh,添加java_home的路径
export JAVA_HOME=/usr/jdk1.6.0_18
b)修改conf/core-site.xml,加入
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>这里写想存放HDFS文件系统的位置</value>
</property>
c)修改conf/mapred-site.xml,加入
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>这里写想存放临时文件的位置</value>
</property>
d)修改conf/hdfs-site.xml,加入
<property>
<name>dfs.replication</name>
<value>3</value> 注:这里有3个datanode,所以有三个副本
</property>
<property>
<name>dfs.name.dir</name>
<value></value>
</property>
<property>
<name>dfs.data.dir</name>
<value>3</value> 注
</property>
7.配置完成,将namenode节点的hadoop文件夹复制到其它的datanode节点上,所在的目录必须一样。如
scp -r ~/Hadoop slaver1:~/
复制完后在master上格式化Namenode,
$ bin/hadoop namenode -format
8.然后通过bin/start-all.sh启动各节点即可,每个节点都要启动。在所有节点上,可通过jps查看相应的进程
9.在namenode节点上,使用bin/hadoop dfsadmin -report 可查看各节点的情况。也可以浏览器输入 http://master:50070和 http://master:50030查看相应的信息。
10.hdfs测试
运行bin/目录的hadoop命令,可以查看Haoop所有支持的操作及其用法,这里以几个简单的操作为例。
在HDFS建立目录:
bin/hadoop dfs -mkdir testdir
在HDFS中建立一个名为testdir的目录
复制文件到HDFS:
bin/hadoop dfs -put /home/hadoop/large.zip testfile.zip
把本地文件large.zip拷贝到HDFS的根目录/user/hadoop/下,文件名为testfile.zip
查看HDFS的现有文件
bin/hadoop dfs -ls