一、主要命令
- 開啟防火墻 sudo ufw enable
- 關(guān)閉防火墻 sudo ufw disable
- 查看防火墻狀態(tài) sudo ufw status
- 修改主機(jī)名 sudo vi /etc/hostname
- 修改映射 sudo vi /etc/hosts (考題)
- 建立文件夾 mkdir 文件夾名字
- 刪除文件夾 rm -rf 遞歸刪除文件夾向下穿透,其下所有文件、文件夾都會被刪除 rm -f 強(qiáng)制刪除文件 rm -r 遞歸刪除文件
- 解壓文件夾 tar -zxvf 文件名 -C ~/解壓到的文件路徑
- 文件重命名 mv 舊文件名 新文件名
- 修改主機(jī)名的文件位置 /etc/hostname
- 使配置環(huán)境變量生效 source ~/.bashrc
- 修改環(huán)境變量的 vi ~/.bashrc
- 查看具體的某個(gè)文件用cat
- 查看目錄用 ls
- 重啟ssh服務(wù)器 service sshd restart
- 啟動ssh sudo service ssh start
- sudo是必須執(zhí)行的命令
- -i 表示覆蓋的意思
二、配置虛擬機(jī)
2.1 設(shè)置靜態(tài)ip
查看當(dāng)前ip:ifconfig
進(jìn)入到netplan文件夾 cd /etc/netplan
查看文件目錄,找到需要修改的文件 ls
進(jìn)行修改ip sudo vi 00-installer-config.yaml
將設(shè)置的網(wǎng)絡(luò)應(yīng)用 sudo netplan apply
再次查看ip ip已經(jīng)更換
2.2 修改主機(jī)名及映射
修改主機(jī)名 sudo vi /etc/hostname 修改后記得重啟
修改映射 sudo vi /etc/hosts (考題)
2.3 修改映射
sudo vi /etc/hosts 將ip地址和主機(jī)名的映射添加到文件中192.168.xx.xxx single
使用文本編輯器打開 C:\Windows\System32\drivers\etc\host 文件并在文件末尾添加以下配置并保存退出 192.168.xx.xxx single
2.4 單機(jī)模式
- 沒有HDFS
- 只能測試MapReduce程序
- MapReduce處理的是本地的Linux的文件數(shù)據(jù)
- 只需要修改hadoop-env.sh配置文件
2.5 偽分布式
- 格式化HDFS的命令: hdfs namenode -format
啟動hadoop集群的命令
- start-all.sh或
- 啟動dfs命令: start-dfs.sh
- 啟動yarn命令: start-yarn.sh
- 啟動yarn之后會有哪些服務(wù)?
ResourceManage(8088)、NodeManager(8042)
- 啟動hdfs之后會有哪些服務(wù)?
Namenode 、 DataNode、 SecondaryNamenode
- 啟動所有服務(wù)的命令: start-all.sh
- 查看yarn、web頁面的端口號
查看yarn的端口號:8088
查看hdfs端口號:50070(通過web看)
-
查看集群啟動進(jìn)程
jps
yarn的中文名(Yet Another Resource Negotiator):資源調(diào)度與分配框架 -
控制從節(jié)點(diǎn)運(yùn)行的服務(wù)器:workers(3.0hadoop)slaves(2.0hadoop)
-
NameNode(名稱結(jié)點(diǎn))的職責(zé)
A. 維護(hù)HDFS集群的目錄樹結(jié)構(gòu):NameNode負(fù)責(zé)存儲和管理文件系統(tǒng)的命名空間,包括目錄、文件和其屬性等信息。
B. 維護(hù)HDFS集群的所有數(shù)據(jù)塊的分布、副本數(shù)和負(fù)載均衡:NameNode記錄每個(gè)數(shù)據(jù)塊的位置和副本信息,并負(fù)責(zé)管理數(shù)據(jù)塊的復(fù)制和遷移,以實(shí)現(xiàn)數(shù)據(jù)的可靠性和負(fù)載均衡。
C. 響應(yīng)客戶端的所有讀寫數(shù)據(jù)請求:NameNode接收客戶端的讀寫請求,并將請求轉(zhuǎn)發(fā)到適當(dāng)?shù)腄ataNode進(jìn)行數(shù)據(jù)讀取或?qū)懭氩僮鳌?br> D.NameNode負(fù)責(zé)管理數(shù)據(jù)塊和處理元數(shù)據(jù)。
- Namenode無法訪問時(shí):
- 默認(rèn)數(shù)據(jù)塊大?。?4mb 128mb 128mb
- 要存下700m需要6塊數(shù)據(jù)塊:一塊為128
- namenode保存的兩個(gè)文件:edits文件(文件的更新操作,記錄操作日志)fsimage文件(修改信息 時(shí)間 控制訪問權(quán)限 hdfs的元信息)
- DataNode(數(shù)據(jù)結(jié)點(diǎn))職責(zé)
1.存儲數(shù)據(jù)塊block
2.根據(jù)namenode的指令對block進(jìn)行創(chuàng)建、復(fù)制、刪除等操作
3.datanode和namenode進(jìn)行心跳通信,接受namenode指令
4.定期向namenode匯報(bào)自身存儲的block列表及健康狀態(tài)
5.負(fù)責(zé)為客戶端發(fā)起的讀寫請求提供服務(wù)
- block是hdfs文件系統(tǒng)中最小的存儲單位
SSH免密登錄原理
非對稱加密算法(rsa)、公鑰加密(給別人)、私鑰解密(給自己)
生成密鑰對:ssh-keygen -t
將公鑰copy給serverB:ssh-copy-id -i
在主機(jī)上登錄子機(jī):ssh 子機(jī)名
2.6 完全分布式
- 分發(fā)命令:scp -r /home/hadoop/hadoop-2.7.4 node2:/home/hadoop
三、初識Hadoop
- 大數(shù)據(jù)的特征:大量、真實(shí)、多樣、低價(jià)值密度、高速
- hadoop起源的三篇論文:NDFS、MapReduce(分而治之,并行計(jì)算)、HDFS(分布式文件系統(tǒng))->源于谷歌的GFS論文
- hadoop處理的是離線數(shù)據(jù)!
- 元數(shù)據(jù)(MetaData):記錄hdfs文件系統(tǒng)的相關(guān)信息,包括文件系統(tǒng)的目錄結(jié)構(gòu) 文件名 文件路徑 文件大小等。
- Hadoop的優(yōu)缺點(diǎn)(簡答題):
高擴(kuò)展性: 增加集群的存儲和計(jì)算能力
低成本: 利用多臺廉價(jià)計(jì)算機(jī),分布式系統(tǒng)處理
高效性: 離線并行動態(tài)計(jì)算,提高計(jì)算效率
高可靠性: 維護(hù)數(shù)據(jù)副本(3個(gè)),可有效防止數(shù)據(jù)丟失
高容錯(cuò)性:可轉(zhuǎn)移到其他計(jì)算機(jī)上運(yùn)行
缺點(diǎn)
不適合處理小文件:為了解決大型數(shù)據(jù)集的處理問題
無法實(shí)時(shí)計(jì)算:核心是執(zhí)行離線計(jì)算的引擎
安全性較低存儲和網(wǎng)絡(luò)傳輸方面缺乏對數(shù)據(jù)的加密
場景:
適合:大數(shù)據(jù)分析、離線分析
不適合:少量數(shù)據(jù)、復(fù)雜數(shù)據(jù)、在線分析
- HDFS是Hadoop生態(tài)圈的基石,主要負(fù)責(zé)hadoop集群數(shù)據(jù)的存儲和讀取
- 大數(shù)據(jù)處理的意義:對未來事物發(fā)展規(guī)律做出預(yù)測,對之前的數(shù)據(jù)進(jìn)行歸納和總結(jié)。
- 第二名稱節(jié)點(diǎn)的作用:輔助namenode合并fsimage文件和edits文件 將合并結(jié)果發(fā)送給namenode,幫助主節(jié)點(diǎn)namenode進(jìn)行元數(shù)據(jù)備份和恢復(fù)
四、三種模式的區(qū)別
4.1、單機(jī)模式與偽分布式模式的區(qū)別
單機(jī)模式
運(yùn)行在單個(gè)計(jì)算機(jī)中
所有Hadoop組件(如HDFS和YARN)都在本地運(yùn)行,并且沒有網(wǎng)絡(luò)通信
在單機(jī)模式下,Hadoop使用本地文件系統(tǒng)來存儲數(shù)據(jù)。
偽分布式模式
Hadoop在一臺計(jì)算機(jī)上模擬了一個(gè)分布式環(huán)境。
Hadoop服務(wù)(如HDFS和YARN)運(yùn)行在單個(gè)計(jì)算機(jī)上,但它們通過網(wǎng)絡(luò)進(jìn)行通信和協(xié)作。
文件系統(tǒng)被配置為HDFS,而不是本地文件系統(tǒng),數(shù)據(jù)被存儲在HDFS中。
4.2、特點(diǎn)
4.3、配置文件的差異
4.3.1、單機(jī)模式
4.3.2、偽分布式模式
4.3.3、完全分布式模式
五、問答題
(1)ifconfig
(2)scp -r /home/hadoop/hadoop-2.7.4 node2:/home/hadoop
(3)hdfs namenode -format
(4)start-dfs.sh 和 start-yarn.sh
(1)hdfs dfs -mkdir /hd123
(2)hdfs dfs -touch data.txt
(3)hdfs dfs -ls /hd123
(4)hdfs dfs -appendToFile test.txt /hd123/data.txt
(5)hdfs dfs -cat /hd2112054139/data.txt
(6)hdfs dfs -get /hd2112054139/data.txt
根據(jù)HDFS的塊大小為128MB,存儲300MB的文件需要多少個(gè)數(shù)據(jù)塊。
計(jì)算方法如下:
文件大小 / 塊大小 = 數(shù)據(jù)塊數(shù)量
300MB / 128MB ≈ 2.34
根據(jù)向上取整規(guī)則,需要3個(gè)數(shù)據(jù)塊來存儲300MB的文件。
所以,需要3個(gè)數(shù)據(jù)塊來存儲300MB的文件。
六、shell訪問hdfs(通過HDFS*Shell命令)
- 格式化HDFS
hdfs namenode -format - 創(chuàng)建目錄
hdfs -dfs -mkdir /hd2112054139 - 級聯(lián)的創(chuàng)建目錄
hdfs dfs -mkdir -p /hd2112054139/a/b/c 使用-p時(shí),如果父目錄不存在,會自動創(chuàng)建 - 查看目錄
hdfs dfs -ls /hd211205139 - 級聯(lián)的查看目錄
hdfs dfs -ls -R /hd2112054139 - 將本地文件上傳到HDFS中:hdfs dfs -put 文件名 文件目錄 或 hdfs dfs -copyFromLocal b.txt /usr/opt/data
- 將本地文件下載(復(fù)制):hdfs dfs -get 文件目錄 本地文件目錄
- 追加數(shù)據(jù)
-appendToFile命令:將所有給定本地文件的內(nèi)容追加到hdfs文件,hdf文件不存在,則創(chuàng)建該文件
hdfs dfs -appendToFile d.txt /usr/opt/data/a.txt
- 在hdfs中文件復(fù)制到同一個(gè)目錄下:hdfs dfs -cp /data1.txt /data2.txt
- 查看文件夾大?。篽dfs dfs -du -s 文件夾名
- 查看文件大小:hdfs dfs -du 文件名
- hdfs中刪除文件:hdfs dfs -rm -r 文件路徑名
- hdfs中統(tǒng)計(jì)文件:hdfs dfs -count 文件路徑名(顯示:目錄個(gè)數(shù)、文件個(gè)數(shù)、文件總計(jì)大小、輸入路徑)
- 合并目錄下的文件并下載到本地:hdfs dfs -getmerge /hd123 ~/input/merge.txt,
并在本地查看內(nèi)容:cd 本地文件名 cat merge.txt - 查看文件內(nèi)容:
#-cat命令:將文件內(nèi)容顯示出來(適合小文件)
hdfs dfs -cat /usr/opt/data/a.txt
#-haed命令:查看文件前1KB的內(nèi)容
hdfs dfs -head /usr/opt/data/a.txt
#-tail命令:查看文件最后1KB的內(nèi)容
hdfs dfs -tail /usr/opt/data/a.txt
#-tail -f命令:可以動態(tài)顯示文件中追加的內(nèi)容
#在Linux系統(tǒng)中
tail -f 1.txt
#hdfs
hdfs dfs -tail -f /usr/opt/data/a.txt
- HDFS中block默認(rèn)保存3份
- 一個(gè)datanode上只有一個(gè)數(shù)據(jù)塊的備份
6.1、問答題
1.根據(jù)要求寫出HDFS shell命令
- 在HDFS上創(chuàng)建名為test的目錄(此目錄在主目錄下)
hdfs dfs -mkdir ~/test - 將本地的文件file上傳至test目錄下
hdfs dfs -put /input/file.txt /test - 將本地的文件file內(nèi)容追加至test目錄下的file1.txt中
hdfs dfs -appendToFile file.txt /test/file1.txt - 查看test的目錄信息.
hdfs dfs -ls /test
2.這三臺操作系統(tǒng)為Ubutun 18.04機(jī)器(機(jī)器名分別是master(192.168.22.101)、slave(192.168.30.102)、slave2(192.168.22.103))部署Hadoop完全分布式環(huán)境,master上位Namenode節(jié)點(diǎn),三臺機(jī)器已經(jīng)實(shí)現(xiàn)免密登錄。實(shí)現(xiàn)下面功能需要輸入什么Linux命令或者操作進(jìn)行什么操作?
- 在主機(jī)master生成密鑰的命令是什么?
ssh-keygen -t - 從master,通過ssh登錄到slave2
ssh slave2 - 在master上,格式化HDFS
hdfs namenode -format’ - 啟動YARN
start-yarn.sh - 該Hadoop集群運(yùn)行時(shí),使用哪兒個(gè)命令查看集群啟動進(jìn)程
jps
6.2、注意
hdfs dfs -put ~/input/file.txt /test 和 hdfs dfs -put /input/file.txt /test 的區(qū)別在于文件的來源路徑。
hdfs dfs -put ~/input/file.txt /test 中的/input/file.txt表示當(dāng)前用戶的主目錄下的input/file.txt文件。波浪號()在這里代表當(dāng)前用戶的主目錄。
hdfs dfs -put /input/file.txt /test中的/input/file.txt表示根目錄下的input/file.txt文件。
所以,兩個(gè)命令的主要區(qū)別在于文件來源的路徑。第一個(gè)命令將從當(dāng)前用戶的主目錄下復(fù)制file.txt文件到HDFS中的/test目錄,而第二個(gè)命令將從根目錄下的/input目錄中復(fù)制file.txt文件到HDFS中的/test目錄。
七、Zookeeper
- namenode存儲的元數(shù)據(jù)的信息有哪些?
1.文件和目錄的命名空間:NameNode維護(hù)了整個(gè)文件系統(tǒng)的目錄結(jié)構(gòu),包括文件和目錄的名稱、層次結(jié)構(gòu)和路徑。
2. 文件的塊信息:NameNode記錄了文件被分成的數(shù)據(jù)塊(block)的信息,包括每個(gè)數(shù)據(jù)塊的ID、大小和位置。
3. 數(shù)據(jù)塊的副本位置:NameNode維護(hù)了每個(gè)數(shù)據(jù)塊的副本位置信息,包括哪些數(shù)據(jù)節(jié)點(diǎn)(DataNode)存儲了該數(shù)據(jù)塊的副本。
4. 文件和目錄的權(quán)限和屬性:NameNode存儲了文件和目錄的權(quán)限(例如所有者、組、權(quán)限模式)以及其他屬性(例如創(chuàng)建時(shí)間、修改時(shí)間)。
5. 數(shù)據(jù)節(jié)點(diǎn)的健康狀態(tài):NameNode跟蹤和管理數(shù)據(jù)節(jié)點(diǎn)的健康狀態(tài),包括數(shù)據(jù)節(jié)點(diǎn)的存活狀態(tài)、容量利用率等。
6. 數(shù)據(jù)節(jié)點(diǎn)的心跳和塊報(bào)告:NameNode接收來自數(shù)據(jù)節(jié)點(diǎn)的心跳信號和塊報(bào)告,用于監(jiān)控?cái)?shù)據(jù)節(jié)點(diǎn)的狀態(tài)和數(shù)據(jù)塊的完整性。
- hdfs的聯(lián)邦機(jī)制解決的問題是什么?
- 存儲容量擴(kuò)展:HDFS聯(lián)邦機(jī)制允許將多個(gè)獨(dú)立的HDFS集群組合成一個(gè)邏輯上的大型文件系統(tǒng)。每個(gè)集群稱為一個(gè)命名空間,多個(gè)命名空間可以通過聯(lián)邦機(jī)制進(jìn)行組合,從而擴(kuò)展整個(gè)文件系統(tǒng)的存儲容量。
- 負(fù)載均衡:通過聯(lián)邦機(jī)制,HDFS可以將數(shù)據(jù)塊分布在多個(gè)命名空間中,從而實(shí)現(xiàn)負(fù)載均衡。不同的命名空間可以部署在不同的物理節(jié)點(diǎn)上,可以根據(jù)節(jié)點(diǎn)的負(fù)載情況來動態(tài)地分配數(shù)據(jù)塊,使得整個(gè)文件系統(tǒng)的負(fù)載更加均衡。
- 故障容錯(cuò):聯(lián)邦機(jī)制提供了更高的容錯(cuò)性。如果一個(gè)命名空間發(fā)生故障,其他命名空間仍然可以正常工作,因?yàn)閿?shù)據(jù)塊可以在多個(gè)命名空間中進(jìn)行備份。
- 簡化管理:通過聯(lián)邦機(jī)制,可以將多個(gè)獨(dú)立的HDFS集群管理為一個(gè)邏輯實(shí)體,簡化了管理和維護(hù)工作。管理員可以對整個(gè)聯(lián)邦文件系統(tǒng)進(jìn)行統(tǒng)一的管理操作,而無需逐個(gè)管理每個(gè)獨(dú)立的集群。
- zookeeper的一個(gè)應(yīng)用場景是高可用機(jī)制。
- 啟動zookeeper的命令:zkServer.sh start
- 進(jìn)入zookeeper客戶端的命令:zkCli.sh
- 創(chuàng)建持久節(jié)點(diǎn):create /myNode myData
- 創(chuàng)建順序節(jié)點(diǎn):create -s /myNode myData
- hadoop的聯(lián)邦機(jī)制用不到zookeeper
- zookeeper只有1個(gè)leader,只要有l(wèi)eader就會有單點(diǎn)故障
- zookeeper的follower可以參與投票。
- 在ZooKeeper中,主要有三種角色:Leader(領(lǐng)導(dǎo)者)、Follower(跟隨者)和Observer(觀察者)。
- leader可以處理事務(wù)請求。
- Follower節(jié)點(diǎn)還參與Leader選舉過程,并在Leader節(jié)點(diǎn)故障時(shí)選舉新的Leader。
- Observer節(jié)點(diǎn)可以接收客戶端的讀請求,并將寫請求轉(zhuǎn)發(fā)給Leader節(jié)點(diǎn)。與Follower節(jié)點(diǎn)不同的是,Observer節(jié)點(diǎn)不參與投票和決策,因此對集群的性能沒有負(fù)面影響
- 客戶端可以連接到zookeeper集群中任一一臺機(jī)器
- zookeeper服務(wù)端默認(rèn)的對外服務(wù)端口是2181
- zookeeper生產(chǎn)環(huán)境一般采用奇數(shù)臺(且大于1)臺機(jī)器組成集群。(投票大于一半時(shí))
- tickTime指的是心跳時(shí)間的間隔
- hdfs高可用集群中有一個(gè)active狀態(tài)的namenode
- initLimit指的是LF初始通信時(shí)限 集群中的follower服務(wù)器 (F)與leader服務(wù)器 (L)之間 初始連接 時(shí)能容忍的最多心跳數(shù)(tickTime的數(shù)量)
- zookeeper的節(jié)點(diǎn)類型有臨時(shí)節(jié)點(diǎn)、持久節(jié)點(diǎn)、順序節(jié)點(diǎn)
- 持久節(jié)點(diǎn)和臨時(shí)節(jié)點(diǎn)的區(qū)別?
持久節(jié)點(diǎn)(Persistent Node):文章來源:http://www.zghlxwxcb.cn/news/detail-738971.html
- 持久節(jié)點(diǎn)在創(chuàng)建后將一直存在,直到顯式刪除。
- 即使創(chuàng)建該節(jié)點(diǎn)的客戶端斷開連接,持久節(jié)點(diǎn)也會一直保留在ZooKeeper中。
- 其數(shù)據(jù)和狀態(tài)會被持久化存儲,不受客戶端連接狀態(tài)的影響。
- 其子節(jié)點(diǎn)(如果有)也是持久節(jié)點(diǎn),需要用戶手動刪除。
臨時(shí)節(jié)點(diǎn)(Ephemeral Node):文章來源地址http://www.zghlxwxcb.cn/news/detail-738971.html
- 臨時(shí)節(jié)點(diǎn)在創(chuàng)建它的客戶端與ZooKeeper之間的連接斷開后會被自動刪除。
- 當(dāng)創(chuàng)建該節(jié)點(diǎn)的客戶端與ZooKeeper斷開連接時(shí),臨時(shí)節(jié)點(diǎn)會被刪除,無論是客戶端主動斷開還是發(fā)生了網(wǎng)絡(luò)故障。
- 臨時(shí)節(jié)點(diǎn)通常用于表示臨時(shí)性的狀態(tài)或臨時(shí)會話。
- 其數(shù)據(jù)和狀態(tài)不會被持久化存儲,只存在于客戶端連接期間。
- 其子節(jié)點(diǎn)(如果有)也是臨時(shí)節(jié)點(diǎn),并且在父節(jié)點(diǎn)被刪除時(shí)一同被刪除。
7.1、znode
- znode的類型在創(chuàng)建時(shí)被指定,一旦創(chuàng)建就無法改變
- znode主要有兩種類型,分別是臨時(shí)節(jié)點(diǎn)和永久節(jié)點(diǎn)
- zonde保存的數(shù)據(jù)不能超過1MB.
- zookeeper種的每個(gè)znode都有一個(gè)唯一的路徑標(biāo)識。
- 能改變zookeeper服務(wù)器狀態(tài)的操作稱為事務(wù)的操作。
- 2888是ZooKeeper中用于Leader選舉通信和協(xié)調(diào)的端口,每個(gè)服務(wù)器都可以配置一個(gè)唯一的2888端口,用于與其他服務(wù)器建立連接和進(jìn)行通信。
八、Hive
到了這里,關(guān)于Hadoop相關(guān)知識點(diǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!