Hadoop java实现读取hdfs文件

来源:互联网 发布:淘宝直播有假货吗 编辑:程序博客网 时间:2024/05/29 03:18

java实现读取hadoop的hdfs文件

ubuntu14.04 下 hadoop 的安装和eclipse配置hadoop的文档参考:
安装hadoop http://www.powerxing.com/install-hadoop/
安装eclipse配置hadoop http://www.powerxing.com/hadoop-build-project-using-eclipse/

进行eclipse的hadoop操作前启动hadoop

启动命令hadoop@h:/usr/local/hadoop$ sbin/start-dfs.sh 检查是否成功hadoop@h:/usr/local/hadoop$ jsp如果出现jps、SecondaryNameNode、NameNode、DataNode说明成功启动或者浏览器访问 http://localhost:50070关闭命令hadoop@iiip-Lenovo:/usr/local/hadoop$ sbin/stop-dfs.sh 

安装完成后可以在eclipse里看到文件结构:
这里写图片描述

再次强调一定要启动hadoop,并且安装是按照上面的教程完成。

eclipse中input的文件夹对应着hdfs的文件目录,在eclipse中可视化
然后编码实现读取这里面的文档,编码实现

package org.apache.hadoop.examples;import java.io.InputStream;import java.net.URL;import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;import org.apache.hadoop.io.IOUtils;/** * 读出文件控制台输出 * @author hadoop * */public class ReadHdfsFile {    public static final String HDFS_PATH = "hdfs://localhost:9000/user/hadoop/input/input.txt";    //这里的路由要正确,对应着上面的截图    public static void main(String[] args) throws Exception{        URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());        final URL url = new URL(HDFS_PATH);        final InputStream in = url.openStream();        /**         * in 输入流         * out输出流         * 1024 buffersize 缓存区大小自定义大小         * close 是否关闭流         */        IOUtils.copyBytes(in, System.out, 1024, true);    }}

ps:

如果报错
java.net.NoRouteToHostException: 没有到主机的路由….
这类的,请查看
1. 代码中这一行是否正确

    public static final String HDFS_PATH = "hdfs://localhost:9000/user/hadoop/input/input.txt";    //这里的路由要正确,对应着上面的截图
  1. 确认防火墙是否关闭成功
    window系统
service iptables stop  

ubuntu系统

sudo ufw disable

谢谢。

0 0