1. 使用Java连接启动时权限问题
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=ASUS, access=WRITE, inode="/output":hadoop:supergroup:drwxr-xr-x
在默认情况下,HDFS客户端API会采用Windows默认用户访问虚拟机上的HDFS。而HDFS在默认情况下,仅有root用户具有读写权限,其他用户仅有读权限,因此会报权限异常错误。因此,在访问HDFS时,需要配置用户。
方法一:
在WordCountDriver.java
上加入
System.setProperty("HADOOP_USER_NAME","root");
方法二:
给hadoop上增加权限
hadoop fs -chmod -R 777 /
方法三:
在hdfs-site.xml中加入
<configuration>
<property>
<name>dfs.permissions</name>
<value>false</false>
</property>
</configuration>
参考文章:
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException):
2. Java连接时dll和exe文件问题
确定对应版本的hadoop.dll和winutils.exe
Exception in thread “main” java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Wi
参考文档:
使用idea在windows上连接远程hadoop开发
3. 安全模式问题
在安全模式下,客户端不能进行任何修改文件的操作,包括上传文件、删除文件、重命名、创建文件夹等操作,只能浏览目录。
解决方法:
- 等待一段时间后自动关闭
- 若未关闭,手动进行关闭。输入
hadoop fs -safemode leave
退出安全模式。