首页 > 编程 > Java > 正文

Hadoop java实现读取hdfs文件

2019-11-08 02:16:40
字体:
来源:转载
供稿:网友

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"; //这里的路由要正确,对应着上面的截图确认防火墙是否关闭成功 window系统service iptables stop

ubuntu系统

sudo ufw disable

谢谢。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表