hadoop集羣的配置筆記
以前在單機環境下搭好過Hadoop開發環境,這幾天試着搭建了一個集羣環境。使用設備是我們學校機房的兩臺電腦,master 作爲Namenode節點,另外一個(slave1)作爲Datanode,之後又搭建了六臺,步驟基本差不多,這裏把搭建兩臺的步驟貼上,防止以後有需要。
IP地址分配爲:
master:192.168.0.100,Ubuntu 11.10,運行Namenode,SecondaryNamenode,JobTracker
slave1:192.168.0.101,Ubuntu 11.10,運行Datanode,TaskTracker
1.使用ping命令看看兩臺機器是否能ping通,例如在master上輸入以下命令:
ping 192.168.0.101
2.其次是配置java環境,這個略去(見單機配置)~~~~
3.把master上已有的hadoop壓縮文件拷貝slave1的相同目錄下,注意一定是相同目錄,而且登錄這2臺機器
的用戶名必須相同,我試驗用的是用戶名爲cloud,hadoop的壓縮文件放在/home/cloud/下。
拷貝可以使用 $scp /home/cloud/hadoop0.20.2.tar.gz slave1:/home/cloud/
4.將hadoop壓縮文件解壓
$tar xzf hadoop0.20.2
5.修改三臺機器的/etc/hosts,
# vi /etc/hosts 或者 #sudo gedit /etc/hosts
192.168.0.100 master
192.168.0.101 slave1
6.修改hadoop安裝目錄下的master文件的內容爲master(namenode的主機名),slaves文件的內容爲
slave1(datanode的主機名,如果有多臺datanode則都將其主機名加入)
7.設置namenode以ssh免密碼方式連接datanode
a)先在namenode上設置ssh免密碼登錄:
$ ssh-keygen -t dsa -P '' -f /home/cloud/.ssh/id_dsa
此時可以在 /home/cloud/.ssh中看到生成的私鑰和公鑰(.ssh文件是隱藏的,使用ctrl+h組合鍵就
可以查看哦)
b)再使用以下命令生成authorized_keys,主要是爲了將它發給各個datanode,從而namenode訪問
datanode時就不再需要密碼了
$ cat id_rsa.pub >> authorized_keys
然後,再把master的/home/.ssh/authorized_keys文件拷貝到slave1的/home/.ssh/下。
8.所有節點上修改配置文件,可以砸master上面修改,然後在copy到各個datanode上
a)修改conf/hadoop-env.sh,添加java_home的路徑,這個可以根據各個節點自行配置
export JAVA_HOME=/usr/lib/.........
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>1</value>
</property>
記住複製到各個datanode上哦
例如:$scp /home/cloud/hadoop0.20.2/conf/core-site.xml
cloud@slave1:/home/cloud/hadoop0.20.2/conf/core-site.xml
9.配置完成,在master上格式化Namenode,
$ bin/hadoop namenode -format
10.然後通過$bin/hadoop start-all.sh啓動hadoop的守護進程,運行各個節點。
11.可以在namenode和datanode上分別使用$jps命令查看各自運行的任務
12.最後可以使用$bin/hadoop stop-all.sh停止各個節點
IP地址分配爲:
master:192.168.0.100,Ubuntu 11.10,運行Namenode,SecondaryNamenode,JobTracker
slave1:192.168.0.101,Ubuntu 11.10,運行Datanode,TaskTracker
1.使用ping命令看看兩臺機器是否能ping通,例如在master上輸入以下命令:
ping 192.168.0.101
2.其次是配置java環境,這個略去(見單機配置)~~~~
3.把master上已有的hadoop壓縮文件拷貝slave1的相同目錄下,注意一定是相同目錄,而且登錄這2臺機器
的用戶名必須相同,我試驗用的是用戶名爲cloud,hadoop的壓縮文件放在/home/cloud/下。
拷貝可以使用 $scp /home/cloud/hadoop0.20.2.tar.gz slave1:/home/cloud/
4.將hadoop壓縮文件解壓
$tar xzf hadoop0.20.2
5.修改三臺機器的/etc/hosts,
# vi /etc/hosts 或者 #sudo gedit /etc/hosts
192.168.0.100 master
192.168.0.101 slave1
6.修改hadoop安裝目錄下的master文件的內容爲master(namenode的主機名),slaves文件的內容爲
slave1(datanode的主機名,如果有多臺datanode則都將其主機名加入)
7.設置namenode以ssh免密碼方式連接datanode
a)先在namenode上設置ssh免密碼登錄:
$ ssh-keygen -t dsa -P '' -f /home/cloud/.ssh/id_dsa
此時可以在 /home/cloud/.ssh中看到生成的私鑰和公鑰(.ssh文件是隱藏的,使用ctrl+h組合鍵就
可以查看哦)
b)再使用以下命令生成authorized_keys,主要是爲了將它發給各個datanode,從而namenode訪問
datanode時就不再需要密碼了
$ cat id_rsa.pub >> authorized_keys
然後,再把master的/home/.ssh/authorized_keys文件拷貝到slave1的/home/.ssh/下。
8.所有節點上修改配置文件,可以砸master上面修改,然後在copy到各個datanode上
a)修改conf/hadoop-env.sh,添加java_home的路徑,這個可以根據各個節點自行配置
export JAVA_HOME=/usr/lib/.........
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>1</value>
</property>
記住複製到各個datanode上哦
例如:$scp /home/cloud/hadoop0.20.2/conf/core-site.xml
cloud@slave1:/home/cloud/hadoop0.20.2/conf/core-site.xml
9.配置完成,在master上格式化Namenode,
$ bin/hadoop namenode -format
10.然後通過$bin/hadoop start-all.sh啓動hadoop的守護進程,運行各個節點。
11.可以在namenode和datanode上分別使用$jps命令查看各自運行的任務
12.最後可以使用$bin/hadoop stop-all.sh停止各個節點
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.