国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

六里橋做網(wǎng)站公司長沙網(wǎng)站優(yōu)化價(jià)格

六里橋做網(wǎng)站公司,長沙網(wǎng)站優(yōu)化價(jià)格,50個(gè)產(chǎn)品改良設(shè)計(jì),wordpress的用戶視頻課程地址:https://www.bilibili.com/video/BV1WY4y197g7 課程資料鏈接:https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 這里寫目錄標(biāo)題 一、VMware準(zhǔn)備Linux虛擬機(jī)1.1. VMware安裝Linux虛擬機(jī)1.1.1. 修改虛擬機(jī)子網(wǎng)IP和網(wǎng)關(guān)1.1.2. 安裝…

視頻課程地址:https://www.bilibili.com/video/BV1WY4y197g7
課程資料鏈接:https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd=5ay8

這里寫目錄標(biāo)題

  • 一、VMware準(zhǔn)備Linux虛擬機(jī)
    • 1.1. VMware安裝Linux虛擬機(jī)
      • 1.1.1. 修改虛擬機(jī)子網(wǎng)IP和網(wǎng)關(guān)
      • 1.1.2. 安裝Linux虛擬機(jī)
    • 1.2. VMware克隆三臺Linux虛擬機(jī)
    • 1.3. 為三臺虛擬機(jī)配置固定IP
    • 1.4. 配置免密登錄
    • 1.5. JDK環(huán)境部署
    • 1.6. 防火墻、SELinux、時(shí)間同步配置
      • 1.6.1. 關(guān)閉防火墻
      • 1.6.2. 關(guān)閉SELinux
      • 1.6.3. 配置時(shí)間同步
    • 1.7. 使用VMware快照功能保存當(dāng)前已配置好的初始環(huán)境
  • 二、在虛擬機(jī)里部署HDFS集群
    • 2.1. 部署node1虛擬機(jī)
    • 2.2. 部署node2和node3虛擬機(jī)
    • 2.3. 初始化并啟動(dòng)Hadoop集群(格式化文件系統(tǒng))
    • 2.4. 快照部署好的集群
    • 2.5. 部署過程中可能會(huì)遇到的問題
    • 2.5. Hadoop HDFS集群啟停腳本
  • 三、使用HDFS文件系統(tǒng)
    • 3.1. 使用命令操作HDFS文件系統(tǒng)
      • 3.1.1. HDFS文件系統(tǒng)基本信息
      • 3.1.2. HDFS文件系統(tǒng)的2套命令體系
      • 3.1.3. 創(chuàng)建文件夾
      • 3.1.4. 查看指定目錄下的內(nèi)容
      • 3.1.5. 上傳文件到HDFS指定目錄下
      • 3.1.6. 查看HDFS中文件的內(nèi)容
      • 3.1.7. 從HDFS下載文件到本地
      • 3.1.8. 復(fù)制HDFS文件(在HDFS系統(tǒng)內(nèi)復(fù)制)
      • 3.1.9. 追加數(shù)據(jù)到HDFS文件中
      • 3.1.10. 移動(dòng)或重命名HDFS文件(在HDFS系統(tǒng)內(nèi)移動(dòng))
      • 3.1.11. 刪除HDFS文件
      • 3.1.12. 其他HDFS命令
    • 3.2. HDFS Web瀏覽
    • 3.3. HDFS系統(tǒng)權(quán)限
      • 3.3.1. 修改HDFS文件權(quán)限
      • 3.3.2. 修改HDFS文件所屬用戶和組

一、VMware準(zhǔn)備Linux虛擬機(jī)

1.1. VMware安裝Linux虛擬機(jī)

VMware虛擬機(jī)安裝程序下載地址(需要自己想辦法激活):https://download3.vmware.com/software/WKST-1750-WIN/VMware-workstation-full-17.5.0-22583795.exe
CentOS操作系統(tǒng)鏡像下載地址:https://vault.centos.org/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso

1.1.1. 修改虛擬機(jī)子網(wǎng)IP和網(wǎng)關(guān)

下載后,先安裝VMware虛擬機(jī),安裝成功后,需改虛擬機(jī)網(wǎng)絡(luò)配置。
1、在“編輯”-“虛擬網(wǎng)絡(luò)編輯器”中修改NAT8網(wǎng)卡的子網(wǎng)IP地址;
虛擬網(wǎng)絡(luò)編輯器
2、進(jìn)入編輯器后,選擇“VMnet8”網(wǎng)卡,然后點(diǎn)擊右下角的“更改設(shè)置”按鈕;
在這里插入圖片描述
3、獲取管理員權(quán)限后,選擇“VMnet8”網(wǎng)卡,將其子網(wǎng)IP修改為“192.168.88.0”;
在這里插入圖片描述
4、點(diǎn)擊“NAT設(shè)置”按鈕,在NAT設(shè)置界面,將網(wǎng)關(guān)IP修改為“192.168.88.2”,并保存上述設(shè)置。
在這里插入圖片描述

1.1.2. 安裝Linux虛擬機(jī)

1、通過VMware菜單中的“文件”-“新建虛擬機(jī)”創(chuàng)建一個(gè)新的虛擬機(jī);
在這里插入圖片描述
2、選擇前面下載的CentOS操作系統(tǒng)鏡像;
在這里插入圖片描述
3、輸入Linux系統(tǒng)用戶名和密碼(該密碼也是root的密碼);
在這里插入圖片描述
4、填寫虛擬機(jī)名稱和虛擬機(jī)的存放位置;
在這里插入圖片描述
5、之后一直下一步、完成,然后虛擬機(jī)開始自己安裝,直至安裝完成,此過程視個(gè)人電腦和網(wǎng)絡(luò)情況可能需要半小時(shí)左右,中間不用任何操作,待系統(tǒng)安裝完畢后,虛擬機(jī)會(huì)自動(dòng)重啟,看到如下界面,代表安裝成功。
在這里插入圖片描述

1.2. VMware克隆三臺Linux虛擬機(jī)

1、將前面安裝好的虛擬機(jī)關(guān)機(jī),然后在VMware左側(cè)的菜單中,鼠標(biāo)右鍵剛才安裝好的虛擬機(jī),選擇“管理”-“克隆”;
在這里插入圖片描述
2、然后點(diǎn)擊下一頁按鈕,直到“克隆方法”界面;
在這里插入圖片描述
在這里插入圖片描述
3、在克隆方法界面選擇“創(chuàng)建完整克隆”,然后繼續(xù)下一頁;
在這里插入圖片描述
4、重命名虛擬機(jī)名稱為node1,選擇克隆出來的虛擬機(jī)存放的路徑,然后點(diǎn)擊“完成”按鈕,VMware就會(huì)克隆出一個(gè)一摸一樣的虛擬機(jī),此過程很快,一般3~5秒的樣子;
在這里插入圖片描述
5、依照上述方法,再克隆出node2和node3,總共3臺虛擬機(jī)出來;
6、此時(shí)先別啟動(dòng)這3臺虛擬機(jī),先對3臺虛擬機(jī)的內(nèi)存大小進(jìn)行調(diào)整,分別將node1調(diào)整到4GB,node2和node3調(diào)整成2GB;
在這里插入圖片描述
在這里插入圖片描述7、內(nèi)存調(diào)整完畢后,分別將node1、2、3開機(jī),在開機(jī)時(shí),VMware會(huì)彈窗提示“無法連接虛擬設(shè)備 ide1:0…”,直接點(diǎn)“否”即可,至此,虛擬機(jī)克隆完畢,后續(xù)我們使用的也是這3臺虛擬機(jī)。

1.3. 為三臺虛擬機(jī)配置固定IP

1、三臺虛擬機(jī)分別啟動(dòng)后,在虛擬機(jī)中打開命令行,修改主機(jī)名,輸入如下命令:

# 切換成root用戶
[itheima@locahost ~]$ su -
# 修改當(dāng)前虛擬機(jī)的主機(jī)名,這里只演示node1,node2和node3命令相同,只是最后的參數(shù)需要修改成node2和node3
[root@locahost ~]# hostnamectl set-hostname node1

2、上述命令執(zhí)行完畢后,關(guān)閉命令行,并重新打開命令行,此時(shí)可以看到命令行內(nèi)的主機(jī)名已經(jīng)變成了node1、node2和node3
在這里插入圖片描述
3、在命令行里切換到root用戶,并執(zhí)行如下命令:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

4、打開ifcfg-ens33文件后,將其中BOOTPROTO配置項(xiàng)的值修改為static,然后再在文件末尾追加如下內(nèi)容:

IPADDR="192.168.88.101"
NETMASK="255.255.255.0"
GATEWAY="192.168.88.2"
DNS1="192.168.88.2"

其中,在node1虛擬機(jī)中,IPADDR的值為192.168.88.101,node2虛擬機(jī)的IPADDR的值為192.168.88.102,node3虛擬機(jī)的IPADDR的值為192.168.88.103
在這里插入圖片描述

5、修改網(wǎng)網(wǎng)卡配置后,在命令行中重啟網(wǎng)卡,執(zhí)行如下命令:

systemctl restart network

然后可以使用ifconfig命令查看及其的IP地址,查看上述修改是否成功。
在這里插入圖片描述

1.4. 配置免密登錄

1、修改Windows系統(tǒng)(本機(jī),非虛擬機(jī))的hosts文件(目錄為C:\Windows\System32\drivers\etc\),將如下內(nèi)容追加在hosts文件末尾并保存

192.168.88.101	node1
192.168.88.102	node2
192.168.88.103	node3

2、使用本機(jī)的ssh工具連接三臺虛擬機(jī)(node1、node2、node3),后續(xù)所有的命令通過ssh工具操作;
3、分別修改三臺虛擬機(jī)的hosts文件,此處以node1為例,在命令行中輸入

vim /etc/hosts

在hosts文件中追加如下內(nèi)容:

192.168.88.101  node1
192.168.88.102  node2
192.168.88.103  node3

在這里插入圖片描述
保存并退出,然后同樣的步驟修改node2和node3的hosts文件。
4、在三臺虛擬機(jī)上分別執(zhí)行ssh-keygen -t rsa -b 4096命令,然后一路回車到底,給三臺虛擬機(jī)分別生成好自己的密鑰;
5、在三臺虛擬機(jī)上都執(zhí)行如下命令,完成免密登錄的授權(quán)操作:

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

執(zhí)行命令過程中,有配置項(xiàng)需要確認(rèn)輸入yes,然后,還需要輸入root密碼;
6、可以在node1虛擬機(jī)通過命令ssh node2查看是否已經(jīng)配置好了node1到node2的免密登錄,同理,可以在node2驗(yàn)證到另兩臺服務(wù)器的免密登錄;
7、至此,我們配置好了三臺虛擬機(jī)root用戶之間的免密登錄,接下來,我們還需要配置三臺虛擬機(jī)之間hadoop用戶的免密登錄;
8、使用useradd hadooppasswd hadoop命令分別在三臺虛擬機(jī)上創(chuàng)建hadoop用戶;
9、在三臺虛擬機(jī)上使用su - hadoop命令切換成hadoop用戶,然后使用簽名用過的ssh-keygen -t rsa -b 4096命令生成hadoop用戶的ssh密鑰;
10、然后再在三臺虛擬機(jī)上執(zhí)行如下命令,實(shí)現(xiàn)hadoop用戶之間的免密登錄:

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

具體操作和上面配置root用戶的免密登錄時(shí)一樣。至此,免密登錄配置完成。

1.5. JDK環(huán)境部署

1、目前還是使用jdk 1.8版本,下載頁面:https://www.oracle.com/cn/java/technologies/downloads/,打開頁面一直往下劃,劃到JDK 1.8的部分,下載x64 Compressed Archive版本;
在這里插入圖片描述
2、下載后,在虛擬機(jī)里面切換成root用戶,然后將剛才下載好的jdk壓縮包上傳到root目錄下,執(zhí)行如下命令:

 mkdir -p /export/server
# 解壓剛才上傳的jdk壓縮包到/export/server目錄
tar -zxvf jdk-8u391-linux-x64.tar.gz -C /export/server/
# 創(chuàng)建軟連接
ln -s /export/server/jdk1.8.0_391/ /export/server/jdk

3、配置環(huán)境變量,使用命令vim /etc/profile打開環(huán)境變量配置文件,然后在文件末尾追加如下內(nèi)容:

export JAVA_HOME=/export/server/jdk
export PATH=$PATH:$JAVA_HOME/bin

然后使用source /etc/profile命令使環(huán)境變量生效;
4、將操作系統(tǒng)自帶的jdk替換成我們剛才安裝的jdk:

# 刪除系統(tǒng)自帶的java程序
rm -f /usr/bin/java
# 軟連接我們自己安裝的java程序
ln -s /export/server/jdk/bin/java /usr/bin/java

此時(shí),jdk配置完成,可以使用java -versionjavac -version命令校驗(yàn)系統(tǒng)所使用的java是否已經(jīng)是我們自己安裝的JDK。
5、使用scp命令,將已解壓的jdk文件夾復(fù)制到node2和node3

# 復(fù)制到node2
scp -r /export/server/jdk1.8.0_391/ node2:`pwd`/
# 復(fù)制到node3
scp -r /export/server/jdk1.8.0_391/ node3:`pwd`/

6、然后參考上面的流程,創(chuàng)建軟連接、配置環(huán)境變量、移除系統(tǒng)自帶的java,完成node2和node3的配置。

1.6. 防火墻、SELinux、時(shí)間同步配置

1.6.1. 關(guān)閉防火墻

在三臺虛擬機(jī)上分別執(zhí)行如下命令:

# 關(guān)閉防火墻
systemctl stop firewalld.service
# 關(guān)閉防火墻的開機(jī)自啟
systemctl disable firewalld.service

1.6.2. 關(guān)閉SELinux

使用vim /etc/sysconfig/selinux打開selinux的配置文件,將其中的SELINUX=enforcing修改為SELINUX=disabled,然后保存退出,并重啟虛擬機(jī)(可通過reboot命令)即可。

1.6.3. 配置時(shí)間同步

在三臺虛擬機(jī)上分別依次執(zhí)行以下步驟
1、安裝ntp軟件

yum install -y ntp

2、更新時(shí)區(qū)

# 刪除系統(tǒng)的默認(rèn)時(shí)區(qū)信息
rm -f /etc/localtime
# 設(shè)置虛擬機(jī)的時(shí)區(qū)為中國上海時(shí)區(qū)
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3、同步時(shí)間

# 使用阿里云的ntp服務(wù)校準(zhǔn)本機(jī)時(shí)間
ntpdate -u ntp.aliyun.com

4、開啟ntp服務(wù)并設(shè)置開機(jī)自啟

# 啟動(dòng)NTP服務(wù)
systemctl start ntpd.service
# 設(shè)置NTP服務(wù)開機(jī)自啟動(dòng)
systemctl enable ntpd.service

1.7. 使用VMware快照功能保存當(dāng)前已配置好的初始環(huán)境

1、將三臺虛擬機(jī)全部關(guān)機(jī);
2、在VMware中,在左側(cè)虛擬機(jī)上右鍵,選擇“快照”-“拍攝快照”,填寫快照名稱和備注,創(chuàng)建虛擬機(jī)快照;
在這里插入圖片描述
node2和node3重復(fù)上述步驟,完成快照拍攝

二、在虛擬機(jī)里部署HDFS集群

下載Hadoop:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
本次演示部署結(jié)構(gòu)如下圖所示:
在這里插入圖片描述
本次部署服務(wù)清單如下表所示:

節(jié)點(diǎn)部署的服務(wù)
node1NameNode、DataNode、SecondaryNameNode
node2DataNode
node3DataNode

2.1. 部署node1虛擬機(jī)

1、將下載好的Hadoop壓縮包上傳至node1虛擬機(jī)的root目錄;
2、將Hadoop壓縮包解壓至/export/server目錄下

tar -zxvf hadoop-3.3.4.tar.gz -C /export/server/

3、創(chuàng)建hadoop目錄的軟鏈接

# 切換工作目錄
cd /export/server/
# 創(chuàng)建軟連接
ln -s /export/server/hadoop-3.3.4/ hadoop

4、hadoop目錄結(jié)構(gòu)如下
在這里插入圖片描述

目錄存放內(nèi)容
bin存放Hadoop的各類程序(命令)
etc存放Hadoop的配置文件
include存放Hadopp用到的C語言的頭文件
lib存放Linux系統(tǒng)的動(dòng)態(tài)鏈接庫(.so文件)
libexec存放配置Hadoop系統(tǒng)的腳本文件(.sh和.cmd文件)
licenses_binary存放許可證文件
sbin管理員程序(super bin)
share存放二進(jìn)制源碼(jar包)

5、配置workers文件

cd etc/hadoop/
vim workers

將workers文件原有的內(nèi)容刪掉,改為

node1
node2
node3

保存即可;
6、配置hadoop-env.sh文件,使用vim hadoop-env.sh打開,修改以下配置:

# 指明JDK安裝目錄
export JAVA_HOME=/export/server/jdk
# 指明HADOOP安裝目錄
export HADOOP_HOME=/export/server/hadoop
# 指明HADOOP配置文件的目錄
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
#指明HADOOP運(yùn)行日志文件的目錄
export HADOOP_LOG_DIR=$HADOOP_HOME/logs

7、配置core-site.xml文件,使用vim core-site.xml打開文件,修改以下配置:

<configuration><property><!--HDFS 文件系統(tǒng)的網(wǎng)絡(luò)通訊路徑--><name>fs.defaultFS</name><value>hdfs://node1:8020</value></property><property><!--io 操作文件緩沖區(qū)大小--><name>io.file.buffer.size</name><value>131072</value></property>
</configuration>

8、配置hdfs-site.xml文件,修改以下配置:

<configuration><property><!--hdfs 文件系統(tǒng),默認(rèn)創(chuàng)建的文件權(quán)限設(shè)置--><name>dfs.datanode.data.dir.perm</name><!-- 700權(quán)限即rwx------ --><value>700</value></property><property><!--NameNode 元數(shù)據(jù)的存儲位置--><name>dfs.namenode.name.dir</name><!-- 在 node1 節(jié)點(diǎn)的 /data/nn 目錄下 --><value>/data/nn</value></property><property><!--NameNode 允許哪幾個(gè)節(jié)點(diǎn)的 DataNode 連接(即允許加入集群)--><name>dfs.namenode.hosts</name><value>node1,node2,node3</value></property><property><!--hdfs 默認(rèn)塊大小--><name>dfs.blocksize</name><!--268435456即256MB--><value>268435456</value></property><property><!--namenode 處理的并發(fā)線程數(shù)--><name>dfs.namenode.handler.count</name><value>100</value></property><property><!--從節(jié)點(diǎn) DataNode 的數(shù)據(jù)存儲目錄,即數(shù)據(jù)存放在node1、node2、node3三臺機(jī)器中的路徑--><name>dfs.datanode.data.dir</name><value>/data/dn</value></property>
</configuration>

9、根據(jù)上一步的配置項(xiàng),在node1節(jié)點(diǎn)創(chuàng)建/data/nn/data/dn目錄,在node2和node3節(jié)點(diǎn)創(chuàng)建/data/dn目錄;
10、將已配置好的hadoop程序從node1分發(fā)到node2和node3:

# 切換工作目錄
cd /export/server/
# 將node1的hadoop-3.3.4/目錄復(fù)制到node2的同樣的位置
scp -r hadoop-3.3.4/ node2:`pwd`/
# 將node1的hadoop-3.3.4/目錄復(fù)制到node3的同樣的位置
scp -r hadoop-3.3.4/ node3:`pwd`/

11、將Hadoop加入環(huán)境變量,使用vim /etc/profile打開環(huán)境變量文件,將以下內(nèi)容添加在文件末尾:

export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

執(zhí)行source /etc/profile命令使環(huán)境變量配置生效;
12、修改相關(guān)目錄的權(quán)限:

chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /export/

2.2. 部署node2和node3虛擬機(jī)

本小節(jié)內(nèi)容如無特殊說明,均需在node2和node3虛擬機(jī)分別執(zhí)行!

1、為hadoop創(chuàng)建軟鏈接,命令都是一樣的,如下所示:

cd /export/server/
ln -s /export/server/hadoop-3.3.4/ hadoop

2、將Hadoop加入環(huán)境變量,使用vim /etc/profile打開環(huán)境變量文件,將以下內(nèi)容添加在文件末尾:

export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

執(zhí)行source /etc/profile命令使環(huán)境變量配置生效;
3、修改相關(guān)目錄的權(quán)限:

chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /export/

2.3. 初始化并啟動(dòng)Hadoop集群(格式化文件系統(tǒng))

1、在node1虛擬機(jī)上執(zhí)行以下命令:

# 切換為hadoop用戶
su - hadoop
# 格式化namenode
hadoop namenode -format

2、啟動(dòng)集群,在node1虛擬機(jī)上執(zhí)行以下命令:

# 一鍵啟動(dòng)整個(gè)集群,包括namenode、secondarynamenode和所有的datanode
start-dfs.sh
# 查看當(dāng)前系統(tǒng)中正在運(yùn)行的Java進(jìn)程,可以看到每臺虛擬機(jī)上hadoop的運(yùn)行情況
jps

3、執(zhí)行上述步驟之后,我們可以在我們自己的電腦(非虛擬機(jī))上查看 HDFS WEBUI(即HADOOP管理頁面),可以通過訪問namenode所在服務(wù)器的9870端口查看,在本案例中因?yàn)閚amenode處于node1虛擬機(jī)上,所以可以訪問http://node1:9870/打開。PS:因?yàn)橹拔覀円呀?jīng)配置了本機(jī)的hosts文件,所以這里可以使用node1訪問,其實(shí)這個(gè)地址對應(yīng)的就是http://192.168.88.101:9870/。
4、如果看到以下界面,代表Hadoop集群啟動(dòng)成功了。
在這里插入圖片描述

2.4. 快照部署好的集群

為了保存剛部署好的集群,在后續(xù)如果出現(xiàn)無法解決的問題,不至于重新部署一遍,使用虛擬機(jī)快照的方式進(jìn)行備份。
1、一鍵關(guān)閉集群,在node1虛擬機(jī)執(zhí)行以下命令:

# 切換為hadoop用戶
su - hadoop
# 一鍵關(guān)閉整個(gè)集群
stop-dfs.sh

關(guān)閉完成后,可以在node1、node2、node3虛擬機(jī)中使用jps命令查看相應(yīng)Java進(jìn)程是否已消失。
2、關(guān)閉三臺虛擬機(jī);
3、在VMware中,分別在三臺虛擬機(jī)上右鍵,“快照”-“拍攝快照”功能創(chuàng)建快照。

2.5. 部署過程中可能會(huì)遇到的問題

  1. 在以Hadoop用戶身份執(zhí)行start-dfs.sh命令時(shí),提示Permission denied。此時(shí)需要檢查三臺虛擬機(jī)上相關(guān)路徑(/data、/export/server及其子路徑)上hadoop用戶是否具有讀、寫、執(zhí)行的權(quán)限。
  2. 在執(zhí)行start-dfs.sh命令后,使用jps命令可以查看已啟動(dòng)的服務(wù),若發(fā)現(xiàn)有服務(wù)未啟動(dòng)成功的,可以查看/export/server/hadoop/logs目錄下的日志文件,若在日志文件中看到類似于無權(quán)限、不可訪問等報(bào)錯(cuò)信息,同樣需要檢查對應(yīng)機(jī)器的相關(guān)路徑權(quán)限。
  3. 執(zhí)行hadoop namenode -format、start-dfs.shstop-dfs.sh等Hadoop相關(guān)命令時(shí),若提示command not found,則代表著環(huán)境變量沒配置好,需要檢查三臺機(jī)器的/etc/profile文件的內(nèi)容(需要使用source命令使環(huán)境變量生效)以及hadoop的軟連接是否正確。
  4. 執(zhí)行start-dfs.sh命令后,node1的相關(guān)進(jìn)程啟動(dòng)成功,但node2和node3沒有啟動(dòng)的,需要檢查workers文件的配置是否有node2和node3。
  5. 若在日志文件中看到WstxEOFExceptionUnexpected EOF等信息,大概率是xml配置文件有問題,需要仔細(xì)檢查core-site.xml和hdfs-site.xml文件里面的內(nèi)容(少了某個(gè)字母或字符、寫錯(cuò)了某個(gè)字母或字符),尤其是符號。
    綜上,常見出錯(cuò)點(diǎn)總結(jié)為:
  • 權(quán)限未正確配置;
  • 配置文件錯(cuò)誤;
  • 未格式化

2.5. Hadoop HDFS集群啟停腳本

注意:在使用以下命令前,一定要確保當(dāng)前是hadoop用戶,否則將報(bào)錯(cuò)或沒有效果!!!

  1. Hadoop HDFS 組件內(nèi)置了HDFS集群的一鍵啟停腳本。

    • $HADOOP_HOME/sbin/start-dfs.sh,一鍵啟動(dòng)HDFS集群
      執(zhí)行流程:

      • 在執(zhí)行此腳本的機(jī)器上,啟動(dòng)SecondaryNameNode;
      • 讀取core-site.xml內(nèi)容(fs.defaultFS項(xiàng)),確定NameNode所在機(jī)器,啟動(dòng)NameNode;
      • 讀取workers內(nèi)容,確定DataNode所在機(jī)器,啟動(dòng)全部DataNode。
    • $HADOOP_HOME/sbin/stop-dfs.sh,一鍵關(guān)閉HDFS集群
      執(zhí)行流程:

      • 在執(zhí)行此腳本的機(jī)器上,關(guān)閉SecondaryNameNode;
      • 讀取core-site.xml內(nèi)容(fs.defaultFS項(xiàng)),確定NameNode所在機(jī)器,關(guān)閉NameNode;
      • 讀取workers內(nèi)容,確認(rèn)DataNode所在機(jī)器,關(guān)閉全部NameNode。
  2. 除了一鍵啟停外,也可以單獨(dú)控制某個(gè)進(jìn)程的啟停。

    • $HADOOP_HOME/sbin/hadoop-daemon.sh,此腳本可以單獨(dú)控制所在機(jī)器的進(jìn)程啟停
      用法:hadoop-daemon.sh (start|status|stop) (namenode|secondarynamenode|datanode)

    • $HADOOP_HOME/sbin/hdfs,此程序也可以單獨(dú)控制所在機(jī)器的進(jìn)程啟停
      用法:hdfs --daemon (start|status|stop) (namenode|secondarynamenode|datanode)

三、使用HDFS文件系統(tǒng)

3.1. 使用命令操作HDFS文件系統(tǒng)

3.1.1. HDFS文件系統(tǒng)基本信息

  • HDFS和Linux系統(tǒng)一樣,均是以/作為根目錄的組織形式;
  • 如何區(qū)分HDFS和Linux文件系統(tǒng):
    • Linux文件系統(tǒng)以file://作為協(xié)議頭,HDFS文件系統(tǒng)以hdfs://namenode:port作為協(xié)議頭;
    • 例如,有路徑/usr/local/hello.txt,在Linux文件系統(tǒng)中表示為file:///usr/local/hello.txt,在HDFS文件系統(tǒng)中表示為hdfs://node1:8020/usr/local/hello.txt
    • 但一般情況下,協(xié)議頭是可以省略的,使用Linux命令時(shí),會(huì)自動(dòng)識別為file://協(xié)議頭,使用HDFS命令時(shí),會(huì)自動(dòng)識別為hdfs://namenode:port協(xié)議頭;
    • 但如果需要再使用HDFS命令操作Linux文件時(shí),需要明確使用file://協(xié)議頭。

3.1.2. HDFS文件系統(tǒng)的2套命令體系

老版本
用法:hadoop fs [generic options]

新版本
用法:hdfs dfs [generic options]

兩套命令用法完全一致,效果完全一樣,但某些特殊命令需要選擇hadoop或hdfs命令。

3.1.3. 創(chuàng)建文件夾

用法:
hadoop fs -mkdir [-p] <path> ...
hdfs dfs -mkdir [-p] <path> ...
path為待創(chuàng)建的目錄
-p 選項(xiàng)意思與Linux的mkdir -p一樣,自動(dòng)逐層創(chuàng)建對應(yīng)的目錄。
例如:
hadoop fs -mkdir -p file:///home/hadoop/test 在Linux系統(tǒng)下創(chuàng)建/home/hadoop/test文件夾;
hadoop fs -mkdir -p hdfs://node1:8020/itheima/bigdata 在HDFS中創(chuàng)建/itheima/bigdata文件夾;
hdfs dfs -mkdir -p /home/hadoop/itcast 在HDFS中創(chuàng)建/home/hadoop/itcast文件夾;

3.1.4. 查看指定目錄下的內(nèi)容

用法:
hadoop fs -ls [-h] [-R] [<path> ...]
hdfs dfs -ls [-h] [-R] [<path> ...]
path為指定的目錄路徑
-h 人性化顯示size
-R 遞歸查看指定目錄及其子目錄。
例如:
hdfs dfs -ls / 查看HDFS 根目錄下的內(nèi)容
hadoop fs -ls / 查看HDFS 根目錄下的內(nèi)容,與上面等效
hdfs dfs -ls -R / 遞歸查看HDFS根目錄下的內(nèi)容
hdfs dfs -ls file:/// 查看當(dāng)前這臺Linux機(jī)器根目錄下的內(nèi)容
hdfs dfs -ls -h / 查看HDFS根目錄下的內(nèi)容,當(dāng)文件大小大于1k之后,其大小會(huì)有單位,便于人的閱讀;

3.1.5. 上傳文件到HDFS指定目錄下

用法:
hadoop fs -put [-f] [-p] <localsrc> ... <dst>
hdfs dfs -put [-f] [-p] <localsrc> ... <dst>
-f 當(dāng)目標(biāo)文件已存在時(shí),覆蓋目標(biāo)文件
-p 保留訪問和修改時(shí)間,所有權(quán)和權(quán)限
localsrc 要上傳的本地(Linux系統(tǒng))文件的路徑
dst 要保存在HDFS中的具體路徑。
例如:
hadoop fs -put file:///home/hadoop/test.txt hdfs://node1:8020/ 將本地/home/hadoop/下的test.txt文件上傳到HDFS的根目錄下的完整寫法;
hdfs dfs -put test2.txt / 將本地當(dāng)前目錄下的test2.txt文件上傳到HDFS的根目錄下;
hdfs dfs -put -f test2.txt / 將本地目錄下的test2.txt文件上傳到HDFS的根目錄下,并強(qiáng)制覆蓋原有的test2.txt文件;

3.1.6. 查看HDFS中文件的內(nèi)容

用法:
hadoop fs -cat <src> ...
hdfs dfs -cat <src> ...
讀取大文件時(shí),可以使用管道符配合more
hadoop fs -cat <src> | more
hdfs dfs -cat <src> | more
例如:
hadoop fs -cat /test.txt 查看HDFS根目錄下test.txt文件的內(nèi)容
hdfs dfs -cat /test2.txt | more 查看HDFS根目錄下的test2.txt文件的內(nèi)容,可以翻頁,適用于查看大文件

3.1.7. 從HDFS下載文件到本地

用法:
hadoop fs -get [-f] [-p] <src> ... <localdst>
hdfs dfs -get [-f] [-p] <src> ... <localdst>
-f 當(dāng)目標(biāo)文件已存在時(shí),覆蓋目標(biāo)文件
-p 保留訪問和修改時(shí)間,所有權(quán)和權(quán)限
src 要下載的HDFS文件路徑
localdst 要保存在本地Linux系統(tǒng)中的路徑。
例如:
hadoop fs -get /test.txt . 將HDFS根目錄下的test.txt文件下載到本地Linux系統(tǒng)的當(dāng)前目錄下;
hadoop fs -get -f /test.txt . 將HDFS根目錄下的test.txt文件下載到本地Linux系統(tǒng)的當(dāng)前目錄下,若本地已存在test.txt,則強(qiáng)制覆蓋;
hdfs dfs -get /test2.txt . 將HDFS根目錄下的test2.txt文件下載到本地的當(dāng)前目錄下;

3.1.8. 復(fù)制HDFS文件(在HDFS系統(tǒng)內(nèi)復(fù)制)

用法:
hadoop fs -cp [-f] <src> ... <dst>
hdfs dfs -cp [-f] <src> ... <dst>
-f 若目標(biāo)文件存在,則強(qiáng)制覆蓋目標(biāo)文件
src HDFS文件系統(tǒng)中被復(fù)制的文件路徑
dst 要復(fù)制到的HDFS文件系統(tǒng)目標(biāo)路徑
例如:
hadoop fs -cp /test.txt /home/ 將HDFS根目錄下的test.txt文件復(fù)制到HDFS文件系統(tǒng)/home/目錄下
hadoop fs -cp /test.txt /home/abc.txt 將HDFS根目錄下的test.txt文件復(fù)制到HDFS文件系統(tǒng)/home/目錄下,并將其改名為abc.txt

3.1.9. 追加數(shù)據(jù)到HDFS文件中

用法:
hadoop fs -appendToFile <localsrc> ... <dst>
hdfs dfs -appendToFile <localsrc> ... <dst>
localsrc Linux系統(tǒng)的本地文件路徑,要追加的內(nèi)容放在這個(gè)文件里
dst HDFS文件系統(tǒng)中被追加的文件,如果文件不存在則創(chuàng)建該文件
在HDFS系統(tǒng)中想要修改文件,僅有兩種方式:刪除 或 追加
例如:
hadoop fs -appendToFile append.txt /test.txt 將Linux本地當(dāng)前目錄下的append.txt文件中的內(nèi)容追加到HDFS系統(tǒng)根目錄下test.txt文件中去

3.1.10. 移動(dòng)或重命名HDFS文件(在HDFS系統(tǒng)內(nèi)移動(dòng))

用法:
hadoop fs -mv <src> ... <dst>
hdfs dfs -mv <src> ... <dst>
src HDFS文件系統(tǒng)中的源文件
dst HDFS文件系統(tǒng)中的目標(biāo)位置
例如:
hadoop fs -mv /test.txt /itheima 將HDFS系統(tǒng)根目錄下的test.txt文件移動(dòng)到HDFS系統(tǒng)/itheima/目錄里
hdfs dfs -mv /test2.txt /itheima/abc.txt 將HDFS系統(tǒng)根目錄下的test2.txt文件移動(dòng)到HDFS系統(tǒng)/itheima/目錄里,并將其改名為abc.txt

3.1.11. 刪除HDFS文件

用法:
hadoop fs -rm [-r] [-skipTrash] URI [URI ...]
hdfs dfs -rm [-r] [-skipTrash] URI [URI ...]
-r 刪除文件夾時(shí)需要此參數(shù),刪除文件時(shí)不用
-skipTrash 跳過回收站,直接刪除(徹底刪除)
回收站功能默認(rèn)是關(guān)閉的,如果需要開啟,需要修改core-site.xml配置文件。
例如:
hadoop fs -rm -r /home 刪除HDFS系統(tǒng)中的/home文件夾
hdfs dfs -rm /itheima/test.txt 刪除HDFS系統(tǒng)中/itheima目錄下的test.txt文件

配置開啟Hadoop的回收站
修改core-site.xml配置文件vim /export/server/hadoop/etc/hadoop/core-site.xml

<property><!--回收站保留的時(shí)間,1440的單位是分鐘,代表著1天,超過這個(gè)時(shí)間之后,刪除的文件就徹底刪除了--><name>fs.trash.interval</name><value>1440</value>
</property><property><!--指垃圾回收的檢查間隔,應(yīng)該是小于或者等于fs.trash.interval,120分鐘即每2小時(shí)檢查一次,檢查時(shí)發(fā)現(xiàn)如果有文件的刪除時(shí)間大于上面的1440,就從回收站里面刪掉,也就是徹底刪除了--><name>fs.trash.checkpoint.interval</name><value>120</value>
</property>

無需重啟集群,在哪個(gè)機(jī)器配置的,在哪個(gè)機(jī)器執(zhí)行命令就生效。即如果只是在node1節(jié)點(diǎn)配置了,那只有在node1節(jié)點(diǎn)執(zhí)行刪除命令才有用,在其他節(jié)點(diǎn)執(zhí)行是沒用的!!!
回收站默認(rèn)位置在:/user/用戶名(hadoop)/.Trash

刪除HDFS系統(tǒng)內(nèi)的文件hadoop fs -rm /itheima/abc.txt會(huì)看到有如下提示

[hadoop@node1 ~]$ hadoop fs -rm  /itheima/abc.txt
2023-12-02 14:58:06,322 INFO fs.TrashPolicyDefault: Moved: 'hdfs://node1:8020/itheima/abc.txt' to trash at: hdfs://node1:8020/user/hadoop/.Trash/Current/itheima/abc.txt

可以看到,雖然輸入的是rm命令,但實(shí)際上HDFS系統(tǒng)會(huì)將要?jiǎng)h除的文件移動(dòng)到hdfs://node1:8020/user/hadoop/.Trash/Current/目錄下。
此時(shí),可以使用 hadoop fs -ls -R /命令查看,當(dāng)開啟回收站后,HDFS系統(tǒng)會(huì)在根目錄下默認(rèn)創(chuàng)建/user/當(dāng)前用戶/Current的目錄(當(dāng)前用戶為hadoop)
在這里插入圖片描述
當(dāng)然,也可以通過參數(shù)-skipTrash實(shí)現(xiàn)徹底刪除,不讓被刪除的文件進(jìn)入回收站
hadoop fs -rm -r -skipTrash /itheima 徹底刪除(不進(jìn)入回收站)HDFS根目錄下的itheima文件夾,此命令執(zhí)行效果如下:

[hadoop@node1 ~]$ hadoop fs -rm -r -skipTrash /itheima
Deleted /itheima

可以看到,和不開回收站時(shí),執(zhí)行rm命令的效果一樣。

3.1.12. 其他HDFS命令

官方文檔:https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-common/FileSystemShell.html
在這里插入圖片描述

3.2. HDFS Web瀏覽

除了上述的命令方式外,還可以通過HDFS NameNode節(jié)點(diǎn)的Web頁面操作文件系統(tǒng),入口在http://node1:9870/中
在這里插入圖片描述
在這里插入圖片描述
在Web頁面中可以查看,但是沒法操作文件,因?yàn)镠DFS系統(tǒng)的權(quán)限是給hadoop用戶的,但是Web頁面默認(rèn)情況下其實(shí)是個(gè)匿名用戶(dr.who)
在這里插入圖片描述
當(dāng)然,也可以讓W(xué)eb頁面擁有權(quán)限,需要修改core-site.xml配置文件,增加如下配置:

<property><name>hadoop.http.staticuser.user</name><value>hadoop</value>
</property>

將Web頁面的權(quán)限設(shè)置成hadoop用戶。

但是,不推薦這樣做:

  • HDFS WEBUI,只讀權(quán)限挺好的,簡單瀏覽即可
  • 如果給與高權(quán)限,會(huì)有很大的安全問題,造成數(shù)據(jù)泄露或丟失

3.3. HDFS系統(tǒng)權(quán)限

HDFS系統(tǒng)有自己獨(dú)立的權(quán)限體系,但其權(quán)限類型與Linux一致,都是按照讀(r)、寫(w)、可執(zhí)行(x)進(jìn)行授權(quán),權(quán)限分為三組,從左到右依次是所有者的權(quán)限、所有組的權(quán)限、其他用戶權(quán)限。通過hadoop fs -lshdfs dfs -ls命令可以查看到HDFS系統(tǒng)內(nèi)各文件和文件夾的權(quán)限。
在這里插入圖片描述
但與Linux不同的是,在Linux系統(tǒng)中超級用戶是root,但在HDFS系統(tǒng)中,超級用戶是啟動(dòng)namenode的用戶(本示例中就是hadoop用戶),如果在HDFS系統(tǒng)中的文件時(shí)遇到Permission denied等權(quán)限不足的報(bào)錯(cuò)提醒時(shí),首先要檢查的就是當(dāng)前用戶是否為啟動(dòng)namenode的用戶。

3.3.1. 修改HDFS文件權(quán)限

用法:
hadoop fs -chmod [-R] 777 <path>
hdfs dfs -chmod [-R] 777 <path>
例如:
hadoop fs -chmod 777 /test3.txt 將HDFS根目錄下的test3.txt文件的權(quán)限修改成所有人可讀、可寫、可執(zhí)行

[hadoop@node1 ~]$ hadoop fs -chmod 777 /test3.txt
[hadoop@node1 ~]$ hdfs dfs -ls /test3.txt
-rwxrwxrwx   3 hadoop supergroup  268037352 2023-12-05 10:48 /test3.txt

3.3.2. 修改HDFS文件所屬用戶和組

用法:
hadoop fs -chown [-R] hadoop:supergroup <path>
hdfs dfs -chown [-R] hadoop:supergroup <path>
例如:
hadoop fs -chown root:supergroup /test.txt 將HDFS根目錄下的test.txt文件的所有者修改為root用戶,所有組為supergroup。

[hadoop@node1 ~]$ hadoop fs -chown root:supergroup /test.txt
[hadoop@node1 ~]$ hdfs dfs -ls /test.txt
-rw-r--r--   3 root supergroup         44 2023-12-02 15:11 /test.txt
http://aloenet.com.cn/news/45243.html

相關(guān)文章:

  • 現(xiàn)在用什么工具做網(wǎng)站好app拉新項(xiàng)目推廣代理
  • 編譯django做的網(wǎng)站廣州網(wǎng)站快速優(yōu)化排名
  • 香港做最好看的電影網(wǎng)站有哪些專業(yè)seo關(guān)鍵詞優(yōu)化
  • 如何新做的網(wǎng)站讓百度快速收錄嘉興seo網(wǎng)絡(luò)推廣
  • 邢臺網(wǎng)警seo電商運(yùn)營是什么意思
  • 張家港建設(shè)工程質(zhì)量監(jiān)督站網(wǎng)站策劃網(wǎng)絡(luò)營銷活動(dòng)
  • 個(gè)人網(wǎng)站建設(shè)方案書 備案品牌運(yùn)營策略有哪些
  • 一般找人做網(wǎng)站多少錢全球搜是什么公司
  • 怎么查網(wǎng)站死鏈谷歌關(guān)鍵詞優(yōu)化怎么做
  • 廊坊seo網(wǎng)站管理seo是什么專業(yè)的課程
  • 網(wǎng)站地圖什么意思優(yōu)化seo軟件
  • wordpress圖標(biāo)代碼網(wǎng)站優(yōu)化排名資源
  • 中鐵建門戶網(wǎng)登錄入口優(yōu)化公司哪家好
  • 網(wǎng)站平臺推廣百度一下瀏覽器下載安裝
  • 做網(wǎng)站做好用的軟件網(wǎng)絡(luò)營銷中的seo是指
  • java課程建設(shè)網(wǎng)站怎么做好網(wǎng)絡(luò)營銷推廣
  • 網(wǎng)站做第三方支付給企業(yè)做網(wǎng)站的公司
  • 網(wǎng)站建設(shè)前言和背景公司網(wǎng)站注冊流程和費(fèi)用
  • 大連網(wǎng)站建設(shè)方法寧波seo推廣推薦
  • 內(nèi)部網(wǎng)站搭建什么是白帽seo
  • 微信上發(fā)的鏈接網(wǎng)站怎么做的新聞?lì)^條今日新聞
  • 網(wǎng)站怎么制作成軟件青島百度網(wǎng)站排名優(yōu)化
  • 用vps做網(wǎng)站的流程三亞百度推廣公司電話
  • 怎么做淘寶網(wǎng)站賺錢技巧百度推廣技巧方法
  • 合肥市城鄉(xiāng)建設(shè)委員會(huì)網(wǎng)站無錫網(wǎng)站排名公司
  • 電子商務(wù)主要干什么seo推廣怎么做
  • 政府網(wǎng)站建設(shè)發(fā)展指引軟文吧
  • 怎樣用eclipse做網(wǎng)站品牌營銷推廣方案怎么做
  • 網(wǎng)站建設(shè)需要會(huì)西安seo外包行者seo
  • 溫州電子商務(wù)網(wǎng)站建設(shè)windows優(yōu)化大師有哪些功能