• hadoop操作权限问题:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable


      今天想从Eclipse向hdfs上传文件时遇到了一个权限问题,日志如下:

      ERROR hive.log: Got exception: org.apache.hadoop.security.AccessControlException Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x  
            at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkFsPermission(FSPermissionChecker.java:271)  
            at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:257)  
            at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:238)  
            at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:179)  
            at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:5584)  
            at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:5566)  
            at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkAncestorAccess(FSNamesystem.java:5540)  
            at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirsInternal(FSNamesystem.java:3685)  
            at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirsInt(FSNamesystem.java:3655)  
            at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirs(FSNamesystem.java:3629)  
            at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.mkdirs(NameNodeRpcServer.java:741)  
            at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.mkdirs(ClientNamenodeProtocolServerSideTranslatorPB.java:558)  
            at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)  
            at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)  
            at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1026)  
            at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1986)  
            at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1982)  
            at java.security.AccessController.doPrivileged(Native Method)  
            at javax.security.auth.Subject.doAs(Subject.java:415)  
            at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1554)  
            at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1980)

      

      从日志内容可以看出错误原因是因为权限问题导致的,即我不能使用root用户进行写操作,因为hdfs文件系统的写权限只是属于hadoop用户的。如下图所示:

      所以,我们需要重新赋予权限。

      hdfs dfs -chmod -R 777 /phone  //此操作需要切换到hadoop用户

      或者,我们进入配置文件hdfs-site.xml中,并加入下面配置内容:

     <property>
      <name>dfs.permissions</name>
      <value>false</value>
     </property>

      经过上述操作之后就可以正常执行写操作了,我的文件也成功上传到了hdfs中。

    以上就是博主为大家介绍的这一板块的主要内容,这都是博主自己的学习过程,希望能给大家带来一定的指导作用,有用的还望大家点个支持,如果对你没用也望包涵,有错误烦请指出。如有期待可关注博主以第一时间获取更新哦,谢谢! 

     版权声明:本文为博主原创文章,未经博主允许不得转载。

      

  • 相关阅读:
    python12306抢票
    函数、迭代器、生成器、装饰器
    类(面向对象、增删改查、继承、多态、封装、反射)
    js循环、异常、函数
    js引入、注释、事件
    天融信护网面试
    Java URL处理
    Java多线程编程
    Java网络编程
    Java序列化
  • 原文地址:https://www.cnblogs.com/zimo-jing/p/8796482.html
Copyright © 2020-2023  润新知