虛擬機安裝部署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系統了。
進入歡迎界面
選擇第一項即可進行安裝(直接回車),各項具體含義:
-
- 安裝或升級現有系統
- 用基本的顯卡驅動安裝系統
- 進入系統修復模式
- 硬碟啟動
是否對安裝鏡像進行測試 (直接就過即可)
開始設置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桌面,安裝完成。
http://www.cnblogs.com/pharen/archive/2012/02/06/2339322.html這個安裝很詳細,直接拿過來用一下。
第二步:配置靜態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.xmlvim mapred-site.xml
vim slavesslave1
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 -format2、執行命令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 |