系列文章目錄
“紅亞杯”-大資料環境搭建與資料采集技能線上專題賽賽題
構建資料倉庫賽題決議
目錄
集群安裝搭建賽題決議
前言
在此鳴謝
資料鏈接
VMware虛擬機練習配置
訓練時一定要多拍快照防止出錯!!!
配置本地YUM源
基礎環境配置(20 / 20分)
主機名
防火墻
IP映射
時區同步
NTP同步
定時任務
遠程登錄ssh
Java環境配置
Zookeeper集群環境搭建(20 / 20分)
zookeeper基礎配置
zoo.cfg組態檔
zookeeper相關檔案夾創建
myid修改
啟動zookeeper服務
zookeeper狀態查詢
Hadoop完全分布式集群搭建(30 / 30分)
hadoop基礎配置
hadoop-env.sh
core-site.xml
hdfs-site.xml
yarn-env.sh
yarn-site.xml
mapred-site.xml
節點檔案設定
namenode格式化
啟動hadoop集群
集群安裝搭建賽題決議
前言
根據“紅亞杯”-大資料環境搭建與資料采集技能線上專題賽以及鈴音.博主文章結合整理,附上資料鏈接,
在此鳴謝
鈴音.
資料鏈接
鏈接:https://pan.baidu.com/s/1ytGL3cLGQxGltl5bHrSBQQ
提取碼:yikm
VMware虛擬機練習配置
創建三臺虛擬機
配置如下

可以選擇最小化安裝
(最小化安裝如果要使用vim和ifconfig命令需要進行安裝)
yum -y install vim*
yum -y install net-tools.x86_64

開啟ens33

配置靜態ip

修改網路服務設定
vim /etc/sysconfig/network-scripts/ifcfg-ens33

在此基礎上修改

:wq保存退出
重啟網卡
service network restart

查看網路狀態
ifconfig

克隆出兩臺機器,并修改ip地址
192.168.111.4,192.168.111.5
用遠程工具進行連接,博主用的是finalshell強烈安利

下載地址:SSH工具 客戶端
將準備好的package傳入虛擬機中,鏈接在文章最前面!

準備就緒,開搞開搞!
訓練時一定要多拍快照防止出錯!!!
配置本地YUM源
Centos自帶的YUM源更新太慢,可以使用更改本地源的方法來安裝軟體,
我們通常使用 yum install 命令來在線安裝 linux系統的軟體, 這種方式可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,
yum的組態檔在 /etc/yum.repos.d 目錄下, 其中有多個組態檔,每一個組態檔中都可以配置一個或多個 repository,
yum倉庫就是使用yum命令下載軟體的鏡像地址,國內的倉庫可以使用阿里源、163、清華大學等

配置本地源:通過比賽平臺提供源檔案下載路徑,將本地源檔案下載到/etc/yum.repos.d/目錄下(三臺機器都執行),
-
發信號給yum行程:pkill -9 yum
-
進入yum源組態檔:cd /etc/yum.repos.d
-
洗掉所有檔案:rm -rf *
-
下載yum源:wget http://xxxx/bigdata/repofile/bigdata.repo
-
清除YUM快取:yum clean all

基礎環境配置(20 / 20分)
1.修改主機名,便于識別節點;
2.工具包已保存在環境中;
3.修改hosts檔案,添加集群節點映射,按照給出的節點IP和對應的主機名進行設定;
4.要求各節點時區修改為中國時區( 中國標準時間CST+8)
5.安裝ntp服務,要求主節點master為本地時鐘源,從節點設定定時任務同步本地時間;
6.集群中資料傳輸需要節點之間免密訪問,要求設定主節點之間到從節點的免密訪問;
7.Hadoop技識訓于Java語言,要求本地源下載對應安裝包進行安裝配置,注意安裝路徑要求,無需更改檔案名,注意添加環境變數,
考核條件如下:
主機名
1. 修改主機名(分別為master、slave1、slave2,臨時生效即可,無需重啟環境)(1.00 / 1分)
操作環境: master、slave1、slave2
hostnamectl set-hostname master
bash
防火墻
2. 判斷是否關閉防火墻(1.00 / 1分)
操作環境: master、slave1、slave2
systemctl status firewalld
systemctl stop firewalld

永久關閉防火墻和selinux
systemctl disable firewalld
vim /etc/sysconfig/selinux



IP映射
3. hosts檔案添加映射(內網IP)(1.00 / 1分)
操作環境: master、slave1、slave2
vim /etc/hosts

ping一下測驗

時區同步
4. 時區更改(中國時區)(1.00 / 1分)
操作環境: master、slave1、slave2
tzselect
依次輸入5911

tzselect只是幫我們把選擇的時區顯示出來,并不會實際生效,也就是說它僅僅告訴我們怎么樣去設定環境變數TZ,
如果要永久更改時區,按照tzselect命令提示的資訊,在.profile或者/etc/profile中設定正確的TZ環境變數并生效,
設定TZ環境變數:TZ='Asia/Shanghai'; “export TZ
輸入:
echo "TZ='Asia/Shanghai'; export TZ" >> /etc/profile && source /etc/profile
查看時間:
date
![]()
NTP同步
NTP(Network Time Protocol,網路時間協議)是用來使網路中的各個計算機時間同步的一種協議, NTP服務器就是利用NTP協議提供時間同步服務的,
ntp軟體(支持ntp協議) CentOS6自帶CentOS7需要安裝的,圖中,可以看到有一個服務器作為時鐘源,其他主機去同步服務器上的時間,

5. 確認NTP服務(1.00 / 1分)
操作環境: master、slave1、slave2
下載ntp服務:
yum -y install ntp

6. 屏蔽默認server,設定master為本地時鐘源,服務器層級設為10(1.00 / 1分)
操作環境: master
vim /etc/ntp.conf
在最后一行加入
server 127.127.1.0
fudge 127.127.1.0 stratum 10

7. 主節點開啟NTP服務(1.00 / 1分)
操作環境: master
/bin/systemctl restart ntpd.service

slaves手動同步時間(slave1,slave2上 ):
ntpdate master

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

8. 從節點在早十-晚五時間段內每隔半個小時同步一次主節點時間(24小時制、用戶root任務調度crontab)(1.00 / 1分)
操作環境: slave1、slave2
寫一個定時任務:crontab -e
鍵入 i ,進入編輯模式
輸入內容:
*/30 10-17 * * * usr/sbin/ntpdate master

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

遠程登錄ssh
RSA 即可作為數字簽名,也可以作為加密演算法(未被完全攻破、暴力破解),
DSA 只能用于數字簽名,而無法用于加密(某些擴展可以支持加密);
RSA 與 DSA 都是非對稱加密演算法,相同密鑰長度RSA演算法和DSA演算法安全性相當,
RSA or DSA, this is a question!
Master節點要把自身的公鑰拷貝到自身的authorized_keys中,
目的:將 .ssh/id_rsa.pub放到其他機器上的authorized_keys中,
注意:如果是非root用戶,需要修改檔案權限 chmod 600 ~/.ssh/authorized_keys
ssh-keygen
一直回車即可

什么是authorized_keys : authorized_keys是linux作業系統下,專門用來存放公鑰的地方,只要公鑰放到了服務器的正確位置,并且擁有正確的權限,你才可以通過你的私鑰,免密登錄linux服務器,
將.ssh/id_rsa. pub中的公鑰存到authorized_keys 中:
cd .ssh
ls
cat id_rsa.pub >> authorized_keys
ssh-copy-id localhost
9. 實作主機自身localhost免密訪問(內回環)(2.00 / 2分)
操作環境: master
ssh localhost

10. 主節點生成公鑰檔案(數字簽名RSA,用戶root,主機名master)(1.00 / 1分)
操作環境: master
11. 實作master對slave1的免密登陸(2.00 / 2分)
操作環境: master
scp -r .ssh root@slave1:~/
ssh slave1
exit


12. 實作master到slave2的免密訪問(2.00 / 2分)
操作環境: master
scp -r .ssh root@slave2:~/
ssh slave2
exit
Java環境配置
13. 將jdk安裝包解壓到/usr/java目錄(安裝包存放于/usr/package/,解壓后路徑不做修改,默認為/usr/java/jdk1.8.0_171,其他安裝同理)(2.00 / 2分)
操作環境: master、slave1、slave2
mkdir -p /usr/java
tar -zxvf /usr/package/jdk-8u171-linux-x64.tar.gz -C /usr/java/

14. /etc/profile中配置JAVA系統環境變數($JAVA_HOME)(1.00 / 1分)
操作環境: master、slave1、slave2
vim /etc/profile
在其中加入:
#java
export JAVA_HOME=/usr/java/jdk1.8.0_171
export PATH:$PATH:$JAVA_HOME/bin

生效環境變數
source /etc/profile
![]()
15. 驗證jdk是否安裝成功(2.00 / 2分)
操作環境: master、slave1、slave2
scp -r /usr/java/ root@slave1:/usr/
scp -r /usr/java/ root@slave2:/usr/
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
java -version


Zookeeper集群環境搭建(20 / 20分)
Zookeeper是一個分布式服務框架,是Apache Hadoop 的一個子專案,它主要是用來解決分布式應用中經常遇到的一些資料管理問題,如:統一命名服務、狀態同步服務、集群管理、分布式應用配置項的管理等,
網站架構逐漸從集中式轉變成分布式,提供更強的計算、存盤能力,避免單點故障等問題,
舉例說明:當有一項任務分配到某個團隊之后,團隊內部的成員開始各司其職,然后把作業結果統一匯總給團隊主管,由團隊主管再整理團隊的作業成果匯報給公司,
人遇到問題可以溝通,機器如何溝通?如何保證分布式系統中保證資料的一致性和可用性?
zookeeper就是各個服務或節點之間進行協調的服務或中間人,同步資料,同步資訊

1.組態檔參考:
tickTime=2000
initLimit=10
syncLimit=5
clientPort=????
# 配置資料存盤路徑
????
# 配置日志檔案路徑
????
# 配置集群串列
server.1=????
server.2=????
server.3=????
2.Zookeeper一共有三個埠供使用:
2181:對clinet端提供服務
2888:集群內機器通訊使用(Leader監聽此埠)
3888:選舉leader
3.配置集群時,埠使用如下:
使用server.A=B:C:D
A:表示一個數字,這個數字表示第幾個服務器,對應myid檔案中的序號
B:服務器地址,也就是ip地址
C:本臺服務器與集群中的leader服務器交換資訊埠
D:如果leader掛了就需要這個埠重新選舉
考核條件如下:
zookeeper基礎配置
1. 將zoo安裝包解壓到指定路徑/usr/zookeeper(安裝包存放于/usr/package/)(1.00 / 1分)
操作環境: master、slave1、slave2
mkdir -p /usr/zookeeper
tar -zxvf /usr/package/zookeeper-3.4.10.tar.gz -C /usr/zookeeper/

2. 配置zookeeper系統環境變數($ZOOKEEPER_HOME)(1.00 / 1分)
操作環境: master、slave1、slave2
vim /etc/profile
在其中加入:
#zookeeper
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin

生效環境變數
source /etc/profile
zoo.cfg組態檔
3. 修改組態檔zoo.cfg(1.00 / 1分)
操作環境: master、slave1、slave2
cd /usr/zookeeper/zookeeper-3.4.10/conf
ll
mv zoo_sample.cfg zoo.cfg

4. 設定資料存盤路徑(dataDir)為/usr/zookeeper/zookeeper-3.4.10/zkda(1.00 / 1分)
操作環境: master、slave2、slave1
5. 設定日志檔案路徑(dataLogDir)為/usr/zookeeper/zookeeper-3.4.10/zkdatalog(1.00 / 1分)
操作環境: master、slave1、slave2
6. 設定集群串列(master為1號服務器,slave1為2號,slave2為3號)(2.00 / 2分)
操作環境: master、slave1、slave2
vim zoo.cfg
進行如下修改:
修改dataDir=/tmp/zookeeper
dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata
在文末插入:
dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

zookeeper相關檔案夾創建
7. 創建所需資料存盤檔案夾(2.00 / 2分)
操作環境: master、slave1、slave2
8. 創建所需日志存盤檔案夾(2.00 / 2分)
操作環境: master、slave1、slave2
cd /usr/zookeeper/zookeeper-3.4.10/
mkdir zkdata zkdatalog
ll

myid修改
9. 資料存盤路徑下創建myid,寫入對應的標識主機服務器序號(2.00 / 2分)
操作環境: master、slave1、slave2
master主機中,設定服務器id為1
slave1設定為2,slave2設定為3
cd zkdata
vim myid
![]()

scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
scp -r /usr/zookeeper/ root@slave1:/usr/
scp -r /usr/zookeeper/ root@slave2:/usr/

source /etc/profile
vim /usr/zookeeper/zookeeper-3.4.10/zkdata/myid


啟動zookeeper服務
10. 啟動zookeeper服務(2.00 / 2分)
操作環境: master、slave1、slave2
cd /usr/zookeeper/zookeeper-3.4.10/
bin/zkServer.sh start

zookeeper狀態查詢
11. 查看zoo集群狀態(5.00 / 5分)
操作環境: master、slave1、slave2
bin/zkServer.sh status



Hadoop完全分布式集群搭建(30 / 30分)
Hadoop是由Java語言撰寫的,在分布式服務器集群上存盤海量資料并運行分布式分析應用的開源框架,其核心部件是HDFS與MapReduce,
- HDFS是一個分布式檔案系統:引入存放檔案元資料資訊的服務器Namenode和實際存放資料的服務器Datanode,對資料進行分布式儲存和讀取,
- MapReduce是一個計算框架:MapReduce的核心思想是把計算任務分配給集群內的服務器里執行,通過對計算任務的拆分(Map計算/Reduce計算)再根據任務調度器(JobTracker)對任務進行分布式計算,
| 組態檔 | 配置物件 | 主要內容 |
|---|---|---|
| hadoop-env.sh | hadoop運行環境 | 用來定義Hadoop運行環境相關的配置資訊; |
| core-site.xml | 集群全域引數 | 定義系統級別的引數,包括HDFS URL、Hadoop臨時目錄等; |
| hdfs-site.xml | HDFS引數 | 定義名稱節點、資料節點的存放位置、文本副本的個數、檔案讀取權限等; |
| mapred-site.xml | MapReduce引數 | 包括JobHistory Server 和應用程式引數兩部分,如reduce任務的默認個數、任務所能夠使用記憶體的默認上下限等; |
| yarn-site.xml | 集群資源管理系統引數 | 配置ResourceManager ,nodeManager的通信埠,web監控埠等; |
Hadoop的配置類是由資源指定的,資源可以由一個String或Path來指定,資源以XML形式的資料表示,由一系列的鍵值對組成,資源可以用String或path命名(示例如下),
- String:指示hadoop在classpath中查找該資源;
- Path:指示hadoop在本地檔案系統中查找該資源,
<configuration>
<property>
<name>fs.default.name</name>
<value>????</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>????</value>
</property>
</configuration>
考核條件如下:
hadoop基礎配置
1. 將Hadoop安裝包解壓到指定路徑/usr/hadoop(安裝包存放于/usr/package/)(1 / 1分)
操作環境: master、slave1、slave2
mkdir -p /usr/hadoop
tar -zxvf /usr/package/hadoop-2.7.3.tar.gz -C /usr/hadoop/

2. 配置Hadoop環境變數,注意生效($HADOOP_HOME)(2 / 2分)
操作環境: master、slave1、slave2
vim /etc/profile
在其中加入:
#hadoop
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin

生效環境變數
source /etc/profile
hadoop-env.sh
3. 配置Hadoop運行環境JAVA_HOME(1 / 1分)
操作環境: master、slave1、slave2
cd /usr/hadoop/hadoop-2.7.3/etc/hadoop/
ll
vim hadoop-env.sh
在28行加入:
export JAVA_HOME=/usr/java/jdk1.8.0_171

core-site.xml
4. 設定全域引數,指定NN的IP為master(映射名),埠為9000(1 / 1分)
操作環境: master、slave1、slave2
5. 指定存放臨時資料的目錄為hadoop安裝目錄下/hdfs/tmp(絕對路徑,下同)(2 / 2分)
操作環境: master、slave1、slave2
編輯core-site.xml
vim core-site.xml
添加以下內容:
<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>

hdfs-site.xml
6. 設定HDFS引數,指定備份文本數量為2(2 / 2分)
操作環境: master、slave1、slave2
7. 設定HDFS引數,指定NN存放元資料資訊路徑為hadoop目錄下/hdfs/name(2 / 2分)
操作環境: master、slave1、slave2
8. 設定HDFS引數,指定DN存放元資料資訊路徑為hadoop安裝目錄下/hdfs/data(2 / 2分)
操作環境: slave1、master、slave2
編輯hdfs-site.xml
vim hdfs-site.xml
添加以下內容:
<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>

yarn-env.sh
9. 設定YARN運行環境JAVA_HOME引數(2 / 2分)
操作環境: master、slave1、slave2
編輯yarn-env.sh
vim yarn-env.sh
插入以下內容:
export JAVA_HOME=/usr/java/jdk1.8.0_171

yarn-site.xml
10. 設定YARN核心引數,指定ResourceManager行程所在主機為master,埠為18141(2 / 2分)
操作環境: master、slave1、slave2
11. 設定YARN核心引數,指定NodeManager上運行的附屬服務為shuffle(2 / 2分)
操作環境: master、slave1、slave2
編輯yarn-site.xml
vim 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>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

mapred-site.xml
12. 設定計算框架引數,指定MR運行在yarn上(2 / 2分)
操作環境: master、slave1、slave2
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
插入以下內容:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

節點檔案設定
13. 設定節點檔案,要求master為主節點; slave1、slave2為子節點(2 / 2分)
操作環境: master、slave1、slave2
vim slaves
修改為:
slave1
slave2

vim master
插入以下內容:
master

namenode格式化
14. 檔案系統格式化(2 / 2分)
操作環境: master
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
scp -r /usr/hadoop/ root@slave1:/usr/
scp -r /usr/hadoop/ root@slave2:/usr/
在slave1和slave2上生效環境變數
source /etc/profile
在master下進行:
hadoop namenode -format

啟動hadoop集群
15. 啟動Hadoop集群(5 / 5分)
操作環境: master、slave1、slave2
僅在master下執行:
cd /usr/hadoop/hadoop-2.7.3/
sbin/start-all.sh

jps檢查狀態:

瀏覽器中輸入:
192.168.111.3:50070

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/323282.html
標籤:其他
上一篇:??Hi! Azure.??從零開始打造一個語音機器人,跟你的電腦聊聊天!??
下一篇:jenkins版本管理

