文章目錄
- 前言
- 資料鏈接
- 用VMware練習配置前準備三臺虛擬機并修改網路為橋接
- 01本地源YUM
- 02基礎環境配置
- 1.防火墻
- 2.主機名與映射
- 2.1修改主機名
- 2.2添加映射
- 3.時間同步
- 3.1時區
- 3.2時間同步協議NTP
- 4.定時任務crontab
- 4.1描述
- 4.2案例:定時任務
- 03遠程登錄ssh
- 04語言環境--Java
- 4.1安裝JDK
- 4.2安裝完jdk后jdk版本和自己安裝的不一樣
- 05協調服務zookeeper安裝
- 06.Hadoop安裝
- 6.1解壓安裝包,配置環境變數
- 6.2配置Hadoop各組件
- 07.添加洗掉節點
前言
本篇博客將根據往年全國大學生大資料技能競賽的資料和今年的培訓來Hadoop搭建,每一個步驟都有相應的執行的截圖,以下博客僅作為個人搭建Hadoop程序的記錄~如有不足之處歡迎指出,共同學習進步,附上資料鏈接,
資料鏈接
第四屆全國大學生大資料技能競賽中關于搭建Hadoop集群的培訓鏈接:
https://www.qingjiaoclass.com/market/detail/4486
所有環境工具百度網盤鏈接:
https://pan.baidu.com/s/1oOW7WqHK4fiqv4Xja5f7gQ
提取碼:vvi7
在自己練習搭建Hadoop集群時盡量每一步都拍快照,防止出現錯誤解決不了然后不得不重新搭建,非常麻煩
用VMware練習配置前準備三臺虛擬機并修改網路為橋接
1.暫時關閉防火墻和selinux
systemctl stop firewalld
setenforce 0
2.永久關閉
systemctl disable firewalld
vi /etc/sysconfig/selinux

2.配置網路橋接模式修改靜態ip地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33
nmcli c reload ifcfg-ens33
nmcli con up ens33
ifconfig


3.克隆兩臺虛擬機,并修改IP地址
克隆虛擬機
修改克隆的兩臺虛擬機ip分別為
192.168.43.140,192.168.43.150
打開SecureCRT,遠程登錄三臺虛擬機
01本地源YUM


02基礎環境配置
1.防火墻
systemctl stop firewalld
systemctl status firewalld
2.主機名與映射
2.1修改主機名
本次集群搭建共有三個節點,包括一個主節點master,和兩個從節點slave1和slave2,需要把三個節點的主機名分別修改,
1.以主機點master為例,首次切換到root用戶:su
2.修改主機名為master:
hostnamectl set-hostname master
3.立即生效:
bash

4.若要永久修改主機名,編輯/etc/sysconfig/network檔案
vi /etc/sysconfig/network
內容如下:
NETWORKING=yes
HOSTNAME=master

保存該檔案,重啟計算機:reboot
查看是否生效:hostname
2.2添加映射
使各個節點能使用對應的節點主機名連接對應的地址,
hosts檔案主要用于確定每個結點的IP地址,方便后續各結點能快速查到并訪問,在上述3個虛機結點上均需要配置此檔案,
vi /etc/hosts

3.時間同步
3.1時區
1.查看自己機器時間:
date
2.選擇時區:
tzselect

3.2時間同步協議NTP
1.3臺機器安裝ntp:
yum install -y ntp

2.master作為ntp服務器,修改ntp組態檔,(master上執行)
vi /etc/ntp.conf
找到第58行,也就是最后一行
添加
server 127.127.1.0
fudge 127.127.1.0 stratum 10

3.重啟ntp服務,
/bin/systemctl restart ntpd.service

4.其他機器同步(slave1,slave2)
等待大概五分鐘,再到其他機上同步該機器時間,
ntpdate master


4.定時任務crontab
4.1描述
- 星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件后每月都執行該命令操作,
- 逗號(,):可以用逗號隔開的值指定一個串列范圍,例如,“1,2,5,7,8,9”
- 中杠(-):可以用整數之間的中杠表示一個整數范圍,例如“2-6”表示“2,3,4,5,6”
- 正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次,
- 同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次

輸入
crontab -h
可查看命令相關操作

4.2案例:定時任務
要求:每10min執行一次
寫一個定時任務:
crontab -e
鍵入 i ,進入編輯模式
輸入內容:
*/10 * * * * usr/sbin/ntpdate master

查看定時任務串列:
crontab -l

03遠程登錄ssh
為了讓主結點master能通過SSH免密碼登錄兩個子結點slave,
1.三臺機器分別執行
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

2.只在master節點執行
cd .ssh/
ls
id_dsa.pub為公鑰,id_dsa為私鑰

3.將公鑰檔案復制成authorized_keys檔案:(僅master)
cat id_dsa.pub >> authorized_keys
驗證ssh內回環
ssh master
輸入yes
exit
ssh master#這一次不用輸入yes驗證

4.在master節點執行以下命令:
scp ./authorized_keys root@slave1:~/.ssh/
scp ./authorized_keys root@slave2:~/.ssh/

5.驗證ssh免密登錄
ssh slave1
exit

04語言環境–Java
4.1安裝JDK
三臺虛擬機都需安裝
1.建立作業路徑
mkdir -p /usr/java
2.把檔案傳輸到本地根目錄(我用的secureCRT)
到Windows下先復制jdk的安裝包,點擊箭頭所指的那個,然后右鍵粘貼,等待檔案傳輸完成,

3.解壓縮
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/java/
4.修改環境變數
vi /etc/profile
在檔案第55行添加以下內容
export JAVA_HOME=/usr/java/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin

生效檔案和查看jdk版本
source /etc/profile
java -version

安裝的jdk版本和自己安裝的一樣,安裝成功!
4.2安裝完jdk后jdk版本和自己安裝的不一樣
請看這篇博文,相信你能解決問題!
安裝完jdk后jdk版本和自己安裝的不一樣怎么辦?
05協調服務zookeeper安裝
注意:第1步在三臺虛擬機進行,2~10步在master虛擬機進行,11步在 slave1,slave2虛擬機進行,12步在三臺虛擬機進行
1.修改主機名稱到ip地址映射配置(三臺虛擬機)
vi /etc/hosts
192.168.43.130 master master.root
192.168.43.140 slave1 slave1.root
192.168.43.150 slave2 slave2.root

2.上傳zookeeper安裝包到虛擬機根目錄
3.新建目錄
mkdir -p /usr/zookeeper

4.解壓縮
tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/zookeeper/
5.修改/etc/profile檔案,配置zookeeper環境變數,
vi /etc/profile
在第58行添加
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10
PATH=$PATH:$ZOOKEEPER_HOME/bin

6.進入zookeeper組態檔夾conf,將zoo_sample.cfg檔案拷貝一份命名為zoo.cfg
cd /usr/zookeeper/zookeeper-3.4.10/conf/
cp -p zoo_sample.cfg zoo.cfg

7. 組態檔zoo.cfg
vi zoo.cfg
修改第12行為
dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata

在第29行,也就是檔案末尾,添加以下內容
dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

8.在zookeeper的目錄中,創建配置中所需的zkdata和zkdatalog兩個檔案夾,
mkdir zkdata
mkdir zkdatalog

9.進入zkdata檔案夾,創建檔案myid,用于表示是幾號服務器,master主機中,設定服務器id為1,
cd zkdata
vi myid

10.以上已經在主節點master上配置完成ZooKeeper,現在可以將該配置好的安裝檔案遠程拷貝到集群
中的各個結點對應的目錄下(這時候子節點):
scp -r /usr/zookeeper root@slave1:/usr/
scp -r /usr/zookeeper root@slave2:/usr/

11.組態檔myid檔案,slave1為2,slave2為3
cd /usr/zookeeper/zookeeper-3.4.10/zkdata
vi myid


12.啟動zookeeper集群
每臺虛擬機要先進入zookeeper目錄下
cd /usr/zookeeper/zookeeper-3.4.10/
再分別執行
bin/zkServer.sh start
bin/zkServer.sh status
一個節點是leader,其余節點是follower,就安裝成功啦~



06.Hadoop安裝
6.1解壓安裝包,配置環境變數
1.把Hadoop安裝包拷貝到根目錄,創建作業目錄,解壓Hadoop安裝包
mkdir –p /usr/hadoop
tar -zxvf hadoop-2.7.3.tar.gz -C /usr/hadoop/
2.配置環境變數,修改/etc/profile檔案
vi /etc/profile
在第60行添加
#HADOOP
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin

3.生效組態檔
source /etc/profile
6.2配置Hadoop各組件

1.進入Hadoop的/etc/hadoop目錄
cd /usr/hadoop/hadoop-2.7.3/etc/hadoop

2.編輯hadoop-env.sh檔案
vi /hadoop-env.sh
在第28行添加以下內容
export JAVA_HOME=/usr/java/jdk1.8.0_171

3.編輯core-site.xml
vi core-site.xml
添加以下內容
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/hadoop-2.7.3/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>60</value>
</property>
<property>
<name>fs.checkpoint.size</name>
<value>67108864</value>
</property>
</configuration>

4.編輯yarn -site.xml
vi yarn-site.xml
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name> <value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.shuffleHandler</value>
</property>

5.編輯hdfs-site.xml
vi hdfs-site.xml
添加以下內容
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/hadoop-2.7.3.hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/hadoop-2.7.3/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

6.編輯mapred-site.xml
hadoop是沒有這個檔案的,需要將mapred-site.xml.template復制為mapredsite.xml,
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml

添加以下內容
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

7.設定節點檔案
vi slaves

vi master

8.分發hadoop
scp -r /usr/hadoop root@slave1:/usr/
scp -r /usr/hadoop root@slave2:/usr/
9.hdfs格式化(master虛擬機執行)
hadoop namenode -format
出現下面這句話時,恭喜你~格式化成功!

10.開啟集群
僅在master主機上開啟操作命令,它會帶起從節點的啟動,
開啟集群:
進入到Hadoop目錄下執行:
sbin/start-all.sh
或者
start-all.sh start
查看行程:
jsp

11.瀏覽器訪問:masterIP:50070
出現以下頁面表面搭建成功~~

07.添加洗掉節點









轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293913.html
標籤:其他
