本文原始碼:GitHub·點這里 || GitEE·點這里
一、HDFS基本概述
1、HDFS描述
大資料領域一直面對的兩大核心模塊:資料存盤,資料計算,HDFS作為最重要的大資料存盤技術,具有高度的容錯能力,穩定而且可靠,HDFS(Hadoop-Distributed-File-System),它是一個分布式檔案系統,用于存盤檔案,通過目錄樹來定位檔案;設計初衷是管理數成百上千的服務器與磁盤,讓應用程式像使用普通檔案系統一樣存盤大規模的檔案資料,適合一次寫入,多次讀出的場景,且不支持檔案的修改,適合做資料分析,
2、基礎架構

HDFS具有主/從體系結構,有兩個核心組件,NameNode與DataNode,
NameNode
負責檔案系統的元資料(MetaData)管理,即檔案路徑名、資料塊ID、存盤位置等資訊,并配置副本策略,處理客戶端讀寫請求,
DataNode
執行檔案資料的實際存盤和讀寫操作,每個DataNode存盤一部分檔案資料塊,檔案整體分布存盤在整個HDFS服務器集群中,
Client
客戶端,檔案切分上傳HDFS的時候,Client將檔案切分成一個一個的Block,然后進行上傳;從NameNode獲取檔案的位置資訊;與DataNode通信讀取或者寫入資料; Client通過一些命令來訪問或管理HDFS,
Secondary-NameNode
不是NameNode的熱備,但是分擔NameNode作業量,比如定期合并Fsimage和Edits,并推送給NameNode;在緊急情況下,可輔助恢復NameNode,
3、高容錯性

資料塊多份復制存盤的示意,檔案/users/sameerp/data/part-0,復制備份設定為2,存盤的block-ids分別為1、3;檔案/users/sameerp/data/part-1,復制備份設定為3,存盤的block-ids分別為2、4、5;任何單臺服務器宕機后,每個資料塊至少還存在一個備份服務存活,不會影響對檔案的訪問,提高整體容錯性,
HDFS中的檔案在物理上是分塊存盤(Block),塊的大小可以通過引數dfs.blocksize來配置,塊設定太小,會增加尋址時間;塊設定的太大,從磁盤傳輸資料的時間會很慢,HDFS塊的大小設定主要取決于磁盤傳輸速率,
二、基礎Shell命令
1、基礎命令
查看Hadoop下相關Shell操作命令,
[root@hop01 hadoop2.7]# bin/hadoop fs
[root@hop01 hadoop2.7]# bin/hdfs dfs
dfs是fs的實作類
2、查看命令描述
[root@hop01 hadoop2.7]# hadoop fs -help ls
3、遞回創建目錄
[root@hop01 hadoop2.7]# hadoop fs -mkdir -p /hopdir/myfile
4、查看目錄
[root@hop01 hadoop2.7]# hadoop fs -ls /
[root@hop01 hadoop2.7]# hadoop fs -ls /hopdir
5、剪貼檔案
hadoop fs -moveFromLocal /opt/hopfile/java.txt /hopdir/myfile
## 查看檔案
hadoop fs -ls /hopdir/myfile
6、查看檔案內容
## 查看全部
hadoop fs -cat /hopdir/myfile/java.txt
## 查看末尾
hadoop fs -tail /hopdir/myfile/java.txt
7、追加檔案內容
hadoop fs -appendToFile /opt/hopfile/c++.txt /hopdir/myfile/java.txt
8、拷貝檔案
copyFromLocal命令和put命令相同
hadoop fs -copyFromLocal /opt/hopfile/c++.txt /hopdir
9、HDFS檔案拷貝到本地
hadoop fs -copyToLocal /hopdir/myfile/java.txt /opt/hopfile/
10、HDFS內拷貝檔案
hadoop fs -cp /hopdir/myfile/java.txt /hopdir
11、HDFS內移動檔案
hadoop fs -mv /hopdir/c++.txt /hopdir/myfile
12、合并下載多個檔案
基礎命令get和copyToLocal命令效果相同,
hadoop fs -getmerge /hopdir/myfile/* /opt/merge.txt
13、洗掉檔案
hadoop fs -rm /hopdir/myfile/java.txt
14、查看檔案夾資訊
hadoop fs -du -s -h /hopdir/myfile
15、洗掉檔案夾
bin/hdfs dfs -rm -r /hopdir/file0703
三、源代碼地址
GitHub·地址
https://github.com/cicadasmile/big-data-parent
GitEE·地址
https://gitee.com/cicadasmile/big-data-parent
推薦閱讀:編程體系整理
| 序號 | 專案名稱 | GitHub地址 | GitEE地址 | 推薦指數 |
|---|---|---|---|---|
| 01 | Java描述設計模式,演算法,資料結構 | GitHub·點這里 | GitEE·點這里 | ☆☆☆☆☆ |
| 02 | Java基礎、并發、面向物件、Web開發 | GitHub·點這里 | GitEE·點這里 | ☆☆☆☆ |
| 03 | SpringCloud微服務基礎組件案例詳解 | GitHub·點這里 | GitEE·點這里 | ☆☆☆ |
| 04 | SpringCloud微服務架構實戰綜合案例 | GitHub·點這里 | GitEE·點這里 | ☆☆☆☆☆ |
| 05 | SpringBoot框架基礎應用入門到進階 | GitHub·點這里 | GitEE·點這里 | ☆☆☆☆ |
| 06 | SpringBoot框架整合開發常用中間件 | GitHub·點這里 | GitEE·點這里 | ☆☆☆☆☆ |
| 07 | 資料管理、分布式、架構設計基礎案例 | GitHub·點這里 | GitEE·點這里 | ☆☆☆☆☆ |
| 08 | 大資料系列、存盤、組件、計算等框架 | GitHub·點這里 | GitEE·點這里 | ☆☆☆☆☆ |
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/139164.html
標籤:其他
下一篇:Java 轉換 PDF 版本
