【Hadoop_03】HDFS概述與Shell操作

  • 1、集群配置
    • (1)集群啟動/停止方式總結
    • (2)編寫Hadoop集群常用腳本
    • (3)常考面試題
      • 【1】常用端口號
      • 【2】常用配置-文件
  • 2、HDFS概述
    • (1)HDFS產出背景及定義
    • (2)HDFS優缺點
    • (3)HDFS的組成架構
    • (4)HDFS文件塊大小(面試重點)
  • 3、HDFS的Shell操作
    • (1)準備工作
    • (2)上傳命令
    • (3)下載命令
    • (4)HDFS直接操作命令

1、集群配置

(1)集群啟動/停止方式總結

1)各個模塊分開啟動/停止(配置ssh是前提)常用
(1)整體啟動/停止HDFS

start-dfs.sh/stop-dfs.sh

(2)整體啟動/停止YARN

start-yarn.sh/stop-yarn.sh

2)各個服務組件逐一啟動/停止
(1)分別啟動/停止HDFS組件

hdfs --daemon start/stop namenode/datanode/secondarynamenode

(2)啟動/停止YARN

yarn --daemon start/stop  resourcemanager/nodemanager

在這里插入圖片描述
一般都是按照集群來啟動,不然如果有100+臺服務器的話,就無法啟動了

(2)編寫Hadoop集群常用腳本

在寫腳本的時候,能寫絕對路徑就不要寫相對路徑。

1)Hadoop集群啟停腳本(包含HDFS,Yarn,Historyserver):myhadoop.sh

[root@hadoop102 ~]$ cd /home/wenxin/bin
[root@hadoop102 bin]$ vim myhadoop.sh
  • 輸入如下內容
#!/bin/bashif [ $# -lt 1 ]
thenecho "No Args Input..."exit ;
ficase $1 in
"start")echo " =================== 啟動 hadoop集群 ==================="echo " --------------- 啟動 hdfs ---------------"ssh hadoop102 "/home/wenxin/module/hadoop-3.1.3/sbin/start-dfs.sh"echo " --------------- 啟動 yarn ---------------"ssh hadoop103 "/home/wenxin/module/hadoop-3.1.3/sbin/start-yarn.sh"echo " --------------- 啟動 historyserver ---------------"ssh hadoop102 "/home/wenxin/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")echo " =================== 關閉 hadoop集群 ==================="echo " --------------- 關閉 historyserver ---------------"ssh hadoop102 "/home/wenxin/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"echo " --------------- 關閉 yarn ---------------"ssh hadoop103 "/home/wenxin/module/hadoop-3.1.3/sbin/stop-yarn.sh"echo " --------------- 關閉 hdfs ---------------"ssh hadoop102 "/home/wenxin/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)echo "Input Args Error..."
;;
esac

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
目前還沒找到解決方法。

2)查看三臺服務器Java進程腳本:jpsall

[root@hadoop102 bin]$ vim jpsall
  • 輸入如下內容
#!/bin/bashfor host in hadoop102 hadoop103 hadoop104
doecho =============== $host ===============ssh $host jps 
done
  • 保存后退出,然后賦予腳本執行權限
[root@hadoop102 bin]$ chmod +x jpsall

3)分發/bin目錄,保證自定義腳本在三臺機器上都可以使用

[root@hadoop102 ~]$ xsync /bin

在這里插入圖片描述

(3)常考面試題

【1】常用端口號

  • hadoop3.x
    HDFP NameNode 內部通訊端口:8020/9000/9820
    HDFS NameNode 對用戶的查詢端口:9870
    Yarn查看任務運行情況的:8088
    歷史服務器:19888

  • hadoop2.x
    HDFS NameNode 內部通訊端口:8020/9000
    HDFS NameNode 對用戶的查詢端口:50070
    Yarn查看任務運行情況的:8088
    歷史服務器19888

【2】常用配置-文件

  • hadoop3.x :
    core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml workers

  • hadoop2.x :
    core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml slaves

2、HDFS概述

(1)HDFS產出背景及定義

1)HDFS產生背景
隨著數據量越來越大,在一個操作系統存不下所有的數據,那么就分配到更多的操作系統管理的磁盤中,但是不方便管理和維護,迫切需要一種系統來管理多臺機器上的文件,這就是分布式文件管理系統。HDFS只是分布式文件管理系統中的一種。
分布式指的是多臺服務器解決同一件事情。

2)HDFS定義
HDFS(Hadoop Distributed File System),它是一個文件系統,用于存儲文件,通過目錄樹來定位文件;其次,它是分布式的,由很多服務器聯合起來實現其功能,集群中的服務器有各自的角色。
HDFS的使用場景:適合一次寫入,多次讀出的場景。一個文件經過創建、寫入和關閉之后就不需要改變。
已經寫入的就不適合修改了

(2)HDFS優缺點

優點:

在這里插入圖片描述
缺點:

在這里插入圖片描述

(3)HDFS的組成架構

在這里插入圖片描述
在這里插入圖片描述

(4)HDFS文件塊大小(面試重點)

在這里插入圖片描述
在這里插入圖片描述
塊太大不利于后期的并發運算,而且處理起來較慢。

3、HDFS的Shell操作

hadoop fs 具體命令 或者R hdfs dfs 具體命令
兩個是完全相同的。

在這里插入圖片描述
命令大全:

[-appendToFile <localsrc> ... <dst>][-cat [-ignoreCrc] <src> ...][-chgrp [-R] GROUP PATH...][-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...][-chown [-R] [OWNER][:[GROUP]] PATH...][-copyFromLocal [-f] [-p] <localsrc> ... <dst>][-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>][-count [-q] <path> ...][-cp [-f] [-p] <src> ... <dst>][-df [-h] [<path> ...]][-du [-s] [-h] <path> ...][-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>][-getmerge [-nl] <src> <localdst>][-help [cmd ...]][-ls [-d] [-h] [-R] [<path> ...]][-mkdir [-p] <path> ...][-moveFromLocal <localsrc> ... <dst>][-moveToLocal <src> <localdst>][-mv <src> ... <dst>][-put [-f] [-p] <localsrc> ... <dst>][-rm [-f] [-r|-R] [-skipTrash] <src> ...][-rmdir [--ignore-fail-on-non-empty] <dir> ...]
<acl_spec> <path>]][-setrep [-R] [-w] <rep> <path> ...][-stat [format] <path> ...][-tail [-f] <file>][-test -[defsz] <path>][-text [-ignoreCrc] <src> ...]

(1)準備工作

  • 啟動dfs服務
    在這里插入圖片描述
    -help:輸出這個命令參數
hadoop fs -help rm

在這里插入圖片描述

創建/sanguo文件夾

hadoop fs -mkdir /sanguo

在網址上輸入:hadoop102:9870
在這里插入圖片描述

(2)上傳命令

1)-moveFromLocal:從本地剪切粘貼到HDFS

[root@hadoop102 hadoop-3.1.3]# hadoop fs -moveFromLocal ./shuguo.txt /sanguo

在這里插入圖片描述
在這里插入圖片描述

2)-copyFromLocal:從本地文件系統中拷貝文件到HDFS路徑去

[root@hadoop102 hadoop-3.1.3]# hadoop fs -copyFromLocal weiguo.txt /sanguo

在這里插入圖片描述

3)-put:等同于copyFromLocal,生產環境更習慣用put

[root@hadoop102 hadoop-3.1.3]# hadoop fs -put wuguo.txt /sanguo

在這里插入圖片描述

4)-appendToFile:追加一個文件到已經存在的文件末尾【HDFS只允許在文件的末尾進行追加,不允許修改】

[root@hadoop102 hadoop-3.1.3]# hadoop fs -appendToFile liubei.txt /sanguo/shuguo.txt

將liubei.txt文件追加到sanguo文件夾下的shuguo.txt文件的末尾

(3)下載命令

1)-copyToLocal:從HDFS拷貝到本地

hadoop fs -copyToLocal /sanguo/shuguo.txt ./

將hdfs中的sanguo文件夾下的shuguo.txt文件拷貝到本地的當前路徑下

在這里插入圖片描述

2)-get:等同于copyToLocal,生產環境更習慣用get

hadoop fs -get /sanguo/shuguo.txt ./

(4)HDFS直接操作命令

1)-ls: 顯示目錄信息

[root@hadoop102 hadoop-3.1.3]$ hadoop fs -ls /sanguo

在這里插入圖片描述

2)-cat:顯示文件內容

[root@hadoop102 hadoop-3.1.3]$ hadoop fs -cat /sanguo/shuguo.txt

在這里插入圖片描述

3)-chgrp、-chmod、-chown:Linux文件系統中的用法一樣,修改文件所屬權限

[root@hadoop102 hadoop-3.1.3]$ hadoop fs  -chmod 666  /sanguo/shuguo.txt
[root@hadoop102 hadoop-3.1.3]$ hadoop fs  -chown  root:root   /sanguo/shuguo.txt

4)-mkdir:創建路徑

[root@hadoop102 hadoop-3.1.3]$ hadoop fs -mkdir /jinguo

5)-cp:從HDFS的一個路徑拷貝到HDFS的另一個路徑

[root@hadoop102 hadoop-3.1.3]$ hadoop fs -cp /sanguo/shuguo.txt /jinguo

在這里插入圖片描述

6)-mv:在HDFS目錄中移動文件

[root@hadoop102 hadoop-3.1.3]$ hadoop fs -mv /sanguo/wuguo.txt /jinguo
[root@hadoop102 hadoop-3.1.3]$ hadoop fs -mv /sanguo/weiguo.txt /jinguo

7)-tail:顯示一個文件的末尾1kb的數據

因為在生產環境當中,往往最末尾的文件是最新的文件。文件都是從最末尾追加的。

[root@hadoop102 hadoop-3.1.3]$ hadoop fs -tail /jinguo/shuguo.txt

在這里插入圖片描述

8)-rm:刪除文件或文件夾

[root@hadoop102 hadoop-3.1.3]$ hadoop fs -rm /sanguo/shuguo.txt

9)-rm -r:遞歸刪除目錄及目錄里面內容

[root@hadoop102 hadoop-3.1.3]$ hadoop fs -rm -r /sanguo

10)-du統計文件夾的大小信息

[root@hadoop102 hadoop-3.1.3]$ hadoop fs -du -s -h /jinguo

在這里插入圖片描述

[root@hadoop102 hadoop-3.1.3]$ hadoop fs -du  -h /jinguo

在這里插入圖片描述

11)-setrep:設置HDFS中文件的副本數量

[root@hadoop102 hadoop-3.1.3]$ hadoop fs -setrep 10 /jinguo/shuguo.txt

在這里插入圖片描述
這里設置的副本數只是記錄在NameNode的元數據中,是否真的會有這么多副本,還得看DataNode的數量。因為目前只有3臺設備,最多也就3個副本,只有節點數的增加到10臺時,副本數才能達到10。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213294.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213294.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213294.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

K8S學習指南(9)-k8s核心對象init pod

文章目錄 引言什么是Init容器&#xff1f;Init容器的使用場景1. 數據初始化2. 網絡設置3. 等待依賴服務 Init容器的生命周期1. **Pending**2. **Running**3. **Terminated** Init容器的示例Init容器的高級用法結論 引言 Kubernetes&#xff08;簡稱K8s&#xff09;是一個強大的…

qmap類

QMap是一個關聯數組&#xff0c;它將鍵&#xff08;key&#xff09;與值&#xff08;value&#xff09;相關聯。QMap類提供了一系列方法來操作和查詢其中存儲的數據。下面是一些常見的QMap方法及其示例代碼&#xff1a; insert()方法用于將鍵值對插入到QMap中。如果鍵已經存在&…

軟件工程考試復習

第一章、軟件工程概述 &#x1f31f;軟件程序數據文檔&#xff08;考點&#xff09; &#x1f31f;計算機程序及其說明程序的各種文檔稱為 &#xff08; 文件 &#xff09; 。計算任務的處理對象和處理規則的描述稱為 &#xff08; 程序 &#xff09;。有關計算機程序功能、…

SQL注入概述

預計更新1.SQL注入概述 1.1 SQL注入攻擊概述 1.2 SQL注入漏洞分類 1.3 SQL注入攻擊的危害 SQLMap介紹 2.1 SQLMap簡介 2.2 SQLMap安裝與配置 2.3 SQLMap基本用法 SQLMap進階使用 3.1 SQLMap高級用法 3.2 SQLMap配置文件詳解 3.3 SQLMap插件的使用 SQL注入漏洞檢測 4.1 SQL注入…

智能優化算法應用:基于灰狼算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用&#xff1a;基于灰狼算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于灰狼算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.灰狼算法4.實驗參數設定5.算法結果6.參考文獻7.MA…

unity學習筆記19

一、角色動畫的使用練習 從資源商店導入的動畫資源&#xff08;Character Pack: Free Sample&#xff09;中將資源中的角色創建在場景里&#xff0c;現在場景里存在的角色并沒有任何動畫。 在資源中找到Animations文件夾&#xff0c;在這個文件有很多模型文件&#xff08;.FBX…

自定義帶有構建標記的Go二進制文件

引言 在Go中,構建標簽或構建約束,是添加到代碼片段中的標識符,用于確定在build過程中何時應將文件包含在包中。這允許您從相同的源代碼構建不同版本的Go應用程序,并以快速和有組織的方式在它們之間切換。許多開發人員使用構建標記來改進構建跨平臺兼容應用程序的工作流程,…

算能 MilkV Duo開發板實戰——opencv-mobile (迷你版opencv庫)的移植和應用

前言 OpenCV是一種開源的計算機視覺和機器學習軟件庫&#xff0c;旨在提供一組通用的計算機視覺工具。它用于圖像處理、目標識別、人臉識別、機器學習等領域&#xff0c;廣泛應用于計算機視覺任務。 OpenCV-Mobile是OpenCV庫的輕量版本&#xff0c;專為移動平臺&#xff08;A…

學習 NVIDIA Omniverse 的最基礎概念

無用的前言 近兩年關于 Omniverse 的宣傳一直很多&#xff0c;可我一直沒去了解&#xff0c;連它是個啥都不知道。最近正好有契機需要了解它&#xff0c;于是我今天抽時間看了些它的官方介紹&#xff0c;并按照自己的理解梳理在這里。 官方資料索引 Omniverse 官網主頁&…

Nacos配置管理-微服務配置拉取

yaml已配置內容 目錄 一、配置獲取步驟 二、統一配置管理步驟 三、Nacos管理配置的步驟總結 一、配置獲取步驟 二、統一配置管理步驟 1、引入Nacos的配置管理客戶端依賴: <!--nacos配置管理依賴--> <dependency> <groupId>com.alibaba.cloud&l…

CRM是什么?企業為什么需要CRM?

CRM是什么 CRM的全稱是Customer Relationship Management&#xff0c;即客戶關系管理&#xff0c;是一種企業與現有客戶及潛在客戶之間關系互動的管理系統&#xff0c;是企業“以客戶為中心”價值觀的核心體現之一。 客戶是一家企業最寶貴的資源。CRM系統最關鍵的就是能夠幫助…

復亞智能無人機機場適配最新大疆無人機

無人機已經在各個領域得到廣泛應用&#xff0c;但由于操作難度、起降場地等問題&#xff0c;其應用范圍和效率受到了一定限制。隨著無人機機場研發技術的成熟&#xff0c;許多實際操作中的難題得以解決&#xff0c;使得無人機應用變得更加高效。接下來&#xff0c;我們將深入了…

修改代碼后idea如何將代碼提交到公司git上

1、需要先更新最新的代碼到本地&#xff1b;&#xff08;此步驟防止&#xff0c;公司其他人在此期間已經提交了最新代碼&#xff0c;但是自己本地項目沒有拉取最新代碼&#xff0c;導致最后版本沖突&#xff09; 打開idea---》鼠標項目項目名上右擊---》選擇Git---》選擇pull-…

MySQL數據庫,創建和管理表

創建數據庫&#xff1a; 方式一&#xff1a;創建數據庫 CREATE DATABASE 數據庫名&#xff1b;&#xff08;使用的是默認的字符集&#xff09; 方式二&#xff1a;創建數據庫并指定字符集 CREATE DATABASE 數據庫名 CHARACTER SET 字符集&#xff1b; 方式三&#xff1a;判斷數…

邊車模式的介紹

邊車模式也叫搭檔模式。 邊車模式的設計思想是將控制和邏輯分離&#xff0c;常用于分布式架構中的邏輯和控制分離設計。邊車來實現這些與業務邏輯沒有關系的控制功能。 以邊車的方式&#xff0c;對應用服務沒有侵入性&#xff0c;并且不用受到應用服務的語言與技術的限制&…

每天五分鐘計算機視覺:使用1*1卷積層來改變輸入層的通道數量

本文重點 在卷積神經網絡中有很多重要的卷積核&#xff0c;比如1*1的卷積核&#xff0c;3*3的卷積核&#xff0c;本文將講解1*1的卷積核的使用&#xff0c;它在卷積神經網絡中具有重要的地位。由于1*1的卷積核使用了最小的窗口&#xff0c;那么1*1的卷積核就失去了卷積層可以識…

調試備忘錄-NTC電阻的使用(教程 + 代碼)

軟件環境&#xff1a;CodeWarrior 11.1 硬件環境&#xff1a;NXP S9KEAZ64A 傳感器參數&#xff1a;NTC熱敏電阻(R25 50k,B25-50 3950) 寫在前面 最近做小項目需要用到NTC電阻&#xff0c;因此寫一個調試備忘錄記錄下。 什么是NTC電阻&#xff1f; NTC熱敏電阻就是負溫度…

【flink番外篇】2、flink的23種算子window join 和interval join 數據傾斜、分區介紹及詳細示例-完整版

Flink 系列文章 一、Flink 專欄 Flink 專欄系統介紹某一知識點&#xff0c;并輔以具體的示例進行說明。 1、Flink 部署系列 本部分介紹Flink的部署、配置相關基礎內容。 2、Flink基礎系列 本部分介紹Flink 的基礎部分&#xff0c;比如術語、架構、編程模型、編程指南、基本的…

npm install報錯ERR code ETIMEDOUT的解決辦法

//1.查看npm鏡像設置 npm config get registry //2.將npm設置為淘寶鏡像 npm config set registry https://registry.npm.taobao.org //3.再次查看npm鏡像設置 npm config get registry //4.重新install npm install要查看npm源&#xff0c;可以使用以下命令&#xff1a; 1. 查…

行人重識別paper匯總

文章目錄 2021Learning Generalisable Omni-Scale Representations for Person Re-Identification 參考 2021 Learning Generalisable Omni-Scale Representations for Person Re-Identification code: https://github.com/KaiyangZhou/deep-person-reid 摘要&#xff1a;一…