日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop集群管理与NFS网关

發(fā)布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop集群管理与NFS网关 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

一.Hadoop集群管理

1.訪問集群文件系統(tǒng)

2.重新初始化集群

3.增加新的節(jié)點

4.修復(fù)節(jié)點

5.刪除節(jié)點

二.NFS網(wǎng)關(guān)

1.NFS網(wǎng)關(guān)概述

2.NFS網(wǎng)關(guān)架構(gòu)圖

3.HDFS用戶授權(quán)

4.NFS網(wǎng)關(guān)服務(wù)搭建概述

5.配置NFS網(wǎng)關(guān)

6.mount驗證


一.Hadoop集群管理

集群架構(gòu)圖例

1.訪問集群文件系統(tǒng)

web頁面查看

  • 能看,能讀,不能寫入

命令行

  • 能看,能讀,不能寫入

~]# /usr/local/hadoop/bin/hadoop fs -命令 # 該命令與shell的命令類似# 示例 ~]# cd /usr/local/hadoop ~]# /usr/local/hadoop/bin/hadoop fs -mkdir /input mkdir: Cannot create directory /input. Name node is in safe mode. # 手動命令來離開安全模式 ~]# ./bin/hadoop dfsadmin -safemode leave DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it.Safe mode is OFF # 創(chuàng)建目錄 ~]# ./bin/hadoop fs -mkdir /input ~]# ./bin/hadoop fs -mkdir /aaa ~]# ./bin/hadoop fs -ls / Found 2 items drwxr-xr-x - root supergroup 0 2022-03-12 15:39 /aaa drwxr-xr-x - root supergroup 0 2022-03-12 15:39 /input # 刪除目錄 ~]#./bin/hadoop fs -rmdir /aaa # 添加文件 ~]# ./bin/hadoop fs -touchz /ceishi.txt # 上傳密碼文件 ~]# ./bin/hadoop fs -put /etc/passwd /mima # 把文件系統(tǒng)上的input目錄下載下來 ~]# ./bin/hadoop fs -get /input /root/input # 刪除非空目錄和文件(遞歸刪除用-rm -r) ~]# ./bin/hadoop fs -rm -r /input

用集群分析數(shù)據(jù)

## 首先要把文件上傳到hdfs # 創(chuàng)建文件夾 ~]# cd /usr/local/hadoop ~]# ./bin/hadoop fs -mkdir /input # 把要分析的文件上傳至hdfs目錄中 ~]# ./bin/hadoop fs -put *.txt /input/ ~]# ./bin/hadoop fs -ls /input Found 3 items -rw-r--r-- 2 root supergroup 86424 2022-03-12 16:17 /input/LICENSE.txt -rw-r--r-- 2 root supergroup 14978 2022-03-12 16:17 /input/NOTICE.txt -rw-r--r-- 2 root supergroup 1366 2022-03-12 16:17 /input/README.txt## 然后分析的jar包程序,在每個節(jié)點上要有(這里用默認(rèn)的,如果有其他的在每個節(jié)點上也要拷貝一份) ~]# ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /input /output# /input是文件系統(tǒng)上的,/output是文件系統(tǒng)上的

?

?web頁面查看(不能直接查看,要下載下來)

?

2.重新初始化集群

警告:該方法會丟失所有數(shù)據(jù)

1、停止集群 /usr/local/hadoop/sbin/stop-all.sh ?

2、刪除所有節(jié)點的 /var/hadoop/* ?

3、在 hadoop1 上重新格式化 /usr/local/hadoop/bin/hdfs namenode -format ?

4、啟動集群 /usr/local/hadoop/sbin/start-all.sh

~]# /usr/local/hadoop/sbin/stop-all.sh ~]# for i in hadoop1 node-{0001..0003};do ssh ${i} 'rm -rf /var/hadoop/*'; done ~]# /usr/local/hadoop/bin/hdfs namenode -format ~]# /usr/local/hadoop/sbin/start-all.sh

3.增加新的節(jié)點

●HDFS 新增節(jié)點

-啟動一個新的系統(tǒng),設(shè)置SSH免密碼登錄

-在所有節(jié)點修改/etc/hosts, 增加新節(jié)點的主機(jī)信息

-安裝java運行環(huán)境(java-1. 8.0-open jdk-deve 1)

-拷貝NamNode的/usr/ local/hadoop到新節(jié)點

-同步配置文件到所有機(jī)器

為防止當(dāng)多個節(jié)點同時寫入數(shù)據(jù)而導(dǎo)致新增節(jié)點死機(jī),所以這邊要設(shè)置一個帶跨(防止ddos攻擊)

●在新節(jié)點啟動DataNode

~]# /usr/local/hadoop/sbin/hadoop-daemon.sh start datanode

●設(shè)置帶寬,平衡數(shù)據(jù)

~]# /usr/local/hadoop/bin/hdfs dfsadmin -setBalancerBandwidth500000000 # 500000000五百兆 ~]# /usr/local/hadoop/sbin/start-balancer.sh # 啟動數(shù)據(jù)平衡,當(dāng)數(shù)據(jù)丟失時,會自動從其他服務(wù)上找回

●查看狀態(tài)

~]# /usr/local/hadoop/bin/hdfs dfsadmin -report

由于nodemanager不負(fù)責(zé)保存數(shù)據(jù),所以增加節(jié)點相對簡單,環(huán)境配置與datanode-致

●增加節(jié)點(newnode)

~]# /usr/local/hadoop/sbin/yarn-daemon.sh start nodemanager

●查看節(jié)點(ResourceManager)

~]# /usr/local/hadoop/bin/yarn node -list

準(zhǔn)備主機(jī)

主機(jī)IP地址配置
newnode192.168.1.54最低配置2核2G

新節(jié)點安裝

在 hadoop1 上執(zhí)行

~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.1.54 ~]# vim /etc/hosts 192.168.1.50 hadoop1 192.168.1.51 node-0001 192.168.1.52 node-0002 192.168.1.53 node-0003 192.168.1.54 newnode ~]# for i in node-{0001..0003} newnode;do rsync -av /etc/hosts ${i}:/etc/ done ~]# rsync -aXSH /usr/local/hadoop newnode:/usr/local/

在 newnode 節(jié)點執(zhí)行

# 安裝java的環(huán)境 ~]# yum install -y java-1.8.0-openjdk-devel # 刪除日志,方便后期排錯 ~]# cd /usr/local/hadoop && rm -rf logs/* # 啟動數(shù)據(jù)節(jié)點 ~]# /usr/local/hadoop/sbin/hadoop-daemon.sh start datanode # 設(shè)置同步帶跨 ~]# /usr/local/hadoop/bin/hdfs dfsadmin -setBalancerBandwidth 500000000 # 啟動數(shù)據(jù)平衡 ~]# /usr/local/hadoop/sbin/start-balancer.sh # 設(shè)置master可以自動管理新增節(jié)點,不設(shè)置也可以手動管理(這里不設(shè)置自動管理,)# nodemanager提供計算能力的,數(shù)據(jù)來源文件系統(tǒng),利用cpu來計算,本身不存儲如何數(shù)據(jù)的 ~]# /usr/local/hadoop/sbin/yarn-daemon.sh start nodemanager ~]# jps 1186 DataNode 1431 NodeManager 1535 Jps

如果要設(shè)置自動管理則需要在這里HDFS添加slave管理主機(jī)

驗證集群(hadoop1上執(zhí)行)

~]# /usr/local/hadoop/bin/hdfs dfsadmin -report ... ... ------------------------------------------------- Live datanodes (4): ~]# /usr/local/hadoop/bin/yarn node -list ... ... Total Nodes:4

4.修復(fù)節(jié)點

●修復(fù)節(jié)點比較簡單,步驟與增加節(jié)點一-致

????????-注意:新節(jié)點的ip和主機(jī)名要與損壞節(jié)點的一致

●如果舊節(jié)點數(shù)據(jù)丟失,新節(jié)點可以自動恢復(fù)數(shù)據(jù)

●上線以后會自動恢復(fù)數(shù)據(jù),如果數(shù)據(jù)量非常巨大,需要一段時間

? ?●修復(fù)節(jié)點的過程與新增節(jié)點一致

5.刪除節(jié)點

為了測試刪除節(jié)點數(shù)據(jù),這邊準(zhǔn)備點數(shù)據(jù),并上傳文件系統(tǒng)

~]# cat hadoop-2.7.7.tar.gz >> mydata # 上傳數(shù)據(jù)之前先查看數(shù)據(jù)占比 ~]# /usr/local/hadoop/bin/hdfs dfsadmin -report ~]# /usr/local/hadoop/bin/hadoop fs -put mydata / ~]# /usr/local/hadoop/bin/hadoop fs -ls / Found 2 items -rw-r--r-- 2 root supergroup 1093602605 2022-03-12 18:00 /mydata

配置數(shù)據(jù)遷移 hdfs-site.xml(hadoop1上做,不需要同步)

# 在文件中添加主機(jī)清單文件 ~]# vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml<property><name>dfs.hosts.exclude</name><value>/usr/local/hadoop/etc/hadoop/exclude</value></property>

配置排除主機(jī)列表,并遷移數(shù)據(jù)(hadoop1上執(zhí)行)

# 在刪除配置文件中添加 newnode,默認(rèn)文件不存在 ~]# echo newnode >/usr/local/hadoop/etc/hadoop/exclude # 遷移數(shù)據(jù)前查看 ~]# /usr/local/hadoop/bin/hdfs dfsadmin -report | grep Decommission Decommission Status : Normal Decommission Status : Normal Decommission Status : Normal Decommission Status : Normal# 遷移數(shù)據(jù) ~]# /usr/local/hadoop/bin/hdfs dfsadmin -refreshNodes # 查看狀態(tài),僅當(dāng)節(jié)點狀態(tài)為 Decommissioned 時候才可以下線 ~]# /usr/local/hadoop/bin/hdfs dfsadmin -report

數(shù)據(jù)的三種狀態(tài)

Normal:正常狀態(tài)

Decommissioned in Progress:數(shù)據(jù)正在遷移

Decommissioned:數(shù)據(jù)遷移完成

注意:僅當(dāng)狀態(tài)變成Decommissioned 才能down機(jī)下線

下線節(jié)點(注:newnode執(zhí)行)

~]# /usr/local/hadoop/sbin/hadoop-daemon.sh stop datanode ~]# /usr/local/hadoop/sbin/yarn-daemon.sh stop nodemanager # 注:下線需要30~40分鐘,需要這么久主要是因為遷移數(shù)據(jù)以及保持服務(wù)的穩(wěn)定性

統(tǒng)計表

節(jié)點名上傳前上傳后下線newnode后
node-128k516M516M
node-228k516.04M664.15 M
node-328k793.15M922.16 M
newnode24k277.13M

下線之后還可以保存4~8小時

二.NFS網(wǎng)關(guān)

1.NFS網(wǎng)關(guān)概述

●NFS網(wǎng)關(guān)的用途

????????-用戶可以通過操作系統(tǒng)兼容的本地NFSv3客戶端來瀏覽HDFS文件系統(tǒng)

????????-用戶可以通過掛載點直接流化數(shù)據(jù)

????????-允許HDFS作為客戶端文件系統(tǒng)的一部分被掛載

????????-支持文件附加,但是不支持隨機(jī)寫(nolock)

????????- NFS網(wǎng)關(guān)目前只支持NFSv3和TCP協(xié)議(vers=3, proto=tcp)

可以把HDFS mount成一個文件夾

● 代理用戶

-代理用戶是NFS網(wǎng)關(guān)訪問集群的授權(quán)用戶

????????在NameNode和NFSGW上添加代理用戶

????????代理用戶的UID,GID, 用戶名必須完全相同

-如果因特殊原因用戶UID、GID、 用戶名不能保持- -致,需要我們配置nfs. map的靜態(tài)映射關(guān)系

-例如:

uid 10 100 # Map the remote UID 10 to the local UID 100gid 11 101 # Map the remote GID 11 to the local GID 101

2.NFS網(wǎng)關(guān)架構(gòu)圖

首先客戶端mount掛載NFS,當(dāng)是讀請求的時候HDFS直接到后臺集群查找并返回值;當(dāng)是寫的時候會在nfs創(chuàng)建一個臨時文件夾,在調(diào)用HDFS切塊最后寫入集群

準(zhǔn)備主機(jī)

主機(jī)IP地址配置
nfsgw192.168.1.55最低配置1核1G

3.HDFS用戶授權(quán)

hadoop1與nfsgw都要添加用戶

## hadoop1機(jī)器 ~]# groupadd -g 800 nfsuser ~]# useradd -g 800 -u 800 -r -d /var/hadoop nfsuser## nfsgw機(jī)器 ~]# groupadd -g 800 nfsuser ~]# useradd -g 800 -u 800 -r -d /var/hadoop nfsuser

HDFS集群授權(quán)

## hadoop1機(jī)器 # 文件全部內(nèi)容,下面兩配置是nfs的 ~]# vim /usr/local/hadoop/etc/hadoop/core-site.xml <configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop1:9000</value></property><property><name>hadoop.tmp.dir</name><value>/var/hadoop</value></property><property><name>hadoop.proxyuser.nfsuser.groups</name><value>*</value> # nfs所在組*全部授權(quán)</property><property><name>hadoop.proxyuser.nfsuser.hosts</name><value>*</value> # nfs所在組*全部授權(quán)</property> </configuration> # 停止集群,同步數(shù)據(jù),為了排錯方便可以把日志清空 ~]# /usr/local/hadoop/sbin/stop-all.sh ~]# rm -rf /usr/local/hadoop/logs/* ~]# for i in node-{0001..0003};dorsync -avXSH /usr/local/hadoop/etc ${i}:/usr/local/hadoop/done # 再次啟動,nodeManager可以不啟動,這邊為了測試方便 ~]# /usr/local/hadoop/sbin/start-dfs.sh ~]# jps 5925 NameNode 6122 SecondaryNameNode 6237 Jps # 驗證集群 ~]# /usr/local/hadoop/bin/hdfs dfsadmin -report ... ... ------------------------------------------------- Live datanodes (3):

4.NFS網(wǎng)關(guān)服務(wù)搭建概述

  • nfsgw網(wǎng)關(guān)服務(wù)

- portmap服務(wù)(與系統(tǒng)rpcbind沖突)- nfs3服務(wù)(與系統(tǒng)nfs沖突)

-卸載NFSGW的rpcbind與nfs-utils

yum remove y rpcbind nfs-utils
  • NFS網(wǎng)關(guān)具有雙重角色,他既是一-個HDFS的客戶端程序,又是一個NFS服務(wù)器,所以NFS網(wǎng)關(guān)必須能訪問到集群中的所有節(jié)點,配置/etc/hosts

  • NFS網(wǎng)關(guān)配置

-NFS網(wǎng)關(guān)同樣需要Hadoop的相關(guān)配置文件

-同步NameNode的hadoop安裝目錄到NFSGW

rsync -aXSH --delete hadoop1:/usr/local/hadoop /usr/local/

-安裝JAVA運行環(huán)境(java-1.8.0-openjdk-devel)

yum install -y java-1.8.0-openjdk-devel

nfs. exports授權(quán)

  • nfs. exports. allowed. hosts

-默認(rèn)情況下,export可 以被任何客戶端掛載。為了更好的控制訪問,可以設(shè)置屬性。值和字符串對應(yīng)機(jī)器名和訪問策略,通過空格來分割。機(jī)器名的格式可以是單一的主機(jī)、Java的正則表達(dá)式或者IPv4地址

-使用rw或ro可以指定導(dǎo)出目錄的讀寫或只讀權(quán)限。

-默認(rèn)設(shè)置為只讀權(quán)限

  • nfs. dump臨時目錄配置

- nfs. dump. dir

-用戶需要更新文件轉(zhuǎn)儲目錄參數(shù)。NFS客 戶端經(jīng)常重新安排寫操作,順序的寫操作會隨機(jī)到達(dá)NFS網(wǎng)關(guān)。這個目錄常用于臨時存儲無序的寫操作。對于每個文件,無序的寫操作會在他們積累在內(nèi)存中超過一-定閾值(如,1M) 時被轉(zhuǎn)儲。需要確保有足夠的空間的目錄,先使用內(nèi)存緩存,當(dāng)內(nèi)存不足時使用硬盤

- NFS網(wǎng)關(guān)在設(shè)置該屬性后需要重啟

5.配置NFS網(wǎng)關(guān)

~]# yum remove -y rpcbind nfs-utils ~]# vim /etc/hosts 192.168.1.50 hadoop1 192.168.1.51 node-0001 192.168.1.52 node-0002 192.168.1.53 node-0003 192.168.1.55 nfsgw ~]# yum install -y java-1.8.0-openjdk-devel # 這邊因為集群以及搭建好了nfs默認(rèn)安裝的,這邊直接拷貝 ~]# rsync -aXSH --delete hadoop1:/usr/local/hadoop /usr/local/# 這邊以及配好了三個參數(shù)(文件系統(tǒng),指定副本數(shù),刪除節(jié)點文件) ~]# vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml <configuration><property><name>dfs.namenode.http-address</name><value>hadoop1:50070</value></property><property><name>dfs.namenode.secondary.http-address</name><value>hadoop1:50090</value></property><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.hosts.exclude</name><value>/usr/local/hadoop/etc/hadoop/exclude</value></property><property><name>nfs.exports.allowed.hosts</name><value>* rw</value> # 指定/目錄掛載以讀寫來執(zhí)行,類似于目錄/etc/exports(/ *(rw))</property><property><name>nfs.dump.dir</name><value>/var/nfstmp</value> # 當(dāng)內(nèi)存不足時可以放到這個臨時文件中</property> </configuration> # 創(chuàng)建轉(zhuǎn)儲目錄,并設(shè)置所有者,所有組 ~]# mkdir /var/nfstmp ~]# chown nfsuser.nfsuser /var/nfstmp # 由于 /usr/local/hadoop/logs也是root權(quán)限的,nfsuser用戶不能把日志寫進(jìn)去,這里也要設(shè)置權(quán)限,這里由于rpcbind啟動要root用戶,就是把文件設(shè)置成nfsuser用戶,當(dāng)啟動時也會自動改回來的 ~]# rm -rf /usr/local/hadoop/logs/* ~]# setfacl -m user:nfsuser:rwx /usr/local/hadoop/logs ~]# getfacl /usr/local/hadoop/logs

啟動portmap

注意:

  • 啟動portmap需要使用root用戶

  • 啟動nfs3需要使用core-site里面設(shè)置的代理用戶

  • 必須為代理用戶授權(quán)

-/var/nfstmp不授權(quán)上傳文件會出錯 -/usr/local/hadoop/logs不授權(quán)看不到報錯日志

  • 必須先啟動portmap之后再啟動nfs3

  • 如果portmap重啟了,在重啟之后nfs3也必須重啟

  • 啟動NFS網(wǎng)關(guān)

# 在nfs機(jī)器上 ~]# cd /usr/local/hadoop/ # 啟動portmap ~]# ./sbin/hadoop-daemon.sh --script ./bin/hdfs start portmap## 測試 # 監(jiān)聽端口111與進(jìn)程 ~]# ss -nulpt | grep 111 ~]# jps 1376 Portmap 1416 Jps # 隨便找一臺同網(wǎng)段的主機(jī) ~]# yum -y install rpcbind~]# rpcinfo -p nfs的ipprogram vers proto port service100000 2 udp 111 portmapper100000 2 tcp 111 portmapper# 刪除臨時文件 ~]# rm -rf /tmp/.hdfs-nfs # 授權(quán)nfsuser用戶啟動 ~]# sudo -u nfsuser ./sbin/hadoop-daemon.sh --script ./bin/hdfs start nfs3 ~]# sudo -u nfsuser jps 1452 Nfs3 1502 Jps

6.mount驗證

注:由于hadoop只能用版本4,但是這里用不了

  • 目前NFS只能使用v3版本

? ? ? ? ?-vers=3

  • 僅使用TCP作為傳輸協(xié)議

    -proto=tcp

  • 不支持隨機(jī)寫NLM

    -nolock禁用

  • access time的時間更新

? ? ? ? ? -noatime(mtime(文件的內(nèi)容不同才會變),ctime(當(dāng)屬性變化才會變的時間),atime(訪問才會變的時間))

  • 禁用acl擴(kuò)展權(quán)限

? ? ? ? ? -noacl

  • 同步寫入,避免重排序?qū)懭?/p>

? ? ? ? ? -sync

## 到剛剛安裝rpcbind的服務(wù)上 ~]# rpcinfo -p 192.168.1.55program vers proto port service100005 3 udp 4242 mountd100005 1 tcp 4242 mountd100000 2 udp 111 portmapper100000 2 tcp 111 portmapper100005 3 tcp 4242 mountd100005 2 tcp 4242 mountd100003 3 tcp 2049 nfs100005 2 udp 4242 mountd100005 1 udp 4242 mountd ~]# yum install -y nfs-utils ~]# showmount -e 192.168.1.55 Export list for 192.168.1.55: / * ~]# mount -t nfs -o vers=3,proto=tcp,nolock,noacl,noatime,sync 192.168.1.55:/ /mnt/ ~]# df -h Filesystem Size Used Avail Use% Mounted on 192.168.1.55:/ 118G 15G 104G 13% /mnt# vers :指定版本 # proto: 指定協(xié)議 # nolock: 不支持鎖(隨機(jī)寫) # noatime:把訪問就改時間關(guān)閉 # noacl: 不支持acl權(quán)限 # sync: 異步寫入

總結(jié)

以上是生活随笔為你收集整理的Hadoop集群管理与NFS网关的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。