java - Java Hadoop 不完整的 HDFS URI,没有主机
问题描述
我正在尝试从 java 应用程序访问 hdfs,但出现错误Incomplete HDFS URI, no host
。
这是我的core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
这是我的java代码:
class AppTest {
private static final String HDFS_PATH = "hdfs:localhost:9000";
private static final String HDFS_USER = "hadoop";
private static FileSystem fileSystem;
@BeforeAll
public static void prepare()
{
try {
Configuration configuration = new Configuration();
configuration.set("dfs.replication", "1");
fileSystem = FileSystem.get(new URI(HDFS_PATH), configuration, HDFS_USER);
} catch (IOException e) {
e.printStackTrace();
} catch(InterruptedException e){
e.printStackTrace();
} catch(URISyntaxException e){
e.printStackTrace();
}
}
@Test
public void mkDir() throws Exception{
fileSystem.mkdirs(new Path("/hdfs-api/test/"));
}
@AfterAll
public static void destroy(){
fileSystem = null;
}
}
它总是抛出错误
java.io.IOException: Incomplete HDFS URI, no host: hdfs:localhost:9000
解决方案
使用netstat -tlpn | grep 9000检查端口是否已启动
将 127.0.0.1 替换为节点真实 IP 地址,例如:hdfs://192.168.10.1:9000
推荐阅读
- python - __subclasscheck__ 调用顺序?
- java - 如何从我的画廊 android 中选择并获取真实 URL 以使用改造将字符串发送到 API
- stata - 如何在使用列名而不是列索引加载数据集时定义变量类型?
- arrays - 在 Swift 中为数组中的任何值断言数组
- android - 如何根据 12 小时格式在 x 轴上以 2:00 小时为间隔绘制小时数?(同步融合颤振图表)
- c# - CS1503 参数 1:无法从 'string' 转换为 'string[*,*]'
- amazon-web-services - 具有带宽限制的云文件存储
- node.js - 如何使用节点 cookie-session 创建 cookie
- java - 有没有办法跳过数组中的索引?
- git - 当没有什么有趣的东西可看时,为什么我的 Github 存储库有很多独特的克隆?