也许我的问题有点愚蠢,但我想访问主机Windows环境中的hdfs文件,特别是在eclipse中。Hadoop和所有相关的东西都安装在VirtualBox上(使用Hortonworks Sandbox env.With Centos OS)。在虚拟机上,我可以毫无问题地使用hdfs,尝试访问hdfs://192.168.56.101:8020/user/root/vectors/dictionary.file-0
。尝试在eclipse上访问此内容,但遇到异常。
那么,有什么办法可以做到吗?如果可能的话,举个例子就太好了。
问题的主要原因是系统不知道我是谁。我需要一个hadoop的客户端,所以通过在pom:中添加客户端依赖关系来解决这个问题
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.2.0</version>
</dependency>
下面是一个工作示例:
public static void main(String[] args) throws Exception {
try {
Configuration conf = new Configuration();
conf.set("fs.default.name", "hdfs://192.168.56.101:8020");
FileSystem fs = FileSystem.get(conf);
Path pt = new Path("/user/root/vectors/dictionary.file-0");
BufferedReader br = new BufferedReader(new InputStreamReader(fs.open(pt)));
try {
String line;
line = br.readLine();
while (line != null) {
System.out.println(line);
line = br.readLine();
}
} finally {
br.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}