1. 程式人生 > >HDFS——如何將檔案從HDFS複製到本地

HDFS——如何將檔案從HDFS複製到本地

下面兩個命令是把檔案從HDFS上下載到本地的命令。

get

使用方法:Hadoop fs -get [-ignorecrc] [-crc]

複製檔案到本地檔案系統。可用-ignorecrc選項複製CRC校驗失敗的檔案。使用-crc選項複製檔案以及CRC資訊。

示例:

hadoop fs -get /user/hadoop/file localfile

hadoop fs -get hdfs://host:port/user/hadoop/file localfile

返回值:

成功返回0,失敗返回-1。

copyToLocal

使用方法:hadoop fs -copyToLocal [-ignorecrc] [-crc] URI

除了限定目標路徑是一個本地檔案外,和get命令類似。

也可以用如下的程式可實現將HDFS上的檔案下載到本地。

import java.net.URI;
import java.io.OutputStream;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class FileCopy2Local
{
 public static void main(String[] args) throws Exception
 {
  String dest = "hdfs://localhost:9000/user/laozhao0/cite2.txt";
  String local = "/home/laozhao0/cite2.txt";
  Configuration conf = new Configuration();
  FileSystem fs = FileSystem.get(URI.create(dest),conf);
  FSDataInputStream fsdi = fs.open(new Path(dest));
  OutputStream output = new FileOutputStream(local);
  IOUtils.copyBytes(fsdi,output,4096,true);
 }
}

--------------------- 本文來自 mishidemudong 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/u010159842/article/details/71630268?utm_source=copy