日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hadoop java操作hdfs

發布時間:2025/6/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop java操作hdfs 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

hfds 是一種文件系統,用于存儲hadoop將要處理的數據。適用于大規模分布式數據處理,是一個可擴展行的文件分布式系統;

優點

1、如果出現節點宕機,hdfs,可以持續監視,錯誤檢查,容錯處理,文檔恢復

2、存儲文件巨大,hdfs把文件按塊處理,規定每塊的大小(默認64M)

hdfs常用 命令

命令格式為: hadoop fs -cmd <args>

1、添加目錄

? ? hadoop fs -mkdir args

2、添加文件

? ? hadoop fs -put localfile hdfsfileurl

? ? 備注:put命令,在hdfs文件系統中放入文件,本地文件消失

3、取出文件

? ? hadoop fs -get locaUrl hdfsurl

? ? 備注:get,把hdfs中的文件取回本地。但是hdfs中的文件還存在,相當于copy

4、查看文件

? ? hadoop fs -cat url

? ? 備注:? hadoop fs -cat url|more可以分頁查看

5、刪除文件

? ? hadoop fs -rm url

6、日志方式查看

? ? hadoop fs -tail url

java 程序控制hdfs

在Hadoop中用作文件操作的主類位于org.apache.hadoop.fs軟件包中。包括常見的open、read、write、close。Hadoop文件的API起點是FileSystem類,這是一個與文件系統交互的抽象類,我們通過調用factory的方法FileSystem.get(Configuration conf)來取得所需的FileSystem實例,如下我們可以獲得與HDFS接口的FileSystem對象:

Configuration conf = new Configuration();

FileSystem hdfs = FileSystem.get(conf);//獲得HDFS的FileSystem對象

如果我們要實現HDFS與本地文件系統的交互,我們還需要獲取本地文件系統的FileSystem對象

FileSystem local = FileSystem.getLocal(conf);//獲得本地文件系統的FileSystem對象

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 /** ?* ?*/ package org.jrs.wlh; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; /** ?* @PutMeger.java ?* created at 2013-8-7 上午12:04:08 by jrs521wlh ?* java操作hdfs 往 hdfs中上傳數據 ?* @author jrs521wlh jiangrushe2010@126.com ?* @version $Revision$</br> ?* update: $Date$ ?*/ public class PutMeger { ????? ????public static void main(String[] args) throws IOException { ????????? ????????String[] str = new String[]{"E:\\hadoop\\UploadFileClient.java","hdfs://master:9000/user/hadoop/inccnt.java"}; ????????Configuration conf = new Configuration(); ????????FileSystem fileS= FileSystem.get(conf); ????????FileSystem localFile = FileSystem.getLocal(conf);? //得到一個本地的FileSystem對象 ????????? ????????Path input = new Path(str[0]); //設定文件輸入保存路徑 ????????Path out = new Path(str[1]);? //文件到hdfs輸出路徑 ????????? ????????try{ ????????????FileStatus[] inputFile = localFile.listStatus(input);? //listStatus得到輸入文件路徑的文件列表 ????????????FSDataOutputStream outStream = fileS.create(out);????? //創建輸出流??? ????????????for (int i = 0; i < inputFile.length; i++) { ????????????????System.out.println(inputFile[i].getPath().getName()); ????????????????FSDataInputStream in = localFile.open(inputFile[i].getPath()); ????????????????? ????????????????byte buffer[] = new byte[1024]; ????????????????int bytesRead = 0; ????????????????while((bytesRead = in.read(buffer))>0){? //按照字節讀取數據 ????????????????????System.out.println(buffer); ????????????????????outStream.write(buffer,0,bytesRead); ????????????????} ????????????????? ????????????????in.close(); ????????????} ????????????? ????????}catch(Exception e){ ????????????e.printStackTrace(); ????????} ????} }

總結

以上是生活随笔為你收集整理的hadoop java操作hdfs的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。