java - 无法从 Java 应用程序访问 HDFS
问题描述
我有一个 clouder 快速启动容器,我尝试使用 java 应用程序获取 HDFS 下的文件列表;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.log4j.BasicConfigurator;
import java.io.IOException;
public class HdfsListing {
public static void main(String[] args) throws IOException {
BasicConfigurator.configure();
Configuration configuration=new Configuration();
configuration.set("fs.default.name","hdfs://172.17.0.2:9000");
FileSystem fs=FileSystem.get(configuration);
Path path=new Path("hdfs://172.17.0.2:9000/user");
FileStatus[] fsl=fs.listStatus(path);
for(FileStatus f:fsl) System.out.println("=======>"+f.getPath().getName());
}
}
当我运行该代码时,我在控制台中收到以下消息
7790 [main] DEBUG org.apache.hadoop.ipc.Client - The ping interval is 60000 ms.
7792 [main] DEBUG org.apache.hadoop.ipc.Client - Connecting to /172.17.0.2:9000
32439 [main] INFO org.apache.hadoop.ipc.Client - Retrying connect to server: 172.17.0.2/172.17.0.2:9000. Already tried 0 time(s); maxRetries=45
...
hadoop下的hosts文件
#127.0.0.1 localhost
#::1 localhost ip6-localhost ip6-loopback
#fe00::0 ip6-localnet
#ff00::0 ip6-mcastprefix
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters
172.17.0.2 quickstart.cloudera quickstart
解决方案
推荐阅读
- vb.net - 声明预期 vb.net
- javascript - 我如何在跨度中使用指针事件样式
- swift - 如何在不创建新的空实例的情况下获取类的实例
- excel - Delete button or hyperlink to each row of the excel table
- javascript - Vue CLI “index.html” 内容
- angular - 打开第二个模态,然后关闭第一个模态
- tensorflow - 没有 CUDA 的 TensorFlow 支持 GPU
- ionic3 - 在“ion-fab-list”元素中,一些按钮显示而其他按钮不显示
- python - 如何删除matplotlib中保存的图像周围的空白?
- javascript - 有没有办法使用 ajax get 请求和返回的 json 数据动态创建表的内容?