使用JavaApi怎么对HDFS进行操作

使用Java Api怎么对HDFS进行操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联公司长期为近千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为尖草坪企业提供专业的网站制作、成都网站设计,尖草坪网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。

使用到的jar包


    
      junit
      junit
      4.10
    
    
    
    
      org.apache.hadoop
      hadoop-client
      ${hadoop.version}
    
    

然后就是操作HDFS的代码

package com.zuoyan.hadoop.hdfs;

import java.io.File;
import java.io.FileInputStream;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

/**
 * use java api operate hdfs
 * 
 * @author beifeng
 * 
 */
public class HdfsApp {

  // get FileSystem
  public static FileSystem getFileSystem() throws Exception {
    Configuration conf = new Configuration();
    FileSystem fileSystem = FileSystem.get(conf);
    return fileSystem;
  }

  public static void read(String fileName) throws Exception {

    FileSystem fileSystem = getFileSystem();

    // read Path
    Path readPath = new Path(fileName);

    FSDataInputStream inStream = fileSystem.open(readPath);

    try {

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

    } catch (Exception e) {
      // TODO: handle exception
      e.printStackTrace();
    } finally {
      // if Exception close Stream
      IOUtils.closeStream(inStream);
    }
  }

  public static void main(String[] args) throws Exception{
      
      //String fileName = "/user/beifeng/mapreduce/wordcount/input/wc.input";
      //read(fileName);
    
      FileSystem fileSystem = getFileSystem();
      //write path
      String putFileName = "/user/beifeng/put-wc.input";
      
      Path writePath = new Path(putFileName);
      
      FSDataOutputStream outputStream = fileSystem.create(writePath);
      
      FileInputStream inputStream = new FileInputStream(
          new File("/opt/modules/hadoop-2.5.0/wc.input"));
      
      try {
        IOUtils.copyBytes(inputStream, outputStream, 4096,false);
      } catch (Exception e) {
        // TODO: handle exception
        inputStream.close();
        outputStream.close();
      }    
  }
}

看完上述内容,你们掌握使用Java Api怎么对HDFS进行操作的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


本文题目:使用JavaApi怎么对HDFS进行操作
网页地址:http://hbruida.cn/article/jdsjce.html