1. 程式人生 > >VirtualBox下 Centos6.10+Hadoop2.6叢集搭建 Windows客戶端搭建

VirtualBox下 Centos6.10+Hadoop2.6叢集搭建 Windows客戶端搭建

1 Centos下載安裝

Centos映象下載地址https://www.centos.org/download/ 我選擇的是DVD版本

在VitrualBox裡面新建一個虛擬機器

硬碟給了10G,其他屬性預設,開機,選擇啟動盤,把下載好的映象放入,開始安裝

趁安裝的時候,在虛擬機器上面檢視,調成自動縮放模式,如果發現滑鼠不見了,按一下鍵盤右邊(注意是右邊)的Ctrl,安裝的時候根據提示操作,最後的安裝進度條

安裝成功後,先關機,然後設定一下網路,右鍵虛擬機器,設定,選擇網路選項卡,新增兩塊網絡卡,一個是Host-Only,這個網路連線模式只能在虛擬機器和宿主機之間聯通,類似一個小型區域網,第二塊網絡卡配置成NAT模式,用於虛擬機器的上網

 按Ctrl+W,出來主機網路管理介面,開啟DHCP伺服器,進行如下配置

 

在windows下執行ipconfig命令,可以看見Host-Only的那塊網絡卡

虛擬機器重新開機,還會讓你配置一下賬號密碼之類的東西,配置好之後開機

配置一下開啟終端的快捷鍵,如圖開啟快捷鍵設定

找到Run a terminal,修改快捷鍵

 

為使用者賦予root許可權,需要修改/etc/sudoers檔案,不建議直接用vi開啟修改,使用visudo命令修改可以檢查一下語法,避免損壞檔案搞出大事情

su root  //切換到root使用者,這一部會要求輸入root密碼
visudo  //開啟/etc/sudoers檔案

按一下“G”(注意是大寫的),跳到文件末尾,找到##same thing without a password這一項,按照他給的例子複製一行,複製命令是yy,黏貼是p,然後按一下i開始進行文字編輯,移動游標進行文字修改。修改完後按“:”進入vim命令模式,輸入wq回車,儲存檔案並退出。我配置的是無密碼切換root模式,因為懶惰,如果你需要密碼的可以用上一項

tuan ALL=(ALL) NOPASSWD: ALL

切換回自己的使用者,修改一下網絡卡配置,為Host-Only網路指定Ip,需要修改/etc/sysconfig/network-scripts/ifcfg-eth0檔案,這一部需要root許可權,如果你的Host-Only網絡卡是eth1就開啟eth1的

sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0  //開啟配置檔案
新增一行IPADDR=192.168.56.21,修改BOOTPROTO為static,修改ONBOOT為yes,儲存關閉
sudo service network restart //重啟網絡卡
ifconfig  //檢視網絡卡配置

弄好之後,ping一下我們的宿主機,發現ping不通,原因是windows的防火牆預設關閉了icmp,開啟防火牆高階設定,在入站規則裡面找到下面這條,雙擊,啟用就可以ping通宿主機了,宿主機的Host-Only地址可以通過ipconfig查詢

因為開著個介面很佔資源,而且我的小破筆記本操作還有點卡,因此開啟ssh服務,通過xshell上。關機,啟動虛擬機器的時候,右鍵啟動—無介面啟動。注意當虛擬機器無介面啟動顯示啟動後,還需要等一會才能用ssh連上

sudo chkconfig sshd on  //開機啟動ssh,可以不配置
service sshd start  //啟動ssh服務

2 Hadoop叢集安裝

按照官網文件兩篇,分別是單點模式安裝和叢集模式安裝

http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-common/SingleCluster.html

http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-common/ClusterSetup.html

2.1 依賴安裝

官網說需要兩個依賴:Java7和ssh,Centos6.10都有

但是我不想用Java1.7,升個級

sudo yum remove -y java  //舊的不去
sudo yum install -y java-1.8.0*  //新的不來

2.2 Hadoop下載

從官網提供的地址下載,直接wget

wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz  //下載
tar -xf hadoop-2.6.5.tar.gz  //解壓
mv hadoop-2.6.5 hadoop  //改名

2.3 Hadoop配置

所有配置檔案都是hadoop目錄下的etc/hadoop下,hadoop/share/doc目錄下可以找到各種配置檔案的dafault版本,用find命令就能找到,如果某個配置項沒有配置Hadoop就會使用這些預設配置

2.3.1 hadoop-env.sh和yarn-env.sh

修改JAVA_HOME這一項,java的安裝目錄可以通過這篇文章的方法找到,我的在/usr/lib/jvm/jre-1.8.0-openjdk.x86_64下面

https://blog.csdn.net/zhpengfei0915/article/details/50963199/

這一項預設是引用環境變數JAVA_HOME的值,乾脆在/etc/profile裡配置一個環境變數,就不用修改這兩個檔案了

在/etc/profile中新增
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64
儲存退出
source /etc/profile  //讓環境變數生效

2.3.2 core-site.xml

配置預設的檔案系統埠

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
</property>

2.3.3 yarn-site.xml

配置ResourceManager的ip地址

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
</property>

2.3.4 slave機建立

為了通訊方便修改一下/etc/hosts檔案,加入如下三行,第一個master對應現在這臺虛擬機器的ip地址,底下兩臺是slave機,儲存退出

順便為了後續方便我把Windows的hosts檔案也加了這些配置

修改slaves檔案,這裡面配置的是slave機的ip

退出master機,複製兩份為slave1和slave2,修改一下Ip

2.4 啟動Hadoop

一切操作都在Hadoop目錄下

最開始要初始化一下Namenode,然後會問你是否要清除所有檔案云云,按Y就行

./bin/hdfs namenode -format my_hadoop

在master節點上啟動Namenode和ResourceManager

./sbin/hadoop-daemon.sh --script hdfs start namenode
./sbin/yarn-daemon.sh start resourcemanager

在兩個slave節點上啟動Datanode和NodeManager

./sbin/hadoop-daemon.sh --script hdfs start datanode
./sbin/yarn-daemon.sh start nodemanager

最後在瀏覽器看一下master:50070,結果打不開,這是因為防火牆的問題,簡單粗暴地關掉防火牆

sudo chkconfig iptables off
sudo service iptables stop

現在網頁可以打開了

3 Windows客戶端搭建

對我這種菜鳥在Linux環境開發Java程式很痛苦,所以配一個Windows客戶端

直接把伺服器上的hadoop打個包,用xshell下載下來

tar -cf hadoop.tar hadoop
sudo yum install lrzsz
sz hadoop.tar

Windows下也需要配置一些環境變數,如圖,目錄按照自己的來就好 

 在這個網址下載Hadoop的Windows版命令包https://github.com/steveloughran/winutils,我下的2.6.4可以用,把bin裡面的覆蓋到hadoop/bin

在cmd裡面執行幾條命令試一下

C:\Users\Lenovo>hadoop fs -mkdir /test  //在hdfs新建一個test目錄
C:\Users\Lenovo>hadoop fs -copyFromLocal test.txt /test/test.txt  //把本地一個test.txt傳到hdfs
C:\Users\Lenovo>hadoop fs -ls /test  //檢視test目錄