HDFS的简介及基本操作(常用的命令参数介绍)
- 目錄
- 前言:
- 1、HDFS基本概念
- 2、HDFS基本操作
- 總結(jié):
目錄
前言:
總算有空來接著寫大數(shù)據(jù)的學(xué)習(xí)筆記了,今天就把之前學(xué)過的HDFS的基礎(chǔ)知識詳細的介紹一下,如有哪點寫的不足希望大家多多指教。
1、HDFS基本概念
1.1、前言:
設(shè)計思想
分而治之:將大文件、大批量文件,分布式存放在大量服務(wù)器上,以便于采取分而治之的方式對海量數(shù)據(jù)進行運算分析。
在大數(shù)據(jù)系統(tǒng)中作用:
為各類分布式運算框架(如:mapreduce,spark,tez,……)提供數(shù)據(jù)存儲服務(wù)。
重點概念:文件切塊,副本存放,元數(shù)據(jù)。
1.2、 HDFS的概念和特性:
首先,它是一個文件系統(tǒng),用于存儲文件,通過統(tǒng)一的命名空間——目錄樹來定位文件;
其次,它是分布式的,由很多服務(wù)器聯(lián)合起來實現(xiàn)其功能,集群中的服務(wù)器有各自的角色;
重要特性如下:
(1)HDFS中的文件在物理上是分塊存儲(block),塊的大小可以通過配置參數(shù)( dfs.blocksize)來規(guī)定,默認大小在hadoop2.x版本中是128M,老版本中是64M
(2)HDFS文件系統(tǒng)會給客戶端提供一個統(tǒng)一的抽象目錄樹,客戶端通過路徑來訪問文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data
(3)目錄結(jié)構(gòu)及文件分塊信息(元數(shù)據(jù))的管理由namenode節(jié)點承擔(dān)
——namenode是HDFS集群主節(jié)點,負責(zé)維護整個hdfs文件系統(tǒng)的目錄樹,以及每一個路徑(文件)所對應(yīng)的block塊信息(block的id,及所在的datanode服務(wù)器)
(4)文件的各個block的存儲管理由datanode節(jié)點承擔(dān)
—- datanode是HDFS集群從節(jié)點,每一個block都可以在多個datanode上存儲多個副本(副本數(shù)量也可以通過參數(shù)設(shè)置dfs.replication)
(5)HDFS是設(shè)計成適應(yīng)一次寫入,多次讀出的場景,且不支持文件的修改
(注:適合用來做數(shù)據(jù)分析,并不適合用來做網(wǎng)盤應(yīng)用,因為,不便修改,延遲大,網(wǎng)絡(luò)開銷大,成本太高)
2、HDFS基本操作
2.1、HDFS的shell(命令行客戶端)操作
HDFS提供shell命令行客戶端,使用方法如下:
2.2 常用命令參數(shù)介紹
- -help 功能:輸出這個命令參數(shù)手冊
- -ls 功能:顯示目錄信息 示例: hadoop fs -ls hdfs://hadoop-server01:9000/ 備注:這些參數(shù)中,所有的hdfs路徑都可以簡寫 –>hadoop fs -ls / 等同于上一條命令的效果
- -mkdir 功能:在hdfs上創(chuàng)建目錄 示例:hadoop fs -mkdir -p /aaa/bbb/cc/dd
- -moveFromLocal 功能:從本地剪切粘貼到hdfs 示例:hadoop fs - moveFromLocal /home/hadoop/a.txt /aaa/bbb/cc/dd
- -moveToLocal 功能:從hdfs剪切粘貼到本地 示例:hadoop fs - moveToLocal /aaa/bbb/cc/dd /home/hadoop/a.txt
- –appendToFile 功能:追加一個文件到已經(jīng)存在的文件末尾示例:hadoop fs -appendToFile ./hello.txt hdfs://hadoop-server01:9000/hello.txt可以簡寫為:Hadoop fs -appendToFile ./hello.txt /hello.txt
- -cat 功能:顯示文件內(nèi)容 示例:hadoop fs -cat /hello.txt
- -text 功能:以字符形式打印一個文件的內(nèi)容 。示例:hadoop fs -text /weblog/access_log.1
- -chgrp -chmod -chown 功能:linux文件系統(tǒng)中的用法一樣,對文件所屬權(quán)限 示例: hadoop fs -chmod 666 /hello.txt hadoop fs -chown someuser:somegrp /hello.txt
- -copyFromLocal 功能:從本地文件系統(tǒng)中拷貝文件到hdfs路徑去 示例:hadoop fs -copyFromLocal ./jdk.tar.gz /aaa/ -copyToLocal 功能:從hdfs拷貝到本地 示例:hadoop fs
- -copyToLocal /aaa/jdk.tar.gz
- -cp 功能:從hdfs的一個路徑拷貝hdfs的另一個路徑 示例: hadoop fs -cp /aaa/jdk.tar.gz /bbb/jdk.tar.gz.2
- -mv 功能:在hdfs目錄中移動文件 示例: hadoop fs -mv
/aaa/jdk.tar.gz / - -get 功能:等同于copyToLocal,就是從hdfs下載文件到本地 示例:hadoop fs -get /aaa/jdk.tar.gz -getmerge 功能:合并下載多個文件 示例:比如hdfs的目錄
/aaa/下有多個文件:log.1, log.2,log.3,… hadoop fs -getmerge /aaa/log.*
./log.sum - -put 功能:等同于copyFromLocal 示例:hadoop fs -put /aaa/jdk.tar.gz /bbb/jdk.tar.gz.2
- -rm 功能:刪除文件或文件夾 示例:hadoop fs -rm -r /aaa/bbb/
- -rmdir 功能:刪除空目錄 示例:hadoop fs -rmdir /aaa/bbb/ccc
- -df 功能:統(tǒng)計文件系統(tǒng)的可用空間信息 示例:hadoop fs -df -h / -
- -du 功能:統(tǒng)計文件夾的大小信息 示例: hadoop fs -du -s -h /aaa/*
- -count 功能:統(tǒng)計一個指定目錄下的文件節(jié)點數(shù)量 示例:hadoop fs -count /aaa/
- -setrep 功能:設(shè)置hdfs中文件的副本數(shù)量 示例:hadoop fs -setrep 3 /aaa/jdk.tar.gz <這里設(shè)置的副本數(shù)只是記錄在namenode的元數(shù)據(jù)中,是否真的會有這么多副本,還得看datanode的數(shù)量>
總結(jié):
對于HDFS來講,如果想達到博主一樣的菜鳥級別的水平,必須得知道以下的幾個知識點:
首先知道HDFS是什么;其次知道三個主要概念即文件切塊、副本存放、元數(shù)據(jù);然后要知道HDFS中對應(yīng)的角色即NameNode、Datanode的工作機制和職責(zé)以及HDFS讀寫數(shù)據(jù)的原理;最后要掌握常用的HDFS-shell命令行。個人感覺如果知道以上的一些知識點,HDFS應(yīng)該算是入門了吧。
接下來將介紹下HDFS的客戶端應(yīng)用開發(fā)等。(
詳見:https://blog.csdn.net/qq_16633405/article/details/78403316)
總結(jié)
以上是生活随笔為你收集整理的HDFS的简介及基本操作(常用的命令参数介绍)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Day07-函数(2)
- 下一篇: 离线地图使用方法