Hadoop java实现读取hdfs文件,hadoophdfs
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: 没有到主机的路由…
这类的,请查看
public static final String HDFS_PATH = "hdfs://localhost:9000/user/hadoop/input/input.txt";
//这里的路由要正确,对应着上面的截图
- 确认防火墙是否关闭成功
window系统
service iptables stop
ubuntu系统
sudo ufw disable
谢谢。
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。