HDFS 基本使用

2021-07-31 08:14:03 字數 2566 閱讀 6257

大資料生態技術集群:

hadoop:分布式檔案系統hdfs+分布式計算框架mapreduce+yarn資源排程管理框架

hive:資料倉儲,類似sql

zookeeper:一致性協調

sqoop:資料匯入和資料採集(關係型資料hdfs)

flume:資料採集框架(日誌採集)

storm:實時流式計算框架

spark:記憶體計算框架(sparkcore,sparksql,sparkstreaming),一站式處理

機器學習:

mahout:基於mapreduce的機器學習演算法庫

mllib:基於spark的機器學習演算法庫

學習方法:

1)理解適用場景和基本功能

2)使用(安裝部署,程式設計規範,api)

3)執行機制

4)結構原理

5)原始碼

hadoop常用命令:

1)檢視hdfs檔案系統根目錄:hadoop fs –ls /

2)拷貝本地檔案至hdfs:hadoop fs –copyfromlocal 本地檔案 hdfs路徑或者hadoop fs –put 本地檔案 hdfs路徑

3)拷貝hdfs至本地檔案:hadoop fs –copytolocal hdfs檔案 本地路徑或者hadoopfs –get hdfs檔案 本地路徑

4)hdfs下建立目錄:hadoopfs –mkdir /cq

5)檢視hdfs目錄下的檔案內容:hadoop fs –cat /cq/txt

6)拷貝hdfs檔案至hdfs檔案:hadoop fs –cp 原始檔路徑 目標路徑

hdfs各個組建的功能(適合一次寫多次讀):

1) namenode:第一關係:維護目錄樹,目錄/檔案的元資料,檔案對應的塊索引

第二關係:維護索引塊與datanode的對映關係

2) datanode:實際儲存檔案塊至本地工作目錄

filesystem fs=filesystem.get(new uri(「hdfs://namenodeip:port」),conf,」root」);//fs實際上是distributedfilesystem

fs.copyfromlocalfile(new path(「本地檔案路徑」),new path(「hdfs路徑」));//上傳檔案到hdfs

fs.mkdir(「/cq」);//hdfs建立乙個目錄

fs.delete(「/cq」,true);//遞迴刪除cq目錄

remoteiteratorlistfiles = fs.listfiles(new path(「/」),true);//返回/下的所有檔案(遞迴)

while(listfiles.hasnext()){

locatedfilestatus file=listfiles.next();

system.out.println(「檔名」+file.getpath().getname());

filestatus liststatus=fs.liststatus(newpath(「/」));//返回/下的所有檔案/目錄

for(filestatus f:liststatus){

system.out.println(「檔名」+file.getpath().getname());//列舉所有的檔案/目錄

blocklocation fileblocklocations=fs.getfileblocklocations(newpath(「/jdk」));//返回檔案對應的索引塊資訊

for(blocklocation location: fileblocklocations){

system.out.println(location.getoffset());

system.out.println(location.getnames()[0]);//獲得檔案索引塊所在的節點資訊

fs.setreplication(new path(「/jdk」),2);//設定檔案的副本數量

fs.exist(new path(「/cq」));//判斷是否存在目錄

fs.close();

hdfs i/o操作

in.seek(6);//定位讀的位置

fileoutputstream out=new fileoutputstream(「c:/cq」);//寫到cq檔案中

ioutils.copybytes(in,out,newconfiguration());//拷貝流

ioutils.closestream(in);

ioutils.closestream(out);

fileinputstream in=new fileinputstream(「c:/cq」);//上傳

fsdataoutputstream out=fs.create(new path(「/jdk.tar.gz」));

ioutils.copybytes(in,out,newconfiguration());//拷貝流

HDFS基本操作

使用方法 hadoop fs ls h r 功能 顯示檔案 目錄資訊。示例 hadoop fs ls user hadoop file1 使用方法 hadoop fs mkdir p 功能 在 hdfs 上建立目錄,p 表示會建立路徑中的各級父目錄。示例 hadoop fs mkdir p user...

HDFS基本命令

hadoop的基本命令與linux命令很相似,這裡列舉一下基本的hdfs命令。命令基本格式 hadoop fs cmd args 但建議使用以下格式 hdfs dfs cmd args 1 ls 列出hdfs檔案系統根目錄下的目錄和檔案 hadoop fs ls 列出hdfs檔案系統所有的目錄和檔案...

HDFS基本命令

hdfs常用命令 注 以下執行命令均在spark安裝目錄的bin目錄下。path 為路徑 src為檔案路徑 dist 為資料夾 1 help cmd 顯示命令的幫助資訊 hdfs dfs help ls 1 2 ls r 顯示當前目錄下的所有檔案 r層層循出資料夾 hdfs dfs ls log m...