亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Java流機(jī)制在Hadoop分布式文件系統(tǒng)中的應(yīng)用

        2018-04-09 11:22:40龐雙玉
        電子技術(shù)與軟件工程 2018年5期
        關(guān)鍵詞:分布式系統(tǒng)數(shù)據(jù)

        龐雙玉

        摘 要 本文討論JAVA語(yǔ)言中的流機(jī)制在HDFS分布式文件系統(tǒng)讀寫操作中的應(yīng)用,通過(guò)對(duì)比JAVA中的輸入和輸出流機(jī)制和HDFS的讀寫操作,闡述java流思想的本質(zhì),以及Java在分布式系統(tǒng)開發(fā)中的優(yōu)越性。

        【關(guān)鍵詞】Java 分布式系統(tǒng) 數(shù)據(jù)

        1 引言

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

        Hadoop的核心包括分布式的文件系統(tǒng)存儲(chǔ)即HDFS。Hadoop是用Java語(yǔ)言開發(fā)的,本文討論Java語(yǔ)言中的流機(jī)制在HDFS文件系統(tǒng)設(shè)計(jì)中的應(yīng)用。

        2 Java語(yǔ)言中的流機(jī)制

        流是java語(yǔ)言所特有的機(jī)制,把數(shù)據(jù)的存取想象成從一個(gè)源源不斷的數(shù)據(jù)流中讀取,在Java中,創(chuàng)建輸入和輸出流對(duì)象時(shí),以要操作的文件對(duì)象或者數(shù)據(jù)源頭作為構(gòu)造方法參數(shù),將輸入和輸出流與操作對(duì)象關(guān)聯(lián)。

        流的一端可以是數(shù)據(jù)、設(shè)備、網(wǎng)絡(luò)、內(nèi)存,根據(jù)數(shù)據(jù)的流向,數(shù)據(jù)從網(wǎng)絡(luò),設(shè)備,內(nèi)存等到創(chuàng)建好的流,稱為輸入流,數(shù)據(jù)從創(chuàng)建好的流到網(wǎng)絡(luò),設(shè)備,內(nèi)存等,稱為輸出流。如圖1、圖2所示。

        3 Hadoop和HDFS文件系統(tǒng)

        Hadoop是Apach公司實(shí)現(xiàn)的一個(gè)框架,用Java語(yǔ)言開發(fā),從本質(zhì)上說(shuō),hadoop實(shí)現(xiàn)了一個(gè)分布式集群,這個(gè)集群中有一個(gè)master節(jié)點(diǎn)和多個(gè)slave節(jié)點(diǎn),核心機(jī)制是Map/Reduce數(shù)據(jù)處理機(jī)制和HDFS文件系統(tǒng),HDFS是分布式文件系統(tǒng),它采用數(shù)據(jù)塊和多節(jié)點(diǎn)備份機(jī)制,保證了高可靠性和容錯(cuò)性。

        4 對(duì)HDFS文件系統(tǒng)的訪問(wèn)

        對(duì)HDFS文件系統(tǒng)的訪問(wèn),有兩種方式,一種通過(guò)java.net.URL訪問(wèn),一種是通過(guò)FileSystem來(lái)訪問(wèn)。

        通過(guò)URL訪問(wèn)代碼:

        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對(duì)象打開數(shù)據(jù)流

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

        //IOUtils類實(shí)現(xiàn)字節(jié)復(fù)制,將URL所在的文件內(nèi)容輸出到控制臺(tái)

        } catch (Exception e) {

        System.err.println("Error");

        }finally{

        IOUtils.closeStream(input);

        }

        }

        }

        需要注意的是,程序中的static block代碼塊,這個(gè)代碼塊的作用是,將URL地址轉(zhuǎn)換為一個(gè)HDFS地址,但是JVM只能調(diào)用一次這樣的代碼塊。

        通過(guò)java文件系統(tǒng)來(lái)訪問(wèn)代碼:

        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);

        }

        }

        從上面兩種方式,我們可以看出,對(duì)HDFS文件系統(tǒng)的訪問(wèn),無(wú)論采用以上哪種,都利用java數(shù)據(jù)流方式來(lái)訪問(wèn)和讀寫數(shù)據(jù)。流式數(shù)據(jù)訪問(wèn)的優(yōu)點(diǎn)在于,一次寫入,多次去讀取。

        5 結(jié)論

        Hadoop平臺(tái)本身就是用java實(shí)現(xiàn)的,Java語(yǔ)言跨平臺(tái)的天然特性,使其分別適合于分布式開發(fā),java中的流數(shù)據(jù)訪問(wèn)機(jī)制,正是hadoop中HDFS分布式文件系統(tǒng)數(shù)據(jù)訪問(wèn)的思想原型,流數(shù)據(jù)訪問(wèn)特別適合于需要持續(xù)生成動(dòng)態(tài)數(shù)據(jù)的場(chǎng)景。流式數(shù)據(jù)訪問(wèn),解決了尋址耗時(shí)比較長(zhǎng)的問(wèn)題,更易于實(shí)現(xiàn)對(duì)數(shù)據(jù)的動(dòng)態(tài)的處理,并節(jié)省機(jī)器硬盤空間。

        作者單位

        深圳技師學(xué)院 廣東省深圳市 518000

        猜你喜歡
        分布式系統(tǒng)數(shù)據(jù)
        典型應(yīng)用領(lǐng)域全球定量遙感產(chǎn)品生產(chǎn)體系
        科技資訊(2016年25期)2016-12-27 16:23:06
        以數(shù)據(jù)為中心的分布式系統(tǒng)自適應(yīng)集成方法
        分布式系統(tǒng)中的辯證對(duì)立統(tǒng)一概念與方法
        一種基于Hadoop的海量圖片檢索策略
        焊接工藝仿真訓(xùn)練系統(tǒng)中焊點(diǎn)數(shù)據(jù)的建立方法
        一種借助數(shù)據(jù)處理構(gòu)建的智能食堂管理系統(tǒng)
        數(shù)據(jù)化藝術(shù)的生成探究
        淺談?dòng)?jì)量自動(dòng)化系統(tǒng)實(shí)現(xiàn)預(yù)購(gòu)電管理應(yīng)用
        日韩人妻熟女中文字幕a美景之屋| 国产精品国产三级国产在线观 | 亚洲麻豆视频免费观看| 内射人妻视频国内| 麻豆精产国品| 日本一区二区三区啪啪| 精品女厕偷拍视频一区二区| 免费a级毛片无码a∨中文字幕下载 | 日韩无码视频淫乱| 久久亚洲一级av一片| 国产免费观看久久黄av麻豆| 国产精品激情| 91精彩视频在线观看| 中文字幕一区二区三区精彩视频| 国产内射XXXXX在线| 日本一曲二曲三曲在线| 8x国产精品视频| 亚洲精品综合一区二区三| 欧美激情国产一区在线不卡| 国产丝袜美腿在线视频| 青娱乐极品视觉盛宴国产视频| 先锋影音av资源我色资源| 久久精品国产亚洲av热一区| 日本高清一区二区三区在线观看 | 久久99亚洲网美利坚合众国| 国产69精品麻豆久久| 久久久久免费看成人影片| 欧美日韩综合网在线观看| 成人偷拍自拍在线视频| 曰批免费视频播放免费 | 中文字幕人乱码中文字幕| 无遮挡边吃摸边吃奶边做| 五码人妻少妇久久五码| 少妇连续高潮爽到抽搐| 中文字字幕在线精品乱码| 中文字幕人成人乱码亚洲 | 99噜噜噜在线播放| 国产乱子伦在线观看| 中文字幕人妻系列一区尤物视频| 91国产精品自拍在线观看| 水蜜桃精品一二三|