4.4 Hadoop叢集搭建

尹成發表於2018-11-15

CentOS7下搭建hadoop2.7.3完全分散式
這裡搭建的是3個節點的完全分散式,即1個nameNode,2個dataNode,分別如下:
CentOS-master nameNode 192.168.11.128
CentOS-node1 dataNode 192.168.11.131
CentOS-node2 dataNode 192.168…11.132

1.首先建立好一個CentOS虛擬機器,將它作為主節點我這裡起名為CentOS-master,起什麼都行,不固定要求

2.VMware中開啟虛擬機器,輸入java -version,檢查是否有JDK環境,不要用系統自帶的openJDK版本,要自己安裝的版本

3.輸入 systemctl status firewalld.service ,若如圖,防火牆處於running狀態,則執行第4和第5步,否則直接進入第6步

4.輸入 systemctl stop firewalld.service ,關閉防火牆

5.輸入 systemctl disable firewalld.service ,禁用防火牆

關閉SELinux
修改/etc/selinux/config檔案,SELINUX=enforcing改為SELINUX=disabled

6.輸入 mkdir /usr/local/hadoop 建立一個hadoop的資料夾

7.將hadoop的tar包放到剛建立好的目錄

8.進入hadoop目錄,輸入 tar -zxvf hadoop-2.7.3.tar.gz 解壓tar包

9.輸入 vi /etc/profile ,配置環境變數

10.加入如下內容,儲存並退出
HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3/

PATH=PATH:PATH:JAVA_HOME/bin:$HADOOP_HOME/bin

11.輸入 . /etc/profile ,使環境變數生效

12.任意目錄輸入 hado ,然後按Tab,如果自動補全為hadoop,則說明環境變數配的沒問題,否則檢查環境變數哪出錯了

13.建立3個之後要用到的資料夾,分別如下:
mkdir /usr/local/hadoop/tmp

mkdir -p /usr/local/hadoop/hdfs/name

mkdir /usr/local/hadoop/hdfs/data

14.進入hadoop解壓後的 /etc/hadoop 目錄,裡面存放的是hadoop的配置檔案,接下來要修改這裡面一些配置檔案

15.有2個.sh檔案,需要指定一下JAVA的目錄,首先輸入 vi hadoop-env.sh 修改配置檔案

16.將原有的JAVA_HOME註釋掉,根據自己的JDK安裝位置,精確配置JAVA_HOME如下,儲存並退出
export JAVA_HOME=/usr/local/java/jdk1.8.0_102/

17.輸入 vi yarn-env.sh 修改配置檔案

18.加入如下內容,指定JAVA_HOME,儲存並退出
export JAVA_HOME=/usr/local/java/jdk1.8.0_102

19.輸入 vi core-site.xml 修改配置檔案

20.在configuration標籤中,新增如下內容,儲存並退出,注意這裡配置的hdfs:master:9000是不能在瀏覽器訪問的

fs.default.name
hdfs://master:9000
指定HDFS的預設名稱


fs.defaultFS
hdfs://master:9000
HDFS的URI


hadoop.tmp.dir
/usr/local/hadoop/tmp
節點上本地的hadoop臨時資料夾


hadoop.proxyuser.root.hosts



hadoop.proxyuser.root.groups

21.輸入 vi hdfs-site.xml 修改配置檔案

22.在configuration標籤中,新增如下內容,儲存並退出

dfs.namenode.name.dir
file:/usr/local/hadoop/hdfs/name
namenode上儲存hdfs名字空間後設資料


dfs.datanode.data.dir
file:/usr/local/hadoop/hdfs/data
datanode上資料塊的物理儲存位置


dfs.replication
1
副本個數,預設是3,應小於datanode機器數量

23.輸入 cp mapred-site.xml.template mapred-site.xml 將mapred-site.xml.template檔案複製到當前目錄,並重新命名為mapred-site.xml

24.輸入 vi mapred-site.xml 修改配置檔案

25.在configuration標籤中,新增如下內容,儲存並退出

mapreduce.framework.name
yarn
指定mapreduce使用yarn框架

26.輸入 vi yarn-site.xml 修改配置檔案

27.在configuration標籤中,新增如下內容,儲存並退出

yarn.resourcemanager.hostname
master
指定resourcemanager所在的hostname


yarn.nodemanager.aux-services
mapreduce_shuffle

NodeManager上執行的附屬服務。
需配置成mapreduce_shuffle,才可執行MapReduce程式

28.輸入 vi slaves 修改配置檔案

29.將localhost刪掉,加入如下內容,即dataNode節點的主機名
node1
node2

30.將虛擬機器關閉,再複製兩份虛擬機器,重新命名為如下,注意這裡一定要關閉虛擬機器,再複製

31.將3臺虛擬機器都開啟,後兩臺複製的虛擬機器開啟時,都選擇“我已複製該虛擬機器”

32.在master機器上,輸入 vi /etc/hostname,將localhost改為master,儲存並退出

33.在node1機器上,輸入 vi /etc/hostname,將localhost改為node1,儲存並退出

34.在node2機器上,輸入 vi /etc/hostname,將localhost改為node2,儲存並退出

35.在三臺機器分別輸入 vi /etc/hosts 修改檔案,其作用是將一些常用的網址域名與其對應的IP地址建立一個關聯,當使用者在訪問網址時,系統會首先自動從Hosts檔案中尋找對應的IP地址

36.三個檔案中都加入如下內容,儲存並退出,注意這裡要根據自己實際IP和節點主機名進行更改,IP和主機名中間要有一個空格
192.168.11.128 master
192.168.11.131 node1
192.168.11.132 node2

37.SSH的配置
在主節點,ssh-keygen -t rsa 生成金鑰
在主節點,ssh-copy-id 主機名 複製金鑰到每個子節點

45.在master節點上分別輸入 ssh node1 和 ssh node2 測試是否配置ssh成功

46.如果node節點還沒有hadoop,則master機器上分別輸入如下命令將hadoop複製
scp -r /usr/local/hadoop/ root@node1:/usr/local/
scp -r /usr/local/hadoop/ root@node2:/usr/local/

47.在master機器上,任意目錄輸入 hdfs namenode -format 格式化namenode,第一次使用需格式化一次,之後就不用再格式化,如果改一些配置檔案了,可能還需要再次格式化

48.格式化完成

49.在master機器上,進入hadoop的sbin目錄,輸入 ./start-all.sh 啟動hadoop

50.輸入yes,回車

51.輸入 jps 檢視當前java的程式,該命令是JDK1.5開始有的,作用是列出當前java程式的PID和Java主類名,nameNode節點除了JPS,還有3個程式,啟動成功

52.在node1機器和node2機器上分別輸入 jps 檢視程式如下,說明配置成功

53.在瀏覽器訪問nameNode節點的8088埠和50070埠可以檢視hadoop的執行狀況

學院Go語言視訊主頁
https://edu.csdn.net/lecturer/1928

清華團隊帶你實戰區塊鏈開發
掃碼獲取海量視訊及原始碼 QQ群:721929980
在這裡插入圖片描述

相關文章