hadoop可以从命令行上使用hadoop fs [command]来读取文件系统中的文件。同时也可以使用java接口来实现这些功能。
刚写好了一个权威指南上的例子,附上代码:
package baseOperation;
import java.io.InputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
import org.apache.hadoop.io.IOUtils;
public class FileSystemCat {
public static void main(String[] args) throws Exception{
String uri = "hdfs://localhost/user/root/Esther/pome";
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(uri),conf);
InputStream in = null;
try{
in = fs.open(new Path(uri));
IOUtils.copyBytes(in,System.out,4096,false);
}finally{
IOUtils.closeStream(in);
}
}
}
在导入hadoop 的conf文件、一些jar包信息之后,编译出错:
Could not find or load main class baseOperation.FileSystemCat
这个问题后来解决了,是类文件放的是文件夹下面而不是包下面,重新建立一个包,然后将源文件放进去就行,如下
网上也有其他的解决办法,
选择use as source folder就可以了。
现在设置好了以后,右键点击Run as ----> run on hadoop运行之后,出现远程连接错误,应该是eclipse与hadoop的连接问题,初步断定应该是两者的配置问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)