Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 為現任微軟最有價值專家 (MVP)、微軟認證講師 (MCT) 、Blogger、Youtuber:記錄軟體開發的點點滴滴 著重於微軟技術、C#、ASP .NET、Azure、DevOps、Docker、AI、Chatbot、Data Science

[Data Science 到底是什麼從一個完全外行角度來看][05]建立Hadoop環境 -上篇

image
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/https://pixabay.com/en/math-blackboard-education-classroom-1547018/

上一篇([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。

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程式:

以上就是整個會用到的程式和環境,接下來就來看看如何建立hadoop環境。

建立Hadoop測試環境

基本上整個的環境建立大概可以分幾個部分:

  1. 安裝Ubuntu VM
  2. 設定Ubuntu環境
  3. 安裝和設定Hadoop
  4. 測試Hadoop
由於截圖比較多,所以這篇會先介紹第一步和第二部的部分,hadoop安裝和測試將會在下一篇做介紹

安裝Ubuntu VM

首先先把VMWare Player安裝起來(下載頁面

把VMWare Player執行起來,先建立VM:

image
建立VM

選擇下載的Ubuntu iso檔案位置(直接下載

image
選擇iso檔案的路徑

設定帳號的部分,建議設定hduser,如果設定不同,在下面的修改需要作出對應修改。

image
帳號設定畫面

機器的名稱和儲存位置就隨意,只要可以識別即可

image
VM名稱

VM硬碟的部分,20GB不用動,下面那個選項建議改成第一個選項,原因是之後要複製比較方便。

image
設定硬碟

設定CPU和memory的部分需要透過:

  1. 選擇 Customize Hardware
  2. 選擇 Memory
  3. 最好至少要有2048MB
  4. 按下close即可,修改就會儲存
最好 CPU 能夠給到 2+,Memory最好可以到4096 MB+ - 後面執行比較不會有問題(要不然需要在手動調整一些使用資源避免執行不起來)。
image
設定資源

接下來VMWare Player會自動安裝,如果有出現要不要安裝 VMWare Tool for linux,建議裝

image
安裝畫面

最後,安裝好之後,出現的就是登入畫面,直接輸入當初設定的密碼即可。

image
登入系統

設定Ubuntu環境

Hadoop是java的程式,因此需要先安裝Java - 正常來說Java 7就夠了,不過這邊會裝Java 8。

再來,要設定一些環境參數讓後面用到。

最後,會需要安裝ssh,因為啟動服務的時候會用ssh來溝通避免需要一台一台去啟動服務。

開啟Terminal
登入Ubuntu之後,開啟Terminal(快速鍵 Ctrl + Alt + t)。基本上後面會一直用到,所以記得這個快速鍵
更新package

先更新目前package的情況,使用指令:sudo apt-get update

image
update畫面
安裝Java 8
在terminal執行:sudo apt-get install openjdk-8-jre openjdk-8-jdk
image
中間有需要輸入 y 才會繼續執行
設定環境參數

現在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
image
設定畫面

最後確認一下參數有沒有進入:

source ~/.bashrc
echo $JAVA_HOME
java -version
image
參數確認,並且java版本是1.8
安裝ssh server

為了能夠讓master和多個slave溝通,需要安裝ssh,再來設定ssh的key:

sudo apt-get install openssh-server
cd ~/.ssh/
su - hduser
ssh-keygen -t rsa

在產生key的部分,正常是要設定一個密碼比較安全,不過這個是測試用,所以就enter3次下去即可

image
產生key的畫面

key產生了之後,要把它寫出來並且測試ssh是否正常:

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
ssh localhost
exit
image
測試和退出的畫面

結語

這篇介紹了建制測試環境的一些設定,由於圖片比較多因此把後半段hadoop的安裝/設定和測試放在下一篇。

在下一篇([06]建立Hadoop環境 -下篇)將會接著這篇目前VM的情況,並且把整個hadoop建制完成。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus