java - 用于在 hdfs 中列出目录的主机和端口

标签 java hadoop hdfs hortonworks-data-platform

首先,我使用 HortonWorks Sandbox 作为 Hadoop dist,完全没有自定义配置。

一旦连接到沙箱,我就可以列出 HDFS 目录的文件:

[root@sandbox ~]# hadoop fs -ls hdfs:///user/guest

但如果我尝试指定主机和端口,我只会收到错误消息:

[root@sandbox ~]# hadoop fs -ls hdfs://localhost:8020/user/guest ls:从 sandbox.hortonworks.com/10.0.2.15 到 localhost:8020 的调用在连接异常时失败:java.net.ConnectException:Connexion refusée;有关详细信息,请参阅:http://wiki.apache.org/hadoop/ConnectionRefused

[root@sandbox ~]# hadoop fs -ls hdfs://localhost:9000/user/guest ls:从 sandbox.hortonworks.com/10.0.2.15 到 localhost:9000 的调用在连接异常时失败:java.net.ConnectException:Connexion refusée;有关详细信息,请参阅:http://wiki.apache.org/hadoop/ConnectionRefused

一旦我知道要使用的正确主机和端口,我就可以在我的 Java 调用中使用它们:

Path pt = new Path("hdfs://host:port/user/guest/test-text-file.txt");

最佳答案

检查 core-site.xml 中属性 fs.defaultFS 的值,其中包含 NameNode 守护程序在其上绑定(bind)的 ip 地址/主机名和端口开始了。

我看到您正在使用 hortonworks 沙箱,这是 core-site.xml 中的属性,它位于 /etc/hadoop/conf/core-site.xml

<property>
  <name>fs.defaultFS</name>
  <value>hdfs://sandbox.hortonworks.com:8020</value>
</property>

所以,你可以尝试这样的事情:

hadoop fs -ls hdfs://sandbox.hortonworks.com:8020/user/guest 

或者您也可以从 /etc/hosts 中的相应条目替换 sandbox.hortonworks.com 的 IP 地址,在我的虚拟机上看起来像这样:

127.0.0.1       localhost.localdomain localhost
192.168.1.3 sandbox.hortonworks.com sandbox

所以,我也可以试试这个:

hadoop fs -ls hdfs://192.168.1.3:8020/user/guest

关于java - 用于在 hdfs 中列出目录的主机和端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27106862/

相关文章:

java - Xamarin.Android 支持 GithubActions 工作流程吗? (或者如何以编程方式安装JDK)

java - 如何使用java使jasper报表中的数据像列表一样显示?

java - 使用 jBullet 的 LWJGL 第一人称相机

spring项目中的java.lang.ClassNotFoundException : org. springframework.web.servlet.DispatcherServlet

linux - ec2 - 4 ubuntu 12.04 t2.micro 相同实例上的 Hadoop 2.2.0 多节点集群设置

hadoop - Apache Giraph 中具有复杂值的顶点

java - 单个 hadoop Mapper 对象是否用于多次调用 map()?

python - HTTP PUT 在 RESTClient 中有效,但在 Postman 或 Python httplib 中无效

hadoop - 我可以强制 YARN 使用 Application Master 容器的主节点吗?

macos - 无法在 mac os 上的 hdfs 上创建目录