java.net.ConnectException: Call *** to master:** failed on connection exception

踩坑 java调用hadoop api 连接拒绝

java.net.ConnectException: Call *** to master:** failed on connection exception: java.net.ConnectException: Connection refused: no further information;
##要使用宿主机中的 java 代码访问客户机中的 hdfs,需要保证以下几点:
 1.确保宿主机与客户机的网络是互通的
 2.确保宿主机和客户机的防火墙都关闭,因为很多端口需要通过,为了减少防火墙配置,直接关闭
 3.确保宿主机与客户机使用的 jdk 版本一致。如果客户机使用 jdk7,宿主机使用 jdk8,那么代码运行时会报不支持的版本的错误
 4.宿主机的登录用户名必须与客户机的用户名一直。比如我们 linux 使用的是 hadoop 用户,那么 windows 也要使用 hadoop 用户,否则会报权限异常
##问题解决办法:
1.检查hadoop安装路径下etc/hadoop/core-site.xml
vim etc/hadoop/core-site.xml 查看fs.defaultFS中配置的名称和端口是否一致 我的是8020
在这里插入图片描述
2. 检查防火墙是否关闭 root用户(普通用户切换sudo root)
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off
3.先用windows的cmd窗口 看是否能ping同 不能ping同
检查C:\Windows\System32\Drivers\etc\hosts 是否配置了依赖
在这里插入图片描述
4.解决无权限访问 设置Configuration中的属性 Configuration相当于hadoop的配置文件
下边是代码配置

public class testUtil {
	 /**
     * HDFS的路径,core-site.xml中配置的端口号
     */
    public static final String HDFS_PATH = "hdfs://master:8020/";
	/**
     * 解决无权限访问,设置远程hadoop的linux用户名称
     */
    public static final String USER = "hadoop";
   /**
     * 先执行
     * @throws Exception
     */
	Configuration conf =null;
	FileSystem fs=null;
	@Before
	public  void  init() throws Exception{
		//读取classpath下的xxx-site.xml 配置文件,并解析其内容,封		装到conf对象中
		conf =new Configuration();
		//也可以在代码中对conf中的配置信息进行手动设置,会覆盖掉配置		文件中的读取的值
		conf.set("fs.defaultFS", HDFS_PATH);
		//根据配置信息,去获取一个具体文件系统的客户端操作实例对象
		fs=FileSystem.get(new URI(HDFS_PATH), conf, USER);
		System.out.println("HDFSApp is setUp.....");
	}
	 /**
     * 最后执行
     * @throws Exception
     */
    @After
    public void tearDown() throws Exception {
    	conf= null;
        fs = null;
        System.out.println("HDFSApp is tearDown....");
    }
	 /**
     * 创建目录
     * @throws Exception
     */
    @Test
    public void mkdir() throws Exception{
    	fs.mkdirs(new Path(HDFS_PATH+"/999"));
    	System.err.println("HDFS DIR MAKE TURE");
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42656458/article/details/112967485