【问题】Java 进行hdfs操作报错

xyh1re 2018-03-17 10:21:12
代码如下:
package hadoop.hdfs;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.net.URI;


/**
* Hadoop HTFS java API 操作
**/
public class HDFSApp {

public static final String HDFS_PATH = "hdfs://localhost:9000";//试过将虚拟机主机名localhost改为ip192.168.100.128
FileSystem fileSystem = null;
Configuration configuration = null;

/**
* 创建HDFS目录
**/
@Test
public void mkdir() throws Exception {
fileSystem.mkdirs(new Path("HDFSApp/test"));
}

@Before
public void setUp() throws Exception {
System.out.println("HDFSApp.setup");
configuration = new Configuration();
fileSystem = FileSystem.get(new URI(HDFS_PATH), configuration, "root"); //这里将root改为虚拟机上的另一用户hadoop也不行
}

@After
public void tearDown() throws Exception {
configuration = null;
fileSystem = null;
System.out.println("HDFSApp.teardown");
}
}

运行测试报错:
java.net.ConnectException: Call From DESKTOP-U3GFKTB/192.168.100.1 to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused: no further information;
Hadoop安装在本地虚拟机上,虚拟机关闭了防火墙,虚拟机ip为192.168.100.128,Windows上可以ping通。另外在xshell上使用hadoop fs -put往hdfs上传文件,上传目录写成hdfs://192.168.100.128:9000/显示同样的错误:Call From localhost/127.0.0.1 to 192.168.100.128:9000 failed on connection exception: java.net.ConnectException: Connection refused;而使用hdfs://localhost:9000/时就能上传成功。为什么会出现Connection refused的情况呢?
...全文
722 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
1.确保宿主机上即windows上修改了hosts文件,hadoop1对应那个ip 2.修改虚拟机上的etc/hosts文件对应的主机名hadoop1和ip关系 3.hadoop的hdfs-site.xml中涉及到localhost的改为主机名hadoop1或者ip都行
xyh1re 2018-03-17
  • 打赏
  • 举报
回复
修改了虚拟机的主机名,并添加了主机名和ip的映射关系,在xhell中可通过目录hdfs://192.168.100.128:9000/上传文件,看来之前的连接失败是由于没有更改主机名导致的。同时将程序中第18行的HDFS_PATH = "hdfs://localhost:9000"中的localhost改为ip192.168.100.128,运行测试成功,但是把localhost改成新的主机名hadoop01就会依然报错:java.lang.IllegalArgumentException: java.net.UnknownHostException: hadoop01,这又是为什么呢

20,808

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧