幾天在單機環境下搭好了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