HADOOP的初次嘗試

Hadoop的下載地址:
http://www.apache.org/dyn/closer.cgi/hadoop/core/
版本:hadoop0.17.1

JDK的安裝:
要求必須安裝jdk1.5.07以上的版本。


分步式環境的搭建:
1、 硬件環境
我們採用了3臺機器來構建,都安裝的是Red Hat 4.1.2-42系統,並且都有一個名爲“mingjie“的帳號,如下:
主機名稱:hdfs1 ip:192.168.0.221 功能:NameNode,JobTracker
主機名稱:hdfs2 ip:192.168.0.227 功能:DataNode,TaskTracker
主機名稱:hdfs3 ip:192.168.0.228 功能:DataNode,TaskTracker

重點:修改3臺機器的/etc/hosts,讓彼此的主機名稱和ip都能順利解析
127.0.0.1 localhost
192.168.0.37 hdfs1
192.168.0.43 hdfs2
192.168.0.53 hdfs3
2、 每臺機器都要安裝java環境,我們的路徑統一爲“/opt/modules/jdk1.6“,並添加到系統環境變量sudo vi /etc/profile

JAVA_HOME=/opt/modules/jdk1.6
PATH=$JAVA_HOME/bin:$PATH:$CATALINA_HOME/bin
CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
3、 下載hadoop0.17.1,將hadoop解壓到/home/mingjie/,建議最好也將hadoop的目錄添加到環境變量裏面去:

HADOOP_HOME=/home/mingjie/hadoop-0.17.1 #這是hadoop的主目錄
export HADOOP_HOME
HADOOP_CONF_DIR=$HADOOP_HOME/conf #這是hadoop的配置文件目錄
export HADOOP_CONF_DIR
HADOOP_LOG_DIR=/home/mingjie/hadoop-0.17.1/log #存放運行日誌目錄
export HADOOP_LOG_DIR
export PATH=$PATH:$HADOOP_HOME/bin

4、 安裝ssh,並生成公鑰和私鑰
 運行 ssh-keygen -t rsa,根據屏幕提示直接選擇“回車”
 會在用戶目錄~/.ssh/產生兩個文件,id_rsa,id_rsa.pub
 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
以上配置完成後,執行一下ssh localhsot,確認你的每臺機器都可以使用ssh

5、 將master服務器上的authorized_keys的內容加到slave兩臺機器的authorized_keys文件中。讓master也可以不需要密碼訪問2臺slave服務器。

sudo scp authorized_keys hdfs2:/home/mingjie/.ssh/
sudo scp authorized_keys hdfs3:/home/mingjie/.ssh/
ssh hdfs2
ssh hdfs3
6、 接下來,我們要修改hadoop的[conf/masters]、[conf/slaves]這2個文件:
Master設置(<HADOOP_HOME>/conf/masters):hdfs1
Slave設置(<HADOOP_HOME>/conf/slaves):hdfs2 hdfs3
7、 修改[conf/hadoop-env.sh]:
export JAVA_HOME=/opt/jdk1.6.0_03
8、 修改[conf/hadoop-site.xml],這裏只是幾個常用的屬性配置,有關hadoop的性能優化調整,需要研究hadoop-default.xml:
<configuration>
<property>
<name>fs.default.name</name>//你的namenode的配置,機器名加端口
<value>hdfs://hdfs1:54310/</value>
</property>
<property>
<name>mapred.job.tracker</name>//你的JobTracker的配置,機器名加端口
<value>hdfs://hdfs1:54311</value>
</property>
<property>
<name>dfs.replication</name>//數據需要備份的數量,默認是三
<value>1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>//Hadoop的默認臨時路徑,這個最好配置,如果在新增節點或者其他情況下莫名其妙的DataNode啓動不了,就刪除此文件中的tmp目錄即可。不過如果刪除了NameNode機器的此目錄,那麼就需要重新執行NameNode格式化的命令。
<value>/home/mingjie/hadoop-0.17.1/tmp/</value>
</property>
<property>
<name>mapred.child.java.opts</name>//java虛擬機的一些參數可以參照配置
<value>-Xmx512m</value>
</property>
<property>
<name>dfs.block.size</name>//block的大小,單位字節,後面會提到用處,必須是512的倍數,因爲採用crc作文件完整性校驗,默認配置512是checksum的最小單元。
<value>5120000</value>
<description>The default block size for new files.</description>
</property>
</configuration>
9、 然後將hadoop的整體環境拷貝到hdfs2、hdfs3上面去
scp -r /home/mingjie/hadoop.0.17.1 hdfs2:/home/mingjie/ hadoop.0.17.1
scp -r /home/mingjie/ hadoop.0.17.1 hdfs3:/home/mingjie/ hadoop.0.17.1
10、 在hdfs1這個namenode上面格式化一個新的分佈式文件系統HDFS,就是hadoop-site.xml文件中指定的hadoop.tmp.dir路徑
<HADOOP_HOME>/bin/hadoop namenode –format

到此大致上就完成了hadoop環境佈署
啓動hadoop:<HADOOP_HOME>/bin/start-all.sh
停止hadoop:<HADOOP_HOME>/bin/stop-all.sh

說明:
(1) 執行啓動Hadoop進程後,
 在master服務器會啓動3個java進程,分別的NameNode,SecondNameNode,JobTracker,在LOG目錄下會產生2個文件,分別對應NameNode的運行日誌和JobTracker的運行日誌,
 在slave服務器會啓動2個java進程,分別爲DataNode,TaskTracker,,在LOG目錄下會產生2個文件,分別對應DataNode的運行日誌和TaskTracker的運行日誌,可以通過查看日誌分析hadoop的啓動是否正確。
(2) 通過IE瀏覽分佈式文件系統中的文件
 訪問 http://hdfs1:50030 可以查看JobTracker的運行狀態。
 訪問 http://360quan-1:50060可以查看 TaskTracker的運行狀態。
 訪問 http://360quan-1:50070可以查看NameNode以及整個分佈式文件系統的狀態。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章