原创:本机的sts或者idea执行MR代码访问虚拟机的hdfs问题(Connection refused、Permission denied)、磁盘占用

1、本机连接虚拟机的hdfs问题:
  1)问题描述:Exception in thread "main" java.net.ConnectException: Call From WDR-20180305RKR/10.25.187.25 to ubuntu:9000 failed on connection exception: java.net.ConnectException: Connection refused: no further information; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused    
  ----问题解决:
    a、到虚拟机中: telnet localhost 9000  看是否连接成功;
    b、在本机,开启windows的telnet功能(控制面板-程序和功能-打开或关闭windows功能,找到telnet,选中-确定即可),然后本机 telnet utuntu 9000 看是否成功;
    c、注意:本机需要配置C:\Windows\System32\drivers\etc下的hosts,管理虚拟机ip和ubuntu这个主机名,如: 192.168.80.88  ubuntu
    d、虚拟机中,hadoop的core-site.xml中的fs.defaultFS的值应该是 hdfs://ubuntu:9000
    e、虚拟机中,/etc/hosts中,应该有 192.168.80.88  ubuntu的配置(注意:千万不能有 127.0.0.1 ubuntu的配置,会导致不能在本机访问虚拟机的hdfs的9000端口);
    f、虚拟机中,netstat -tlpn 可以查看使用了哪些端口,看有没有9000,并且前面的ip应该是192.168.80.88这样的ip;
  2)问题描述:Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=new, access=WRITE, inode="/output/test01":hadoop:supergroup:drwxr-xr-x
  -----问题解决:
    a(下面二选一即可)、
      a1、在hdfs的配置文件中,将dfs.permissions修改为false   
      a2、执行这样的操作 hadoop fs -chmod 777 /user/hadoop
    b、在系统的环境变量里面添加HADOOP_USER_NAME=hadoop(HDFS上的有权限的用户,具体看自己的情况),或者在当前JDK的变量参数里面添加HADOOP_USER_NAME这个Java变量即可;
    System.setProperty("HADOOP_USER_NAME", "hadoop");  ---我使用这个可以
  3)


2、磁盘占用问题:
  1)如果是本机运行idea或者sts的代码访问虚拟机的hadoop,执行mr代码,可能会在本机配置的hadoop路径中产生大量临时文件(参考路径:D:\tmp\hadoop-new\mapred\local\localRunner\new\jobcache);
  2)可以删除这些临时文件;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值