hadoop之旅2-centerOS7: 搭建分散式hadoop環境

爾以發表於2018-10-08

大家可能在網上一搜尋大資料,巴拉巴拉一大堆的理論性的東西撲面而來,都是這樣過來的,當時一臉懵逼,所以在此就不給大家再介紹理論性的知識了,直接帶大家搭建分散式的開發環境。

hadoop的分散式架構 (一主二從)

主機名 ip地址 namenode datanode
master 192.168.6.133
slave1 192.168.6.131
slave2 192.168.6.132

第一步

虛擬機器,java環境準備

需要有一臺centerOS7虛擬機器,同時已經搭建好了jdk的環境,如有疑問可移駕 hadoop之旅1-centerOS7: 搭建java環境

第二步

軟體準備

準備好hadoop的開發包

  1. apache官網下載
  2. apache歷史版本庫下載
  3. 我給大家分享的百度雲連結下載 版本:hadoop-2.7.3
  4. 我使用filezilla軟體將解壓包放入linux系統,大家也可以通過wget命令直接下載到linux系統中

第三步

解壓hadoop,重新命名

  1. 在下載的hadoop壓縮包的目錄下解壓hadoop壓縮包
[root@localhost mmcc]# tar -zxvf hadoop-2.7.3.tar.gz 
....
//重新命名目錄名稱(可選)
[root@localhost mmcc]# mv hadoop-2.7.3/ hadoop2.7.3
複製程式碼
  1. 檢視hadoop的根路徑
[root@localhost mmcc]# cd hadoop2.7.3/
[root@localhost hadoop2.7.3]# pwd
/home/mmcc/hadoop2.7.3   //配置環境變數時會用到
複製程式碼

第四步

配置環境變數

  1. /etc/profile最下面,hadoop之旅1-centerOS7: 搭建java環境章節配置的PATH,CLASSPATH上面增加環境變數配置
HADOOP_HOME=/home/mmcc/hadoop2.7.3
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH:.
複製程式碼
  1. 使環境變數生效
[root@localhost jdk1.8]# source /etc/profile
複製程式碼
  1. 配置hadoop的java環境,編輯hadoop根目錄下/etc/hadoop/下的hadoop.env.sh指令碼檔案
vi /hadoop-2.7.3/etc/hadoop/hadoop.env.sh
export JAVA_HOME=/home/mmcc/jdk1.8  //配置java的環境目錄
複製程式碼
  1. 配置hadoop的啟動環境,編輯hadoop根目錄下/etc/hadoop/下的core-site.xml檔案。
<property>
       <name>fs.defaultFS</name>
       <value>hdfs://master:9000</value>  (master處為當前主機ip或主機名)  
</property>
複製程式碼

此處的master後面會教大家

第五步

分散式環境搭建

  1. 此處為了方便,直接通過虛擬機器克隆的方式,將映象克隆多份,這樣在此之前搭建的所有環境都是同步存在的

hadoop之旅2-centerOS7: 搭建分散式hadoop環境

  1. 使用該命令給每個節點的設定對應的主機名
[root@localhost mmcc]# hostnamectl set-hostname master/slave1/slave2
複製程式碼
  1. 檢測網路
[root@localhost mmcc]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.6.133  netmask 255.255.255.0  broadcast 192.168.6.255
        inet6 fe80::3d1d:5127:6666:c62d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:f4:ef:5d  txqueuelen 1000  (Ethernet)
        RX packets 317168  bytes 315273916 (300.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 149675  bytes 14400069 (13.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 12826  bytes 3163428 (3.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12826  bytes 3163428 (3.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
複製程式碼

如果查詢不到ip地址,需要配置網路

cd  /etc/sysconfig/network-scripts/
vi ifcfg-ens33 (我的虛擬機器版本,別的版本可能不一樣)
ONBOOT="yes"  表開啟網路。
複製程式碼
  1. 設定網路別名,即IP對應的別名 如:hdfs://master:9000
[root@localhost network-scripts]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.6.133   master
192.168.6.131   slave1
192.168.6.132   slave2
複製程式碼

重啟網路

service network restart  重啟網路
複製程式碼

然後大家可以試著ping master/slave1/slave2如果ping通說明配置成功

  1. 格式化hdfs,在每臺節點上執行以下命令
hdfs namenode -format
複製程式碼

啟動之前進行格式化,如果沒有error和Exception 表示格式化成功

6. master主機配置hadoop叢集節點

cd /home/mmcc/hadoop2.7.3/etc/hadoop
[root@localhost hadoop]# vi slaves 
//增加以下內容
slave1
slave2
複製程式碼

7. 關閉每個節點防火牆,啟動hdfs服務,

[root@localhost mmcc]# systemctl stop firewalld
[root@localhost mmcc]# hadoop-daemon.sh start namenode //主節點master
[root@localhost mmcc]# hadoop-daemon.sh start datanode //從節點slave1,slave2
複製程式碼

然後可以在網頁上輸入主節點的地址master:50070ip地址:50070檢視當前的狀態及其節點狀態哦。到此一個分散式的hadoop環境已經成功啟動。 下一節會教大家如何進行免密登入,一鍵啟動叢集,及一些簡單的hdfs檔案儲存命令, 大家在配置過程中如果有什麼問題可以檢視log日誌進行問題排查。歡迎加我微信一起學習一起進步哈

hadoop之旅2-centerOS7: 搭建分散式hadoop環境

相關文章