복붙노트

[HADOOP] 권한이 거부되어 "hadoop fs -mkdir"이 실패하는 이유는 무엇입니까?

HADOOP

권한이 거부되어 "hadoop fs -mkdir"이 실패하는 이유는 무엇입니까?

VMM 머신에서 Cloudera를 사용하고 있습니다. 불행히도 HDFS로 데이터를 복사하는 데 문제가 있습니다. 다음과 같은 문제가 있습니다.

[cloudera@localhost ~]$ hadoop fs -mkdir input
mkdir: Permission denied: user=cloudera, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x

나는이 VM의 보안에 대해 너무 걱정하지 않는다. 어쨌든 내가 HDFS에서 더 많은 보안을 열 수 있을까?

해결법

  1. ==============================

    1.hadoop에서 mkdir을 사용하려면 "hadoop 파일 권한"이 필요합니다. 예제에서 hdfs는 폴더를 만들 권한이있는 사용자임을 알 수 있습니다. 따라서 다음을 실행하는 경우 :

    hadoop에서 mkdir을 사용하려면 "hadoop 파일 권한"이 필요합니다. 예제에서 hdfs는 폴더를 만들 권한이있는 사용자임을 알 수 있습니다. 따라서 다음을 실행하는 경우 :

    sudo -u hdfs hadoop fs -mkdir /import
    

    가져 오기 폴더가 생성됩니다. 이 폴더의 소유자를 변경하려면 다음을 실행하십시오.

    sudo -u hdfs hadoop fs -chown new_user /import
    

    이제 new_user는 가져 오기 폴더 내의 파일을 조작 할 수 있습니다.

  2. ==============================

    2.위의 명령을 실행할 때 hdfs 홈 디렉토리 (/ user / cloudera)가 없으면 해당 디렉토리가 먼저 작성된 다음 디렉토리 입력이 / user / cloudera 아래에 작성됩니다

    위의 명령을 실행할 때 hdfs 홈 디렉토리 (/ user / cloudera)가 없으면 해당 디렉토리가 먼저 작성된 다음 디렉토리 입력이 / user / cloudera 아래에 작성됩니다

    cloudera 사용자가 자신의 디렉토리를 만들 수있는 권한을 부여하려면 허가를 받아야합니다. hdfs 사용자는 hdfs에있는 admin 사용자로서 hdfs로 전환 한 후 다음 명령을 실행합니다

    [hdfs@localhost~]$ hadoop fs -mkdir /user/cloudera ; hadoop fs -chmod 777  /user/cloudera
    

    또는

    hdfs 보안에 너무 관심이 없다면 hdfs-site.xml에서 below 속성을 false로 설정하여 hdfs 사용 권한을 사용하지 않도록 설정하십시오

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

    이 속성을 false로 설정 한 후 hdfs를 다시 시작해야합니다.

  3. ==============================

    3.cloudera 관리자에서 설정을 변경할 수 있습니다 : hdfs-> configuration-> view & edit, HDFS 권한 확인 dfs.permissions의 선택을 취소하고 hdfs를 다시 시작하십시오.

    cloudera 관리자에서 설정을 변경할 수 있습니다 : hdfs-> configuration-> view & edit, HDFS 권한 확인 dfs.permissions의 선택을 취소하고 hdfs를 다시 시작하십시오.

  4. ==============================

    4./ etc / group에 수퍼 그룹을 작성하여이 문제를 해결하고 그 사용자 로그인을 업데이트했습니다. 나는 사용자가 HDFS supergroup에 속해 있어야 HDFS에 쓸 수있는 권한이 있어야 함을 의미합니다.

    / etc / group에 수퍼 그룹을 작성하여이 문제를 해결하고 그 사용자 로그인을 업데이트했습니다. 나는 사용자가 HDFS supergroup에 속해 있어야 HDFS에 쓸 수있는 권한이 있어야 함을 의미합니다.

    $ vi / etc / group

    슈퍼 그룹 : x : 30000 : 루트

    나중에 HDFS에 쓸 수있었습니다. 희망이 도움이된다.

  5. from https://stackoverflow.com/questions/22676593/why-does-hadoop-fs-mkdir-fail-with-permission-denied by cc-by-sa and MIT license