999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Java流機制在Hadoop分布式文件系統中的應用

2018-04-09 11:22:40龐雙玉
電子技術與軟件工程 2018年5期

龐雙玉

摘 要 本文討論JAVA語言中的流機制在HDFS分布式文件系統讀寫操作中的應用,通過對比JAVA中的輸入和輸出流機制和HDFS的讀寫操作,闡述java流思想的本質,以及Java在分布式系統開發中的優越性。

【關鍵詞】Java 分布式系統 數據

1 引言

Apache Hadoop是一個分布式開源的軟件系統框架。它被用于分布文式文件系統和用MAP/REUDUCE機制處理的大數據處理模型中。它包含多個由通用商業硬件組成的計算機集群。Hadoop中所有的模塊設計都基于一個基本的假設即硬件錯誤是普遍發生并且可以自動被處理的。

Hadoop的核心包括分布式的文件系統存儲即HDFS。Hadoop是用Java語言開發的,本文討論Java語言中的流機制在HDFS文件系統設計中的應用。

2 Java語言中的流機制

流是java語言所特有的機制,把數據的存取想象成從一個源源不斷的數據流中讀取,在Java中,創建輸入和輸出流對象時,以要操作的文件對象或者數據源頭作為構造方法參數,將輸入和輸出流與操作對象關聯。

流的一端可以是數據、設備、網絡、內存,根據數據的流向,數據從網絡,設備,內存等到創建好的流,稱為輸入流,數據從創建好的流到網絡,設備,內存等,稱為輸出流。如圖1、圖2所示。

3 Hadoop和HDFS文件系統

Hadoop是Apach公司實現的一個框架,用Java語言開發,從本質上說,hadoop實現了一個分布式集群,這個集群中有一個master節點和多個slave節點,核心機制是Map/Reduce數據處理機制和HDFS文件系統,HDFS是分布式文件系統,它采用數據塊和多節點備份機制,保證了高可靠性和容錯性。

4 對HDFS文件系統的訪問

對HDFS文件系統的訪問,有兩種方式,一種通過java.net.URL訪問,一種是通過FileSystem來訪問。

通過URL訪問代碼:

HDFS的API使用:

public class ExCat {

static{

URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());

}

public static void main(String[] args) {

InputStream input=null;

try {

input = new URL(args[0]).openStream();

//使用java.net.URL對象打開數據流

IOUtils.copyBytes(input,System.out,4096,false);

//IOUtils類實現字節復制,將URL所在的文件內容輸出到控制臺

} catch (Exception e) {

System.err.println("Error");

}finally{

IOUtils.closeStream(input);

}

}

}

需要注意的是,程序中的static block代碼塊,這個代碼塊的作用是,將URL地址轉換為一個HDFS地址,但是JVM只能調用一次這樣的代碼塊。

通過java文件系統來訪問代碼:

packageTestHdfs;

importjava.io.BufferedInputStream;

importjava.io.FileInputStream;

importjava.io.FileNotFoundException;

importjava.io.InputStream;

importjava.io.OutputStream;

importjava.net.URI;

importorg.apache.hadoop.conf.Configuration;

importorg.apache.hadoop.fs.FSDataOutputStream;

importorg.apache.hadoop.fs.FileSystem;

importorg.apache.hadoop.fs.Path;

importorg.apache.hadoop.io.IOUtils;

public class FileCopyFromLocal {

public static void main(String[] args) throws Exception {

String sr="/usr/local/filecontent/exmple";

//本地路徑文件

String des="hdfs://neusoft-master:9000/data/test";

//HDFS的路徑

InputStream in = new BufferedInputStream(new FileInputStream(sr));

//HDFS讀寫的配置文件

Configuration con = new Configuration();

FileSystemfs = FileSystem.get(URI.create(des),con);

OutputStream out = fs.create(new Path(des));

IOUtils.copyBytes(in, out, 4096, true);

}

}

從上面兩種方式,我們可以看出,對HDFS文件系統的訪問,無論采用以上哪種,都利用java數據流方式來訪問和讀寫數據。流式數據訪問的優點在于,一次寫入,多次去讀取。

5 結論

Hadoop平臺本身就是用java實現的,Java語言跨平臺的天然特性,使其分別適合于分布式開發,java中的流數據訪問機制,正是hadoop中HDFS分布式文件系統數據訪問的思想原型,流數據訪問特別適合于需要持續生成動態數據的場景。流式數據訪問,解決了尋址耗時比較長的問題,更易于實現對數據的動態的處理,并節省機器硬盤空間。

作者單位

深圳技師學院 廣東省深圳市 518000

主站蜘蛛池模板: 欧美日韩国产在线播放| 日韩欧美国产中文| 91福利一区二区三区| 国产福利在线观看精品| 国产亚洲视频播放9000| 国产乱人伦偷精品视频AAA| 欧美精品色视频| 久久这里只有精品免费| 毛片一区二区在线看| 免费在线成人网| 亚洲国模精品一区| 国产成人一级| 中国成人在线视频| AV片亚洲国产男人的天堂| 国产成人艳妇AA视频在线| 日韩AV无码一区| 亚洲精品少妇熟女| 中国精品久久| 国产无码精品在线| 欧美国产日韩另类| 波多野结衣视频网站| 国产理论最新国产精品视频| 色香蕉网站| 亚洲首页国产精品丝袜| 91精品啪在线观看国产91九色| 久热精品免费| 久久精品丝袜| 日本91在线| 97在线观看视频免费| 亚洲第一视频网| 91久久夜色精品国产网站| 2021国产乱人伦在线播放| 99热这里只有精品免费| 亚洲无码视频图片| 69精品在线观看| 996免费视频国产在线播放| 国产产在线精品亚洲aavv| 欧美va亚洲va香蕉在线| 久久熟女AV| 亚洲成年人网| 国产乱肥老妇精品视频| 巨熟乳波霸若妻中文观看免费 | 奇米精品一区二区三区在线观看| 九九免费观看全部免费视频| 成人福利在线免费观看| 曰AV在线无码| 国产在线91在线电影| h视频在线播放| 精品国产www| 日韩免费中文字幕| 久热精品免费| 精品国产网站| 91精品视频在线播放| 亚洲国产精品不卡在线| 伊人色综合久久天天| 欧美a在线看| 无码日韩精品91超碰| 国产丝袜啪啪| 国产成人一二三| 婷婷在线网站| 国产污视频在线观看| 国产毛片久久国产| 欧美中文字幕一区| 色妞永久免费视频| 再看日本中文字幕在线观看| 一级黄色网站在线免费看| 国产高颜值露脸在线观看| 伊在人亞洲香蕉精品區| 99福利视频导航| 天天干天天色综合网| 亚洲精品国产综合99久久夜夜嗨| 亚洲系列中文字幕一区二区| 奇米影视狠狠精品7777| 国产乱子伦精品视频| 国内精品自在自线视频香蕉| 99在线观看免费视频| 国产在线日本| 日韩精品亚洲人旧成在线| 91黄视频在线观看| 欧美亚洲国产日韩电影在线| 国产91久久久久久| 成人综合网址|