读书人

编撰JAVA代码读取Hadoop存储服务器文件

发布时间: 2012-10-28 09:54:44 作者: rapoo

编写JAVA代码读取Hadoop存储服务器文件

前言

?

网络上有关于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的创建

?

1 楼 njchenyi 2010-01-26 我想问一下,你这个程序读取的文件,是保存在hdfs中什么路径的?
我用hadoop fs -ls .列出的目录都是/user/当前登录用户名/......这样的


2 楼 yeminping 2010-01-26 njchenyi 写道我想问一下,你这个程序读取的文件,是保存在hdfs中什么路径的?
我用hadoop fs -ls .列出的目录都是/user/当前登录用户名/......这样的



文件夹多是由自己创建的
hdfs://192.168.4.27:9000/test/问题记录.txt test自己创建的文件夹 3 楼 lym6520 2010-01-26 njchenyi 写道我想问一下,你这个程序读取的文件,是保存在hdfs中什么路径的?
我用hadoop fs -ls .列出的目录都是/user/当前登录用户名/......这样的



这是你创建名称节点时指定的目录,可以通过配置文件进行修改。 4 楼 yangwn 2010-08-05 LZ,我想请教,hdfs://192.168.4.27:9000/test/问题记录.txt
文件名:问题记录.txt,是不是生成的,怎么样指定生成的文件名。一般都是part-0000

读书人网 >软件架构设计

热点推荐