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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

hdfs文件如何导出到服务器,[Hadoop] 如何将 HDFS 文件导出到 Windows文件系统

發(fā)布時(shí)間:2024/7/23 windows 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdfs文件如何导出到服务器,[Hadoop] 如何将 HDFS 文件导出到 Windows文件系统 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

介紹如何在 Windows 環(huán)境中, 將保存在 HDFS 上的文件導(dǎo)出到本機(jī)上

數(shù)據(jù)導(dǎo)入到 HDFS 后

當(dāng)然也要有方法將數(shù)據(jù)從 HDFS 導(dǎo)出到本機(jī)系統(tǒng)上

在 HADOOP?JAVA API 所提供的??FileSystem 類

就提供 copyToLocalFile 函數(shù)將文件復(fù)制回本機(jī)文件系統(tǒng)

理論上這是可以輕易的做到這件事情

但實(shí)際使用時(shí), 才發(fā)現(xiàn)一個(gè)問題

當(dāng)客戶端用的是 windows 而不是 linux

程序也不是在 cluster 主機(jī)上執(zhí)行時(shí)

此時(shí)調(diào)用 copyToLocalFile 函數(shù)

Hadoop 會(huì)丟出一個(gè)例外:

Cannot run program "chmod": CreateProcess error=2, ?t?Χ??????

解決方法是在電腦上安裝 cygwin

這樣 hadoop 就可以調(diào)用到 chmod 命令

但如果要求所有使用者一定要在 window 上安裝 cygwin 這樣也挺怪的

所以想到了另一個(gè)方法

就是直接用 file stream 方式

將 HDFS 數(shù)據(jù)讀出后, 再寫回本地端的文件系統(tǒng)

這樣就可以解決數(shù)據(jù)導(dǎo)出的問題

/*

將 HDFS 上文件, 導(dǎo)出至本機(jī)磁盤上

*/

public void exportFile(Path hdfsSource, String targetPath){

Configuration conf = new Configuration();

conf.set("hadoop.job.ugi","hadoop,supergroup");

String uri="hdfs://cloud-a:9000";

try{

FileSystem fs = FileSystem.get(URI.create(uri),conf);

FSDataInputStream in = fs.open(hdfsSource);

FileOutputStream fos = new FileOutputStream(targetPath);

int bytesRead;

byte[] buffer = new byte[4096];

while ((bytesRead = in.read(buffer)) > 0) {

fos.write(buffer, 0, bytesRead);

}

in.close();

fos.close();

//使用 copyToLocalFile 會(huì)丟出?Cannot run program "chmod"例外

//fs.copyToLocalFile(hdfsSource, new Path(targetPath));

} catch (Exception e) {

System.out.println(e.getMessage());

}

}

總結(jié)

以上是生活随笔為你收集整理的hdfs文件如何导出到服务器,[Hadoop] 如何将 HDFS 文件导出到 Windows文件系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。