您的位置:首页 > 编程语言 > Java开发

Hadoop java实现读取hdfs文件

2017-02-19 20:22 459 查看

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


谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: