文章目錄
- 一、Hadoop集群部署模式
- 二、配置固定IP
- 2.1、虛擬機DHCP
- 2.2、步驟
- 三、配置ssh無密碼登錄
- 3.1、SSH
- 3.2、MS架構
- 3.3、配置主節點無密碼登錄
- 四、配置Hadoop集群
- 4.1、上傳并解壓Hadoop安裝包
- 4.2、修改組態檔:hadoop-env.sh
- 4.3、修改組態檔:core-site.xml & hdfs-site.xml
- 4.4、修改組態檔:mapred-site.xml & yarn-site.xml & workers
- 4.5、拷貝Hadoop安裝包
- 4.6、創建資料目錄
- 4.7、格式化HDFS
- 五、Hadoop配置引數介紹
- 六、Hadoop集群啟動與監控
- 6.1、Hadoop集群啟動報錯及解決
- 6.2、查看監控
- 6.3、優化配置
一、Hadoop集群部署模式
Hadoop的安裝部署的模式一共有三種:
- 獨立模式(本地模式) standalone
默認的模式,無需運行任何守護行程(daemon),所有程式都在單個JVM上執行,由于在本機模式下測驗和除錯MapReduce程式較為方便,因此,這種模式適宜用在開發階段,使用本地檔案系統,而不是分布式檔案系統, - 偽分布模式 pseudo distributed
在一臺主機模擬多主機,即Hadoop的守護程式在本地計算機上運行,模擬集群環境,并且是相互獨立的Java行程,在單機模式之上增加了代碼除錯功能,允許檢查記憶體使用情況,HDFS輸入輸出,以及其他的守護行程互動,類似于完全分布式模式,因此,這種模式常用來開發測驗Hadoop程式的執行是否正確, - 完全分布模式 fulldistributed, Hadoop
完全分布模式的守護行程運行在由多臺主機搭建的集群上,是真正的生產環境,
二、配置固定IP
2.1、虛擬機DHCP
DHCP(動態主機配置協議)是一個局域網的網路協議,指的是由服務器控制一段IP地址范圍,客戶機登錄服務器時就可以自動獲得服務器分配的IP地址和子網掩碼,
簡單理解為給其他主機隨機分配IP地址,
2.2、步驟
虛擬機克隆
虛擬機克隆分為“完整克隆”(Full Clone)和“鏈接克隆”(Linked Clone)兩種方式:
- 完全克隆的虛擬機不依賴源虛擬機,是完全獨立的虛擬機,它的性能與被克隆虛擬機相同,
- 鏈接克隆(Linked Clone)依賴于源虛擬機(稱為父虛擬機),由于鏈接克隆是通過父虛擬機的快照創建而成,因此節省了磁盤空間,而且克隆速度非常快,但是克隆后的虛擬機性能會有所下降,
虛擬機查看及修改機器名
注意:克隆機機器名仍是被克隆的機器名
修改機器名指令:
hostnamectl set-hostname master #機器名改為master
虛擬機查看及修改IP
由于IP使用的是DHCP,所以IP可能會是在范圍內的任意值,
進入ifcfg-ens33 修改IP:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
然后我們再修改個東西:
vi /etc/hosts
添加:192.168.128.10 master master.centos.com
修改完后重啟服務器:
service network restart
最后通過:
ping master
出現下面則配置完成:
虛擬機集群
虛擬機克隆node1, node2, node3, 并修改機器名及IP
這里node1為例:
修改機器名:
hostnamectl set-hostname node1 #node2、node3機器名就改為node2、node3
修改IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33

node1、node2、node3都配置完后,在master 、node1、node2、node3分別在在/etc/hosts添加如下:
192.168.128.10 master master.centos.com
192.168.128.11 node1 node1.centos.com
192.168.128.12 node2 node2.centos.com
192.168.128.13 node3 node3.centos.com
如:

完成之后,使用ping指令查看情況
ping node1 #ping node2 ping node3
三、配置ssh無密碼登錄
3.1、SSH
SSH 為 Secure Shell 的縮寫,由 IETF 的網路小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協議,
SSH 是較可靠,專為遠程登錄會話和其他網路服務提供安全性的協議,利用 SSH 協議可以有效防止遠程管理程序中的資訊泄露問題,
SSH最初是UNIX系統上的一個程式,后來又迅速擴展到其他操作平臺,幾乎所有UNIX平臺—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平臺,都可運行SSH,

從客戶端來看,SSH提供兩種級別的安全驗證:
第一種級別(基于口令的安全驗證)
需要帳號和口令,就可以登錄到遠程主機,所有傳輸的資料都會被加密,但是不能保證正在連接的服務器就是你想連接的服務器,可能會有別的服務器在冒充真正的服務器,也就是受到“中間人”這種方式的攻擊,
第二種級別(基于密匙的安全驗證)
需要依靠密匙,也就是必須創建一對密匙,并把公用密匙放在需要訪問的服務器上,如果要連接到SSH服務器上,客戶端軟體就會向服務器發出請求,請求用密匙進行安全驗證,服務器收到請求之后,先在該服務器上的主目錄下尋找公用密匙,然后把它和發送過來的公用密匙進行比較,如果兩個密匙一致,服務器就用公用密匙加密“質詢”(challenge)并把它發送給客戶端軟體,客戶端軟體收到“質詢”之后就可以用私人密匙解密再把它發送給服務器,
3.2、MS架構
Hadoop是M-S架構,即Master-Slave架構,

3.3、配置主節點無密碼登錄
首先,生成密匙
ssh-keygen -t rsa

完成后,拷貝公匙(依次執行)
ssh-copy-id -i ~/.ssh/id_rsa.pub master
ssh-copy-id -i ~/.ssh/id_rsa.pub node1
ssh-copy-id -i ~/.ssh/id_rsa.pub node2
ssh-copy-id -i ~/.ssh/id_rsa.pub node3
驗證(依次執行):
ssh master
ssh node1
ssh node2
ssh node3

四、配置Hadoop集群
Hadoop集群總體規劃
Hadoop集群安裝采用下面步驟:
- 在Master節點:上傳并解壓Hadoop安裝包 ,
- 在Master節點:配置Hadoop所需configuration組態檔,
- 在Master節點:拷貝配置好的Hadoop安裝包到其他節點,
- 在所有節點:創建資料存盤目錄 ,
- 在Master節點:執行HDFS格式化操作,
4.1、上傳并解壓Hadoop安裝包
(這里我已經用Xshell連接到Master結點了)
Hadoop安裝包鏈接:https://pan.baidu.com/s/1teHwnBH2Qm6F7iWZ3q-hSQ
提取碼:cgnb
上傳

完成后用 ls 指令查看
在這里插入圖片描述
解壓
tar -zxf hadoop-2.6.5.tar.gz -C /opt/

4.2、修改組態檔:hadoop-env.sh
首先進入/opt/hadoop-2.6.5/etc/hadoop/目錄
cd /opt/hadoop-3.1.4/etc/hadoop/
配置hadoop-env.sh
vi hadoop-env.sh

4.3、修改組態檔:core-site.xml & hdfs-site.xml
首先進入/opt/hadoop-2.6.5/etc/hadoop/目錄
cd /opt/hadoop-3.1.4/etc/hadoop/
配置core-site.xml
vi core-site.xml
在<configuration> </configuration>間添加如下
<!--hdfs臨時路徑-->
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>
<!--hdfs 的默認地址、埠 訪問地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>

配置hdfs-site.xml
vi hdfs-site.xml
在<configuration> </configuration>間添加如下
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<!-- 副本數-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 是否啟用hdfs權限檢查 false 關閉 -->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<!-- 塊大小,默認位元組, 可使用 k m g t p e-->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/namenode</value>
</property>
<property>
<name>dfs.datanode.name.dir</name>
<value>/data/hadoop/datanode</value>
</property>
4.4、修改組態檔:mapred-site.xml & yarn-site.xml & workers
首先進入/opt/hadoop-2.6.5/etc/hadoop/目錄
cd /opt/hadoop-3.1.4/etc/hadoop/
配置mapred-site.xml
vi mapred-site.xml
在<configuration> </configuration>間添加如下
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/opt/hadoop-3.1.4</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>/opt/hadoop-3.1.4/share/hadoop/mapreduce/*:/opt/hadoop-3.1.4/share/hadoop/mapreduce/lib/*</value>
</property>
配置yarn-site.xml
vi yarn-site.xml
在<configuration> </configuration>間添加如下
<!--集群master-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- NodeManager上運行的附屬服務-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 關閉記憶體檢測-->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
配置workers
vi workers
把里面內容改為
node1
node2
node3
4.5、拷貝Hadoop安裝包
進入/opt目錄,通過指令(依次執行)拷貝到node1、node2、node3目錄
(可以多建立幾個會話,速度會快些)
scp -r hadoop-3.1.4/ node1:/opt/
scp -r hadoop-3.1.4/ node2:/opt/
scp -r hadoop-3.1.4/ node3:/opt/
4.6、創建資料目錄
(依次執行下面陳述句)
mkdir -p /data/hadoop/tmp
mkdir -p /data/hadoop/namenode
ssh node1 "mkdir -p /data/hadoop/tmp & mkdir -p /data/hadoop/datanode"
ssh node2 "mkdir -p /data/hadoop/tmp & mkdir -p /data/hadoop/datanode"
ssh node3 "mkdir -p /data/hadoop/tmp & mkdir -p /data/hadoop/datanode"

4.7、格式化HDFS
進入hadoop安裝下的bin目錄
cd /opt/hadoop-3.1.4/bin/
執行
./hdfs namenode -format demo

格式化完成,集群配置完成
五、Hadoop配置引數介紹
Hadoop集群組態檔主要有:

它們的默認引數配置可以看:
core-default.xml :https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/core-default.xml
hdfs-default.xml:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
mapred-default.xml:https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
yarn-default.xml:https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
六、Hadoop集群啟動與監控
Hadoop集群啟動/關閉采用下面步驟:
啟動:
- 在Master節點:$HADOOP_HOME/sbin/start-dfs.sh ,啟動HDFS ,
- 在Master節點:$HADOOP_HOME/sbin/start-yarn.sh, 啟動YARN,
- 在Master節點:$HADOOP_HOME/bin/mapred --daemon start historyserver,啟動日志服務,
關閉:
- 在Master節點:$HADOOP_HOME/sbin/stop-dfs.sh ,關閉HDFS ,
- 在Master節點:$HADOOP_HOME/sbin/stop-yarn.sh, 關閉YARN,
- 在Master節點:$HADOOP_HOME/bin/mapred --daemon stop historyserver,關閉日志服務,
6.1、Hadoop集群啟動報錯及解決
報錯:

解決方法:
在/opt/hadoop-3.1.4/etc/hadoop/hadoop-env.sh添加如下陳述句
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
然后再拷貝到子節點
scp hadoop-env.sh node1:/opt/hadoop-3.1.4/etc/hadoop/
scp hadoop-env.sh node2:/opt/hadoop-3.1.4/etc/hadoop/
scp hadoop-env.sh node3:/opt/hadoop-3.1.4/etc/hadoop/
修改完后,啟動HDFS可以看到:



啟動YARN

啟動mapred

6.2、查看監控
在瀏覽器輸入網址:192.168.128.10:50070
注意:看服務有沒有開啟;要記得關閉防火墻,否則會出現無法訪問網站
服務已開啟:

查看防火墻狀態:
systemctl status firewalld.service

關閉防火墻:
systemctl stop firewalld.service
永久關閉防火墻:
systemctl disable firewalld.service
同時,我們也要把子節點的防火墻關掉:
ssh node1 "systemctl stop firewalld.service & systemctl disable firewalld.service"
ssh node2 "systemctl stop firewalld.service & systemctl disable firewalld.service"
ssh node3 "systemctl stop firewalld.service & systemctl disable firewalld.service"
最后,我們重新輸入網址就可以看到界面了

6.3、優化配置
在網址輸入:node1:9864 發現無法訪問,因此我們要設定機器名與IP映射
機器名與IP映射設定
打開C:\Windows\System32\drivers\etc\hosts添加如下:
192.168.128.10 master master.centos.com
192.168.128.11 node1 node1.centos.com
192.168.128.12 node2 node2.centos.com
192.168.128.13 node3 node3.centos.com
(如果遇到hosts沒有權限無法更改,參考這篇博客:https://blog.csdn.net/ahmcwt/article/details/109578320)
完成!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/304046.html
標籤:區塊鏈
上一篇:簡易投票系統資料庫設計
