zoukankan      html  css  js  c++  java
  • Eclipse/MyEclipse向HDFS中如创建文件夹等操作报错permission denied解决办法

      不多说,直接上干货!

      问题现象

      当执行创建文件的的时候,

      即:

    String Path = "hdfs://host2:9000";
    
    FileSystem fileSystem = FileSystem.get(new URI(Path),new Configuration());
    
    String DIR_PATH = "hdfs://host2:9000/user/hadoop/ok";
    
    fileSystem.mkdirs(new Path(DIR_PATH));//想hadoop上创建一个文件报错

      报错:

     org.apache.hadoop.security.AccessControlException:Permission denied:user=Administrator,access=WRITE,inode="tmp":root:supergroup:rwxr-xr-x 

      问题原因

    1. 当前用户是Administrator ,不是hadoop用户

    2. hadoop的默认的hdfs的文件目录是有权限的,要创建位置是目录是用文件权限的

        说明 :

               上面的String  IR_PATH_1 = "hdfs://host2:9000/user/hadoop/ok"; String   IR_PATH_2 = "/ok"; 

                 这个这两个是有区别的,前面的 IR_PATH_1  是要在默认的目录(hdfs://host2:9000)下的/user/hadoop下进行创建文件夹,

         而他的文件为:drwxr-xr-x   - hadoop supergroup          0 2016-07-18 09:04 /user/hadoo    是用户用户hadoop 用户组supergroup 的文件夹

                后面的一个IR_PATH_2 是在根目录(hdfs://host2:9000)下进创建进行创建

      解决办法

      1. 为了使Eclipse能正常对Hadoop集群的HDFS上的文件能进行修改和删除,所以修改你工作时所用的Win7系统管理员名字,默认一般为"Administrator",把它修改为"hadoop",此用户名与Hadoop集群普通用户一致,大家应该记得我们Hadoop集群中所有的机器都有一个普通用户——hadoop,而且Hadoop运行也是用这个用户进行的。为了不至于为权限苦恼,我们可以修改Win7上系统管理员的姓名,这样就避免出现该用户在Hadoop集群上没有权限等都疼问题,会导致在Eclipse中对Hadoop集群的HDFS创建和删除文件受影响。
      (1)选择"本地用户和组",展开"用户",找到系统管理员"Administrator",修改其为"hadoop",
      (2)把电脑进行"注销"或者"重启电脑",这样才能使管理员才能用这个名字。

      2.修改hadoop的配置

    在conf/hdfs-site.xml中加入
    <property>
      <name>dfs.permissions</name>
      <value>false</value>
    </property>
     

      3.修改权限:(windows用户Administrator对hadoop目录并没有写入权限)

      放开 hadoop 目录的权限 , 命令如下 :

    $ hadoop fs -chmod 777 /user/hadoop

       这样是可以进行写入了,但是,这样创建的文件夹信息为:用户为 Administrator

    drwxr-xr-x   - Administrator supergroup          0 2016-07-18 09:12 /user/hadoop/ok

      是Administrator用户的,不是下面的一个文件夹类型一样

    drwxr-xr-x - hadoop supergroup 0 2016-07-18 09:20 /user/hadoop/.Trash
  • 相关阅读:
    springcloud-Ribbon之手写轮询算法
    springcloud-Ribbon负载均衡规则的替换
    git本地库和远程库的连接和断开
    本地项目第一次提交到码云或github
    python基础语法练习
    Xss-labs-level11-15
    Vulnhub-靶机-ESCALATE_LINUX: 1
    Xss-labs-level7-10
    Vulnhub-靶机-DC: 6
    Jenkins入门之执行Powershell脚本
  • 原文地址:https://www.cnblogs.com/zlslch/p/7649985.html
Copyright © 2011-2022 走看看