【HDFS篇05】HDFS客戶端操作 --- IO流操作

輸出倒逼輸入

HDFS客戶端操作 --- IO流操作

HDFS文件上傳

@Test
public void putFileToHDFS() throws IOException, InterruptedException, URISyntaxException {
    // 1 獲取文件系統(tǒng)
    Configuration configuration = new Configuration();
    FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:9000"), configuration, "zhutiansama");

    // 2 創(chuàng)建輸入流
    FileInputStream fis = new FileInputStream(new File("e:/data.txt"));

    // 3 獲取輸出流
    FSDataOutputStream fos = fs.create(new Path("/data.txt"));

    // 4 流對拷,關(guān)鍵
    IOUtils.copyBytes(fis, fos, configuration);

    // 5 關(guān)閉資源
    IOUtils.closeStream(fos);
    IOUtils.closeStream(fis);
    fs.close();
}

HDFS文件下載

// 文件下載
@Test
public void getFileFromHDFS() throws IOException, InterruptedException, URISyntaxException{
    // 1 獲取文件系統(tǒng)
    Configuration configuration = new Configuration();
    FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:9000"), configuration, "zhutiansama");
        
    // 2 獲取輸入流
    FSDataInputStream fis = fs.open(new Path("/data.txt"));
        
    // 3 獲取輸出流,注意Input是從哪里輸入挨务,Output是輸出到哪里
    FileOutputStream fos = new FileOutputStream(new File("e:/data.txt"));
        
    // 4 流的對拷
    IOUtils.copyBytes(fis, fos, configuration);
        
    // 5 關(guān)閉資源
    IOUtils.closeStream(fos);
    IOUtils.closeStream(fis);
    fs.close();
}

定位文件讀取

1.下載第一塊文件數(shù)據(jù)【文件如果過大就會分塊存儲互捌,所以需要分塊讀取】

@Test
public void readFileSeek1() throws IOException, InterruptedException, URISyntaxException{
    // 1 獲取文件系統(tǒng)
    Configuration configuration = new Configuration();
    FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:9000"), configuration, "zhutiansama");
        
    // 2 獲取輸入流
    FSDataInputStream fis = fs.open(new Path("/hadoop-2.7.2.tar.gz"));
        
    // 3 創(chuàng)建輸出流
    FileOutputStream fos = new FileOutputStream(new File("e:/hadoop-2.7.2.tar.gz.part1"));
        
    // 4 流的拷貝
    byte[] buf = new byte[1024];
        
    for(int i =0 ; i < 1024 * 128; i++){
        fis.read(buf);
        fos.write(buf);
    }
        
    // 5關(guān)閉資源
    IOUtils.closeStream(fis);
    IOUtils.closeStream(fos);
}

2.下載第二塊文件數(shù)據(jù)

@Test
public void readFileSeek2() throws IOException, InterruptedException, URISyntaxException{
    // 1 獲取文件系統(tǒng)
    Configuration configuration = new Configuration();
    FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:9000"), configuration, "zhutiansama");
        
    // 2 打開輸入流
    FSDataInputStream fis = fs.open(new Path("/hadoop-2.7.2.tar.gz"));
        
    // 3 定位輸入數(shù)據(jù)位置
    fis.seek(1024*1024*128);
        
    // 4 創(chuàng)建輸出流
    FileOutputStream fos = new FileOutputStream(new File("e:/hadoop-2.7.2.tar.gz.part2"));
        
    // 5 流的對拷
    IOUtils.copyBytes(fis, fos, configuration);
        
    // 6 關(guān)閉資源
    IOUtils.closeStream(fis);
    IOUtils.closeStream(fos);
}

3.合并兩塊文件

按住shift打開cmd,對數(shù)據(jù)進(jìn)行合并
type hadoop-2.7.2.tar.gz.part2 >> hadoop-2.7.2.tar.gz.part1
合并完成后百宇,將hadoop-2.7.2.tar.gz.part1重新命名為hadoop-2.7.2.tar.gz即可

相關(guān)資料

1

本文配套GitHubhttps://github.com/zhutiansama/FocusBigData

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌寺滚,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屈雄,死亡現(xiàn)場離奇詭異玛迄,居然都是意外死亡,警方通過查閱死者的電腦和手機棚亩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門蓖议,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人讥蟆,你說我怎么就攤上這事勒虾。” “怎么了瘸彤?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵修然,是天一觀的道長。 經(jīng)常有香客問我质况,道長愕宋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任结榄,我火速辦了婚禮中贝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘臼朗。我一直安慰自己邻寿,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布视哑。 她就那樣靜靜地躺著绣否,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挡毅。 梳的紋絲不亂的頭發(fā)上蒜撮,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音跪呈,去河邊找鬼段磨。 笑死,一個胖子當(dāng)著我的面吹牛庆械,可吹牛的內(nèi)容都是我干的薇溃。 我是一名探鬼主播菌赖,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼缭乘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起堕绩,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤策幼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后奴紧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體特姐,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年黍氮,在試婚紗的時候發(fā)現(xiàn)自己被綠了唐含。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡沫浆,死狀恐怖捷枯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情专执,我是刑警寧澤淮捆,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站本股,受9級特大地震影響攀痊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拄显,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一苟径、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧躬审,春花似錦涩笤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至炒刁,卻和暖如春恩沽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背翔始。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工罗心, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人城瞎。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓渤闷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親脖镀。 傳聞我的和親對象是個殘疾皇子飒箭,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348