zoukankan      html  css  js  c++  java
  • HDFS API 简单示例

    package com.rabbit.hadoop.hdfs;

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.*;
    import org.apache.hadoop.io.IOUtils;

    import java.io.*;
    import java.net.URI;

    public class TestHDFS {

    public Configuration config = null;
    public FileSystem fs = null;

    public void conn() throws IOException, InterruptedException {
    config = new Configuration(true);
    // FileSystem fs = FileSystem.get(config);
    fs = FileSystem.get(URI.create("hdfs://mycluster"),config,"bigdata");
    }

    public void mkdir() throws IOException, InterruptedException {
    this.conn();
    Path path = new Path("/user/bigdata/idea");
    fs.mkdirs(path);
    this.close();
    }

    public void upload() throws IOException, InterruptedException {
    this.conn();
    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(new File("E:/a.txt")));
    Path path = new Path("/user/bigdata/idea/a.txt");
    FSDataOutputStream fsos = fs.create(path);
    IOUtils.copyBytes(bis,fsos,config,true);
    this.close();
    }

    public void download() throws IOException, InterruptedException {
    this.conn();
    Path path = new Path("/user/bigdata/idea/a.txt");
    FSDataInputStream fsis = fs.open(path);
    BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File("E:/a_hdfs.txt")));
    IOUtils.copyBytes(fsis, bos,config,true);
    this.close();
    }

    public void getBlocks() throws IOException, InterruptedException {
    this.conn();
    Path path = new Path("/user/bigdata/seq.txt");
    FileStatus fileStatus = fs.getFileStatus(path);
    BlockLocation[] blockLocations = fs.getFileBlockLocations(fileStatus, 0, fileStatus.getLen());

    for (BlockLocation blk : blockLocations) {
    System.out.println(blk);
    }

    FSDataInputStream fsis = fs.open(path);
    fsis.seek(1048576);
    System.out.println((char) fsis.readByte());
    System.out.println((char) fsis.readByte());
    System.out.println((char) fsis.readByte());
    System.out.println((char) fsis.readByte());
    System.out.println((char) fsis.readByte());
    System.out.println((char) fsis.readByte());
    System.out.println((char) fsis.readByte());
    System.out.println((char) fsis.readByte());
    System.out.println((char) fsis.readByte());
    System.out.println((char) fsis.readByte());
    System.out.println((char) fsis.readByte());
    System.out.println((char) fsis.readByte());
    System.out.println((char) fsis.readByte());
    System.out.println((char) fsis.readByte());

    this.close();
    }

    public void close() throws IOException {
    fs.close();
    }

    public static void main(String[] args) throws IOException, InterruptedException {
    TestHDFS test = new TestHDFS();
    // test.mkdir();
    // test.upload();
    // test.download();
    test.getBlocks();

    }

    }
  • 相关阅读:
    自己动手写动态网站
    CompareValidator控件
    跨数据库服务器查询和跨表更新
    在Windows 2003 IIS 6.0中配置PHP的运行环境(图)
    sql语句跨服务器跨数据库执行
    ASP语法
    web 中 common
    common js
    经典的SQL面试题
    asp:TextBox 的ReadOnly属性 造成后台无法取到值
  • 原文地址:https://www.cnblogs.com/rabbit624/p/14458662.html
Copyright © 2011-2022 走看看