ISEESTARS 2009-12-25
前言
网络上有关于JAVA API读取Hadoop的代码,但资料很杂乱,这边简单用例子记录下如何读取操作。
例子
package hadoop; 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; /** * * @author Administrator */ public class ReadHadoop { public static void main(String[] args) { Configuration conf = new Configuration(); conf.set("hadoop.job.ugi", "root,123"); //设置存储服务器的用户名,密码 String uri = "hdfs://192.168.4.27:9000/test/问题记录.txt"; FSDataInputStream in = null; try { //得到文件系统的实例 FileSystem fs = FileSystem.get(URI.create(uri), conf); //URI.create(uri)要创建 //通过FileSystem的open方法打开一个指定的文件 in = fs.open(new Path(uri)); //将InputStream中的内容通过IOUtils的copyBytes方法拷贝到System.out中 IOUtils.copyBytes(in, System.out, 4096, false); //seek到position 1 in.seek(1); //在执行一边拷贝输出工作 IOUtils.copyBytes(in, System.out, 4096, false); } catch (Exception ex) { System.out.println(ex.getMessage()); } finally { IOUtils.closeStream(in); } } }
注意点
1.设置存储服务器用户名,密码
2.得到文件系统实例的URL的创建