Windows使用hadoop问题记录


hadoop

       本人已在centos7上部署了hadoop的集群环境,现在在windows下的idea中进行测试,在测试过程中遇到以下问题,在此做下记录。



如下,测试代码:

// 从hadoop上拉取文件下来到本地    
public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(new URI("hdfs://192.168.3.85:9000"), conf);
        fs.copyToLocalFile(new Path("/file/test"), new Path("E:\\"));
        fs.close();
    }

1、java.io.FileNotFoundException: Hadoop home directory

问题1:java.io.FileNotFoundException: java.io.FileNotFoundException: Hadoop home directory E:\hadoop-3.2.2 does not exist -see https://wiki.apache.org/hadoop/WindowsProblems

原因:在本地做测试的时候,也需要安装一份hadoop。

解决方法:我直接拷贝了一份在centos7上的hadoop安装包,并解压在我的E盘中,该问题解决。

2、WARN - Did not find winutils.exe: {}

问题2:java.io.FileNotFoundException: Could not locate Hadoop executable: E:\hadoop-3.2.2\bin\winutils.exe

原因:在安装的hadoop文件下的bin目录中缺少该winutils.exe程序,该程序是编译后的文件,idea执行需要该程序。

解决方法:如图

默认hadoop中的bin目录

需要添加额外的程序,这里找到winutils-master下自己的相近符合的版本,将其bin目录下的所有文件拷贝到hadoop的bin目录下。

这里附上winutils的下载地址:百度网盘 请输入提取码

提取码:y8n2

        再次启动后,成功将hdfs上的文件拷贝到本地。

3、HADOOP_HOME and hadoop.home.dir are unset

问题3:java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset

原因:在我的电脑中没有给它设置环境变量,因此将环境变量加上。

解决方法:如下图

HADOOP_HOME环境

path环境

       保存再次启动程序,解决问题。

4、No Route to Host from  kafka1/192.168.3.85 to kafka3:8485 failed on socket timeout exception: java.net.NoRouteToHostException: No route to host

问题4:java.net.NoRouteToHostException: No route to host

原因:没有关闭防火墙

解决方法:关闭几个节点中的防火墙, systemctl stop firewalld

5、Caused by: org.apache.hadoop.ipc.RemoteException

问题5:Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=Administrator, access=WRITE, inode="/":auditsys:supergroup:drwxr-xr-x

原因:在java代码中访问hadoop,被通知没有权限的问题。

解决方法:在hadoop的服务器上,最便捷的方式为将所有目录改为 777 权限,命令为

hdfs dfs -chmod 777 -R / 
 

6、Got error, status=ERROR, status message , ack with firstBadLink as 192.168.3.86:9866

问题6:Got error, status=ERROR, status message , ack with firstBadLink as x.x.x.x:xxxx

原因:这个ip的防火墙没关,访问不到。

解决方法:去这一台服务器上,将防火墙给关闭了。命令:systemctl stop firewalld

7、org.apache.hadoop.ipc.RemoteException

(org.apache.hadoop.hdfs.server.namenode.SafeModeException)

问题7:hadoop开启了安全模式

解决方法:hdfs dfsadmin -safemode leave

8、Permission denied: user=Administrator, access=WRITE, inode="/":root:supergroup:drwxr-xr-x

问题7:没有权限

解决方法:FileSystem fs = FileSystem.get(new URI("hdfs://ip:9000/"),conf,"auditsys");

9、java.net.ConnectException: Connection refused: no further

conf.set("fs.defaultFS", "hdfs://ip:9000");
FileSystem fs = FileSystem.get(new URI("hdfs://ip:9000/"),conf,"root");

解决方法:去掉conf.set方法



总结

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值