搭建單機hadoop參見上篇文章https://blog.csdn.net/zhangcjsyl/article/details/88322373,虛擬機和ubuntu操作系統的安裝參見tps://blog.csdn.net/zhangcjsyl/article/details/8814258,本文在此兩篇文章基礎上進行搭建Hadoop集羣環境。
一、整體規劃
一主三從,整理如下:
主機名 | IP | HDFS | YARN |
hadoop | 192.168.56.100 | NameNode | ResourceManager |
hadoop1 | 192.168.56.101 | DataNode | NodeManager |
hadoop3 | 192.168.56.102 | DataNode | NodeManager |
hadoop3 | 192.168.56.103 | DataNode | NodeManager |
二、集羣搭建
1.修改主機hadoop1
首先進行網卡設置
將上文的hadoop1關機,在virtualbox界面選中hadoop1點擊設置:
單擊網絡,設置網卡一爲如下:
這樣虛擬主機就可以通過本機連接外網。然後按照下圖設置添加網卡2:
然後啓動hadoop1,在終端輸入命令:
$ sudo gedit /etc/network/interfaces
編輯網絡配置文件,添加如下代碼:
# NAT interface
auto enp0s3
iface enp0s3 inet dhcp
#host only interface
auto enp0s8
iface enp0s8 inet static
address 192.168.56.101
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
這裏的enp0s3和enp0s8是你自己的網卡名稱,可能與我這裏並不一樣,可以通過ifconfig -a命令查看網卡。修改後的文件如下:
然後點擊保存並關閉。
編輯主機名
終端輸入下面的命令:
$ sudo gedit /etc/hostname
修改文件如下:
保存後關閉。這樣這臺主機的主機名就是data1,接着設置hosts文件,在終端輸入命令:
$ sudo gedit /etc/hosts
增加如下配置:
192.168.56.100 master
192.168.56.101 data1
192.168.56.102 data2
192.168.56.103 data3
修改後的問價如下:
保存後關閉。
修改hadoop配置文件
首先修改core-site.xml,在終端輸入命令:
$ sudo gedit /usr/local/hadoop/hadoop-3.2.0/etc/hadoop/core-site.xml
將配置中的localhost改爲master,修改後如下:
保存並關閉後修改yarn-site.yml,在終端輸入命令:
$ sudo gedit /usr/local/hadoop/hadoop-3.2.0/etc/hadoop/yarn-site.xml
在文件中增加如下配置:
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
修改後的文件如下:
保存並關閉後修改mapred-site.yml,在終端輸入命令:
$ sudo gedit /usr/local/hadoop/hadoop-3.2.0/etc/hadoop/mapred-site.xml
增加如下配置:
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
修改後文件如下:
編輯完成後保存並關閉。最後編輯hdfs-sites.xml,在終端輸入命令:
$ sudo gedit /usr/local/hadoop/hadoop-3.2.0/etc/hadoop/hdfs-site.xml
刪除下圖紅色框中的配置:
保存後關閉。這樣一個slave節點配置完畢。
2.複製hadoop1爲hadoop2、hadoop3、hadoop
在VirtualBox中右鍵虛擬機hadoop1,點擊複製,MAC地址設定選擇‘爲所有網卡重新生成MAC地址’,點擊下一步:
選擇完全複製,然後點擊複製即開始複製:
複製的過程大概需要幾分鐘。
複製完成後,將ip分別設爲192.168.56.102 ,192.168.56.103,192.168.56.100,主機名設爲data2,data3,master。hadoop2、hadoop3就無需另外配置了。master節點主機hadoop的配置按照下面的步驟進行。
修改hdfs-sites.xml,在終端輸入命令:
$ sudo gedit /usr/local/hadoop/hadoop-3.2.0/etc/hadoop/hdfs-site.xml
刪除下紅框中的配置:
保存後關閉。新建masters文件,在終端輸入命令:
$ sudo gedit /usr/local/hadoop/hadoop-3.2.0/etc/hadoop/masters
編輯如下:
保存後關閉。新建slaves文件,在終端輸入命令:
$ sudo gedit /usr/local/hadoop/hadoop-3.2.0/etc/hadoop/slaves
編輯如下
保存後關閉。至此,master節點和三個slave節點配置完成。
3.hadoop集羣啓動
先將四臺虛擬機啓動,在master上啓動終端,通過ssh連接到data1:
$ ssh data1
先將之前的數據全部清除,執行下面的命令:
$ sudo rm -rf ls /usr/local/hadoop/hadoop_data/hdfs
然後新建目錄:
$ mkdir -p ls /usr/local/hadoop/hadoop_data/hdfs/datanode
設置目錄的擁有者:
$ sudo chown -R zhangc:zhangc /usr/local/hadoop
退出data1:
$ exit
以同樣的方式將data2、data3的數據也都重置。然後在master機器上刪除之前的HDFS目錄:
$ sudo rm -rf ls /usr/local/hadoop/hadoop_data/hdfs
創建namenode目錄:
$ mkdir -p ls /usr/local/hadoop/hadoop_data/hdfs/namenode
設置目錄的擁有者:
$ sudo chown -R zhangc:zhangc /usr/local/hadoop
格式化namenode:
$ hadoop namenode -format
分別啓動master和data1、data2、data3:
$ start-all.sh
在四臺機器上分別查看當前進程:
$ jps
訪問http://master:8088,點擊nodes查看當前節點
訪問http://master:9870,點擊datanodes可查看datanodes信息:
如此,hadoop集羣搭建完畢。