载入中。。。 'S bLog
 
载入中。。。
 
载入中。。。
载入中。。。
载入中。。。
载入中。。。
载入中。。。
 
填写您的邮件地址,订阅我们的精彩内容:


 
云编程示例 在hadoop中实现文件的读取拷贝与进度显示:FileSystem API
[ 2011/6/26 12:00:00 | By: 梦翔儿 ]
 

import java.io.IOException;
import java.io.InputStream;
import java.net.URI;

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


public class FileSystemCat {

 /**
  * @param args
  * @throws IOException
  */
 public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
  String uri = args[0];
  Configuration conf = new Configuration();
  FileSystem fs = FileSystem.get(URI.create(uri),conf);
  InputStream in = null;
  try {
   in = fs.open(new Path(uri));
   IOUtils.copyBytes(in, System.out, 4096, false);
  } finally {
   // TODO: handle exception
   IOUtils.closeStream(in);
  }
  
  
 }

}

Eclipse输入的参数是这个:hdfs://localhost/user/cloud/test.txt 该文件先传到hdfs中

====

加入seek(0),从头读取,输出两次:

import java.io.IOException;
import java.io.InputStream;
import java.net.URI;

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


public class FileSystemCat {

 /**
  * @param args
  * @throws IOException
  */
 public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
  String uri = args[0];
  Configuration conf = new Configuration();
  FileSystem fs = FileSystem.get(URI.create(uri),conf);
  InputStream in = null;
  try {
   in = fs.open(new Path(uri));
   IOUtils.copyBytes(in, System.out, 4096, false);
   ((FSDataInputStream) in).seek(0);
   IOUtils.copyBytes(in, System.out, 4096, false);
  } finally {
   // TODO: handle exception
   IOUtils.closeStream(in);
  }
  
  
 }

}

=======

从本地拷贝文件到hdfs,并显示进度。

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.util.Progressable;

 

public class FileCopyWithProgress {

 /**
  * @param args
  */
 public static void main(String[] args) throws Exception {
  // TODO Auto-generated method stub
  String localString = args[0];
  String dString = args[1];
  InputStream in = new BufferedInputStream(new FileInputStream(localString));
  Configuration conf = new Configuration();
  FileSystem fs = FileSystem.get(URI.create(dString), conf);
  OutputStream out = fs.create(new Path(dString),new Progressable() {
      
   @Override
   public void progress() {
    // TODO Auto-generated method stub
    System.out.print(".");
    
   }
  });
  IOUtils.copyBytes(in, out, 4096, true);
 }

}
========

示例学自hadoop权威指南,由梦翔儿http://www.dreamflier.net测试运行。

 
 
  • 标签:hadoop 文件读取 
  • 发表评论:
    载入中。。。

     
     
     

    梦翔儿网站 梦飞翔的地方 http://www.dreamflier.net
    中华人民共和国信息产业部TCP/IP系统 备案序号:辽ICP备09000550号

    Powered by Oblog.