這是我2010年寫的hadoop搭建過程,現在重新發出來,當作hadoop學習的開始。
俗話說的好:計劃趕不上變化,這幾天還真在我身上應驗了。原計劃4小時完成,結果40小時才...
不寫篇日誌,簡直對不起我的一片苦心。
這週五計劃搭建Hadoop環境(在winodws環境下用虛擬機虛擬兩個ubuntu系統進行搭建)。
先介紹下準備工作:
1: Hadoop 0.20.2 (官網下載)
2: VMware7 (官網下載)
3: jdk-6u20-linux (官網下載) //我就是沒從官網下最後就悲劇了。
4: Ubuntu 10.04 (ISO)
用戶 :jackydai(192.168.118.128) jacky(192.168.118.129)
jackydai 對應 namenode/JobTracker jacky datanode/Tasttrack
晚上7點正式開伙。首先裝VMware7.01。這個so easy!
因爲班上同學有在虛擬機下裝過ubuntu,所以安裝簡單還算簡單,同學一手操辦了。
附上分區建議:
硬盤15G分區如下:
1、boot 200M
2、swap 2G
3、home 7G
4、root 剩下的全部
結果20分鐘安完了,結果同學說要更新,ubuntu更新管理一打開需要下載80多個文件,2個多小時。我忍了,看着10K-15K的速度。兩個多小時後,終於完成了。 結果才發現,竟然還要安裝一個ubuntu!。我又忍了。這次190K-210K. 總算老天開眼。(誰知後頭.....)大概10點才把系統完全安完。
1:開始安裝JDK。由於從沒用過ubuntu 連安裝文件都不會。不過還好班上強人多,馬上請幫手,忙乎了半個小時。連JDK都沒安好。同學有事先走了。馬上再請一個來,結果10分鐘後還是沒成功。結果大膽猜測JDK文件原本就有錯誤。同學從官網上下了一個安了,好了。我滴個神.... 都12點了。才把JDK安好。我心都涼了。這件事情告訴我們,軟件包要從官網下。當然是建立在免費軟件基礎上。
命令:
(1):$ chmod 777 ./home/jackydai/jdk-6u20-linux-i586-rpm.bin //添加權限
(2):$ ./home/jackydai/jdk-6u20-linux-i586-rpm.bin //安裝JDK
(3):/etc/profile 添加如下代碼: //設置環境變量
export JAVA_HOME="/usr/java/jdk1.6.0_20"
export PATH="$PATH : $JAVA_HOME/bin:$JAVA_HOME/jre/bin:"
export CLASSPATH="$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
(4):souce /etc/profile //使環境變量生效
(5):which java //測試JDK安裝是否成功 成功顯示 /usr/java/jdk1.6.0_12/bin/java
2: 安裝SSH ,實現SSH的無密碼連接。
命令:
(1):$ sudo apt-get install ssh //安裝ssh
(2): ssh -keygen -t dsa //生成密鑰 文件如:id_dsa id_dsa.pub
(3) cp id_dsa.pub anthorized_keys //加入受信列表
(4) ssh localhost 或者 ssh jackydai //成功就能無密碼訪問 這個是進行的本地測試、
這個弄完凌晨3點,悲劇--睡覺。
3:安裝Hadoop:
第二天10點半起來,馬上開始進行兩個系統的無密碼訪問。一直整起3點無任何進展。期間ubuntu論壇發帖一次,百度知道發貼一次。ubuntu羣發問5次。無一直接回答,悲劇--睡覺。 5點過起來,弄了1個小時還是沒完成,算了直接安裝hadoop。晚上12點結束時,才把Hadoop安裝好,進行了僞節點模式的測試。睡覺。 第二天早上10點半開始又整,終於完成SSH無密碼連接,但文件的目錄又出錯。5點解決目錄問題,datanode啓動又出問題,晚上7點解決全部問題。HOHO~~
命令:
(1):修改 etc/hosts
192.168.118.128 jackydai
192.168.118.129 jacky
(2):tar -xzvf hadoop-0.20.0.tar.gz //安裝hadoop
(3):添加 hadoop-0.20.0/conf 下的 hadoop-env.sh文件 export JAVA_HOME=/usr/java/jdk1.6.0_20
(4):配置master jackydai 配置slaves jacky@jacky
(5): 修 改 core-site.xml
<property>
<name> fs.default.name </name>
<value>hdfs://jackydai:9000</value>
</property>
修改 mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>jackydai:9001</value>
</property>
修改 hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/jackydai/hadoop_tmp_dir/</value>
</property>
(6):bin/hadoop namenode -format //必需初始化 只需要namdnode
(7): bin/start-all.sh //啓動 在namenode
PS (這些才讓我淚奔的地方):1:slaves 是jacky的ssh連接賬戶,雖然是jacky賬戶, 但ssh的連接賬戶可能不一樣。這個今天下午才發現。 jacky@jacky
2:ssh的兩機連接,有兩種辦法。從客戶端上既jacky 使用 $ scp /home/jacky/.ssh/id_dsa.pub 拷貝。
也可以直接用U盤拷過去,或者使用共享文件夾拷貝。
3: Hadoop 環境只需要 namenode 無密碼到 datanode。 所以只需從服務器拷貝客戶端
4:三個文件的設置、Hadoop的安裝、hosts文件設置在兩臺電腦上的配置應該一樣。
5:兩個系統安裝Hadoop的文件名應該一樣既: /home/jackydai/hadoop-0.20.0 不然啓動的時候沒相應的目錄
6:附上初始化成功和啓動成功的截圖(這個是我從資料上截得圖)
初始化界面
啓動畫面
搭建好了,可以通過 http://jackydai :50070 查看namenode 狀態
http://jackydai :50030 查看 JobTracke狀態
剩下就可以運行Hadoop裏自帶的例子看看是否成功。
總結:
終於寫完了,當個記錄,不然過兩天又搞忘了。這都是時間換來的經驗啊。
搭建個平臺沒什麼,把ubuntu的基本操作命令全記下來了。至少每個都敲了100次+,就可以知道搭建過程多痛苦了。再加上天不時地不利人不和,光榮的戰鬥了40+個小時--淚奔~~