標籤:

虛擬機安裝部署hadoop集群記錄

簡介:手上只有一台windows 10 電腦,內存4g,想自學hadoop怎麼辦?虛擬機是個不錯的選擇。VMvare可以在一台電腦上同時運行多個LINUX系統,所以可以安裝3台linux系統,部署hadoop集群,可以相互切換機器及其方便。雖然性能和直接安裝在硬碟上差很多, 但用來學習和測試還是沒問題的。

第一步,安裝虛擬機並安裝linux系統

虛擬機:VMvare那個版本都行,我使用的12

linux系統iso:CentOS的那個版本都行,我使用的是6.2

大家看自行選擇自己熟悉的或最新的版本。

安裝步驟:

1.安裝VMvare,一路下一步就可以了。

2.配置虛擬機

VM安裝好後,點擊新建虛擬機,如圖選擇自定義安裝,點擊下一步

如圖選擇硬體兼容性最大的就可以,點擊下一步

如圖選擇稍後安裝操作系統,點擊下一步

如圖選擇所需安裝的操作系統和版本,點擊下一步

如圖修改自己喜歡虛擬機名稱和安裝位置

如圖處理器默認即可,點擊下一步

如圖內存配置,默認是1g,但我的內存太小,選擇了768m,點擊下一步

如圖,網路類型選擇,選擇nat,點擊下一步

如圖I/O選擇,默認,點擊下一步

如圖,磁碟類型,默認,點擊下一步

如圖磁碟選擇,選擇新的磁碟,點擊下一步

如圖,磁碟容量配置,默認即可,點擊下一步

如圖文件名稱,默認即可,點擊下一步

如圖點擊自定義硬體,點擊CD/DVD項,連接選擇ISO鏡像文件,點擊關閉,完成。

開啟虛擬機就可以安裝linux系統了。

進入歡迎界面

  選擇第一項即可進行安裝(直接回車),各項具體含義:

    1. 安裝或升級現有系統
    2. 用基本的顯卡驅動安裝系統
    3. 進入系統修復模式
    4. 硬碟啟動

是否對安裝鏡像進行測試 (直接就過即可)

  開始設置CentOS 6.2 (直接Next)

   設置安裝過程顯示的語言、鍵盤類型(這裡我選擇英語,當然也可以選擇中文。鍵盤類型保持默認即可)

  選擇存儲設備類型(默認選第一項:基本存儲設備)

格式化硬碟(選 Yes,discart any data)

設置計算機名(隨便起個名字就行,如果懶得起,默認吧) 選擇時區(選亞洲/上海就行了)

設置root用戶密碼

  選擇安裝(分區)方式(手動設置掛載分區,選Create Custom Layout)

  掛載分區 (點Create創建一個分區,默認選擇Stantard Partition(標準分區),選擇掛載點、分區大小即可創建分區)

  下面是我的分區方式(不同的用途可以選擇不同的分區,最後不要忘記swap分區哦),點Next,選擇Format(格式化),再選Write Change to disk(把分區表寫入硬碟)

  安裝 裝載引導程序(默認即可)

  選擇安裝的軟體(默認是最小安裝,如果需要安裝桌面,就選第一項Desktop),點Next就開始安裝系統

  安裝完成,點Reboot重新啟動

  第一次啟動CentOS需要對CentOS進行一些常規設置直接點Forward就行了

  創建一個普通用戶,Linux並不推薦用Root用戶對系統就行操作,Root許可權太高,誤操作可能會導致系統崩潰。所以建議使用普通用戶,如果需要root用戶許可權時再進行切換

  設置系統時間

  設置Kdump,這裡彈出了警告,不用管。(其實我暫時用不到Kdump,所以不用設置,直接Finish)。

  接著就到了登錄頁面,輸入用戶名、密碼,進入CentOS桌面,安裝完成。

cnblogs.com/pharen/arch

這個安裝很詳細,直接拿過來用一下。

第二步:配置靜態ip,此時linux系統已經能用了,但我為了安裝hadoop集群,實現3台機器的連續,故需要配置靜態ip。

1、需要確定虛擬機IP地址範圍和網關地址,點擊VMvare的編輯-虛擬網路編輯器,選擇nat模式,如下圖

點擊NAT設置確定網關:

點擊DHCP設置,確定IP地址範圍:

2、打開系統終端:修改ip:vim /etc/sysconfig/network-scripts/ifcfg-eth0

注意此處容易打錯字母。

HWADDR MAC地址修改為本虛擬機的mac地址,ifconfig查看eth0那個對應的mac地址。

3、確認VMware服務都已經啟動,這個很重要:

按window+r ,輸入services.msc,確認VM開頭的服務全部運行

4、關閉SELINUX:vim /etc/selinux/config,修改成為:SELINUX=disabled,保存退出即可。

5、關閉防火牆:執行service iptables stop;chkconfig --level 35 iptables off ;執行完畢後,調用 service iptables status,查看防火牆的狀態:iptables:Firewall is not running

6、修改主機名稱: vim /etc/sysconfig/network 為master

7、修改host映射:vim /etc/hosts 直接將3台伺服器的ip映射添加到文件後面就行

ip1 master

ip2 slave1

ip3 slave2

8、重啟網路,service network restart 重啟才能生效。測試一下能不能訪問外網,能訪問了進行下一步。

第三步:部署hadoop集群

需要 putty、jdk、hadoop安裝包,自行下載最新版本即可。

1、本地安裝putty工具,主要使用pscp.exe,需要下載。

2、window+r,輸入cmd。進入putty安裝目錄。pscp jdk本地存放文件的絕對路徑 root@192.168.188.201:/usr/local ,pscp hadoop本地存放文件的絕對路徑 root@192.168.188.201:/usr/local

3、解壓安裝jdk、hadoop :tar -xzvf jdk.*.tar.gz;tar -xzvf hadoop.*.tar.gz

4、創建hadoop用戶,並設置密碼;adduser hadoop ;passwd hadoop

5、將hadoop目錄整個添加到hadoop用戶下:chown -R hadoop.hadoop hadoop安裝目錄

6、切換到hadoop用戶下,並配置環境變數

su hadoop

vim ~/.bash_profile,在最後添加,如下:

7、配置hadoop相關環境

進入環境目錄:

cd /usr/local/hadoop-2.7.3/etc/hadoop

vim hadoop-env.sh yarn-env.sh 修改JAVA_HOME=/usr/local/jdk1.8.0_131

vim core-site.xml

vim hdfs-site.xml

vim mapred-site.xml

vim slaves

slave1

slave2

vim yarn-site.xml

配置好hadoop以後,進行虛擬機克隆。虛擬機克隆也可在部署好網路環境後進行。然後配置好所有環境後,將hadoop目錄同步到其他機器。

選中要克隆的伺服器,右鍵:管理-克隆,點擊下一步

選擇當前狀態,點擊下一步

選擇完整克隆,點擊下一步

修改名稱和位置,完成。等待克隆完成

重複上述步驟,再克隆一個。這樣就有3台相同的伺服器了。

分別在兩台虛擬機上的root帳戶下進行操作:

rm -f /etc/udev/rules.d/70-persistent-net.rules

ifconfig 查看mac

vim /etc/sysconfig/network-scripts/ifcfg-eth0,修改mac地址和對應的ip

vim /etc/sysconfig/network 修改主機名

reboot重啟伺服器。

這樣3台伺服器的所有環境就基本完成。還有最重要的一步是配置ssh免密登陸。只有配置好這個hadoop才能互換之間進行正常通訊。

hadoop帳戶下:cd .ssh目錄,執行ssh-keygen -t dsa,一路回車就行了。會生成id_dsa,id_dsa_pub兩個文件,cat id_dsa.pub >> authorized_keys,修改authorized_keys的許可權 chmod 600 authorized_keys

master上scp authorized_keys slave1:~/.ssh 輸入slave1的hadoop用戶密碼。現在登陸slave1就不需要密碼了。切換到slave1伺服器,執行ssh-keygen -t dsa,一路回車,cat id_dsa.pub >> authorized_keys

slave1上scp authorized_keys slave2:~/.ssh 輸入slave2的hadoop用戶密碼。現在登陸slave2就不需要密碼了。切換到slave2伺服器,執行ssh-keygen -t dsa,一路回車,cat id_dsa.pub >> authorized_keys;scp authorized_keys master:~/.ssh;scp authorized_keys slave1:~/.ssh。這樣ssh免密就完成了。

下面啟動hadoop

1、格式化namenode(是對namenode進行初始化)

hdfs namenode -format

2、執行命令start-all.sh

3、查看啟動的情況:jps

master的服務

slave的服務

證明hadoop啟動成功了

下面運行wordcount

hadoop fs -mkdir /input

將本地文件傳到input:hadoop fs -put file* /input

運行程序

hadoop fs -rm -r /output

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input /output

查看結果

hadoop fs -cat /output/*

運行期間碰上兩個問題:

一個是yarn內存不夠用,按下面修改內存的yarn.scheduler.minimum-allocation-mb

另一個是連接不上伺服器:是因為沒有啟動你個JobHistoryServer,sbin/mr-jobhistory-daemon.sh start historyserver啟動即可


推薦閱讀:

大數據那些事(30):Presto之坑和蘿蔔傻子和騙子的故事
淺談:Hadoop、spark、SaaS、PaaS、IaaS、雲計算
SparkSQL中的Sort實現(二)
《Machine Learning:Clustering & Retrieval》課程第3章KMeans之並行化
HBase可以替代redis嗎?

TAG:Hadoop |