上一篇([04]Hadoop是什麼?)以一個非常高的overview看了Hadoop是什麼,在接下來將會把理論轉成實際操作,將建立一個Ubuntu 的 VM上面架設hadoop並且跑一個MapReduce的hello world程式,WordCount(算字數)。
等到跑完範例之後,將會在深入一點看hadoop的MapReduce和HDFS運作模式。
首先,從建立環境開始。
環境準備
整個操作會是在VM(虛擬機器)上面執行,並且因為Hadoop在linux世界比在Windows來的穩定,因此,會建立一個Ubuntu的環境,並且把Hadoop架設在裡面。
在接下來的lab將會用到以下幾個軟體/環境:
- 主機環境
- 接下來使用到的機器規格如下:
- OS - Windows 10 1703
- CPU - i7-6500U 雙核
- Memory - 16GB
- VMWare Player 14
任何虛擬機器軟體都可以,只是剛好用的是VMWare Player 14。
- 下載頁面
- 檔案大小約 90MB
- Ubuntu 16.04.3
其他版本的Ubuntu也沒問題 - 如果用的是Ubuntu 14,那麼只有等一下安裝openjdk的部分會有問題,其他都一樣。
- Hadoop v2.7.4
基本上 v2.x 的都沒有問題,只是剛好手上有2.7.4所以沒有在下載新的。如果是v3.0那麼設定會不同
- MapReduce的Hello World程式 - WordCount
這個是用來測試map reduce的hello world程式:
- WordCount2.jar
- jane_austen.txt - pride and prejudice 前三章 - 測試算字數用
以上就是整個會用到的程式和環境,接下來就來看看如何建立hadoop環境。
建立Hadoop測試環境
基本上整個的環境建立大概可以分幾個部分:
- 安裝Ubuntu VM
- 設定Ubuntu環境
- 安裝和設定Hadoop
- 測試Hadoop
安裝Ubuntu VM
首先先把VMWare Player安裝起來(下載頁面)
把VMWare Player執行起來,先建立VM:
選擇下載的Ubuntu iso檔案位置(直接下載)
設定帳號的部分,建議設定hduser
,如果設定不同,在下面的修改需要作出對應修改。
機器的名稱和儲存位置就隨意,只要可以識別即可
VM硬碟的部分,20GB不用動,下面那個選項建議改成第一個選項
,原因是之後要複製比較方便。
設定CPU和memory的部分需要透過:
- 選擇 Customize Hardware
- 選擇 Memory
- 最好至少要有2048MB
- 按下close即可,修改就會儲存
接下來VMWare Player會自動安裝,如果有出現要不要安裝 VMWare Tool for linux
,建議裝
最後,安裝好之後,出現的就是登入畫面,直接輸入當初設定的密碼即可。
設定Ubuntu環境
Hadoop是java的程式,因此需要先安裝Java - 正常來說Java 7就夠了,不過這邊會裝Java 8。
再來,要設定一些環境參數讓後面用到。
最後,會需要安裝ssh,因為啟動服務的時候會用ssh來溝通避免需要一台一台去啟動服務。
- 開啟Terminal
- 登入Ubuntu之後,開啟Terminal(快速鍵 Ctrl + Alt + t)。基本上後面會一直用到,所以記得這個快速鍵
- 更新package
先更新目前package的情況,使用指令:
sudo apt-get update
- 安裝Java 8
- 在terminal執行:
sudo apt-get install openjdk-8-jre openjdk-8-jdk
- 設定環境參數
現在terminal執行:
gedit ~/.bashrc
,然後在檔案最後面加上:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
最後確認一下參數有沒有進入:
source ~/.bashrc echo $JAVA_HOME java -version
- 安裝ssh server
為了能夠讓master和多個slave溝通,需要安裝ssh,再來設定ssh的key:
sudo apt-get install openssh-server cd ~/.ssh/ su - hduser ssh-keygen -t rsa
在產生key的部分,正常是要設定一個密碼比較安全,不過這個是測試用,所以就enter3次下去即可
key產生了之後,要把它寫出來並且測試ssh是否正常:
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys ssh localhost exit
結語
這篇介紹了建制測試環境的一些設定,由於圖片比較多因此把後半段hadoop的安裝/設定和測試放在下一篇。
在下一篇([06]建立Hadoop環境 -下篇)將會接著這篇目前VM的情況,並且把整個hadoop建制完成。
沒有留言 :
張貼留言