windows环境下 kettle向hdfs写数据问题Caused by: org.pentaho.bigdata.api.hdfs.exceptions.AccessControlException

windows环境下 kettle向hdfs写数据的时候可能出现的问题
Caused by: org.pentaho.bigdata.api.hdfs.exceptions.AccessControlException: Permission denied: user=Alex, access=WRITE, inode="/user/root/etl":root:supergroup:drwxr-xr-x
其中 user=Alex Alex是指你windows系统的用户名,原因是kettle会自动使用win10当前的用户名,向hdfs读写数据
这个异常的主要原因是当前用户没有对应的hdfs文件夹的写权限,导致异常。
解决方法如下:
1 开起ACL权限开关
(1)如果是Apache Hadoop:修改hdfs-site.xml的配置,并重启

       

 
           dfs.namenode.acls.enabled
           true
 

 (2)如果是CDH,登陆Cloudera Manager,选中HDFS,点击【配置】,在搜索栏中输入acl进行搜索,将【启用访问控制列表】选项选中,然后点 击【保存更改】,然后重启HDFS
2 在hdfs上创建新用户hn 并赋予其权限 创建的新用户的名字要和你当前win10系统用户名一样,比如我的win10 用户名为Alex 则把下面的hn 换成Alex就可以了
  hadoop fs -mkdir /user/hn
  hadoop fs -chown hn:hdfs /user/hn
  
  使用hsdf dfs -getfacl /  命令能够得到当前/文件夹的权限。
  hdfs dfs -setfacl -m user:hn:rwx / 为hn用户在/文件夹下添加rwx权限
  注意 把 hn 换成你的win10系统用户名
  
  hsdf dfs -getfacl / 再次查看当前/文件夹的权限。
至此 windows环境下 kettle向hdfs写数据的时候出现的此问题已经解决了
参考文章:
https://blog.csdn.net/wild46cat/article/details/84782417
https://blog.csdn.net/wild46cat/article/details/69664376
https://blog.csdn.net/qq_35440040/article/details/83109981

  

你可能感兴趣的:(大数据)