[HADOOP] hdfs에서 권한이 거부되었습니다.
HADOOPhdfs에서 권한이 거부되었습니다.
나는 hadoop 분산 파일 시스템에 익숙하지 않은, 내 machine.but에 hadoop 단일 노드의 전체 설치를 완료했습니다.하지만 그 후에 hdfs에 데이터를 업로드하려고 할 때 Permission Denied라는 오류 메시지가 나타납니다.
명령이있는 터미널의 메시지 :
hduser@ubuntu:/usr/local/hadoop$ hadoop fs -put /usr/local/input-data/ /input
put: /usr/local/input-data (Permission denied)
hduser@ubuntu:/usr/local/hadoop$
sudo를 사용하고 sudo 사용자에게 사용자를 추가 한 후 :
hduser@ubuntu:/usr/local/hadoop$ sudo bin/hadoop fs -put /usr/local/input-data/ /inwe
put: org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="":hduser:supergroup:rwxr-xr-x
hduser@ubuntu:/usr/local/hadoop$
해결법
-
==============================
1.dfs 권한을 비활성화하여 임시로이 문제를 해결했습니다. 아래 속성 코드를 추가하여 conf / hdfs-site.xml에
dfs 권한을 비활성화하여 임시로이 문제를 해결했습니다. 아래 속성 코드를 추가하여 conf / hdfs-site.xml에
<property> <name>dfs.permissions</name> <value>false</value> </property>
-
==============================
2.나는 비슷한 상황이었고 여기서 다소 다른 접근 방식이있다.
나는 비슷한 상황이었고 여기서 다소 다른 접근 방식이있다.
HADOOP_USER_NAME=hdfs hdfs dfs -put /root/MyHadoop/file1.txt /
실제로하는 일은 로컬 권한에 따라 로컬 파일을 읽는 것이지만 HDFS에 파일을 배치하면 사용자 hdfs처럼 인증됩니다. 다른 ID (실제 인증 스키마 구성에주의하십시오. 그러나 이는 대개의 경우가 아닙니다)로이 작업을 수행 할 수 있습니다.
장점 :
-
==============================
3.여기서 두 가지 문제가 발생했습니다.
여기서 두 가지 문제가 발생했습니다.
hduser@ubuntu:/usr/local/hadoop$ hadoop fs -put /usr/local/input-data/ /input put: /usr/local/input-data (Permission denied)
여기서 사용자 hduser는 로컬 디렉토리 / usr / local / input-data에 액세스 할 수 없습니다. 즉, 로컬 권한이 너무 제한적입니다. 변경해야합니다.
hduser@ubuntu:/usr/local/hadoop$ sudo bin/hadoop fs -put /usr/local/input-data/ /inwe put: org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="":hduser:supergroup:rwxr-xr-x
여기서 사용자 root (sudo를 사용하고 있기 때문에)는 HDFS 디렉토리 / 입력에 접근 할 수 없습니다. 보시다시피 : hduser : supergroup : rwxr-xr-x는 hduser 만 쓰기 권한이 있다고 말합니다. Hadoop은 특별한 사용자로서 루트를 존중하지 않습니다.
이 문제를 해결하려면 로컬 데이터에 대한 사용 권한을 변경하는 것이 좋습니다.
sudo chmod -R og+rx /usr/local/input-data/
그런 다음 put 명령을 hduser로 다시 시도하십시오.
-
==============================
4.루트에서 hduser로 쉘을 시작하고 명령을 실행하십시오.
루트에서 hduser로 쉘을 시작하고 명령을 실행하십시오.
sudo -u hduser bash hadoop fs -put /usr/local/input-data/ /input
[최신 정보] 또한 hdfs 사용자는 수퍼 유저이며 모든 r / w 권한을가집니다.
-
==============================
5.다음 단계를 사용하여이 문제를 해결했습니다.
다음 단계를 사용하여이 문제를 해결했습니다.
su hdfs hadoop fs -put /usr/local/input-data/ /input exit
from https://stackoverflow.com/questions/11593374/permission-denied-at-hdfs by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Java webapp에 내장 된 클라이언트에 대해 hadoop 시스템 사용자 설정 (0) | 2019.05.29 |
---|---|
[HADOOP] Hadoop : HDFS에서 파일을 압축 하시겠습니까? (0) | 2019.05.29 |
[HADOOP] Hadoop java.io.IOException : Mkdirs가 / some / path를 생성하지 못했습니다. (0) | 2019.05.29 |
[HADOOP] Hadoop DistributedCache는 더 이상 사용되지 않습니다 - 선호하는 API는 무엇입니까? (0) | 2019.05.29 |
[HADOOP] Oozie : Oozie <java> 액션에서 Map-Reduce를 시작 하시겠습니까? (0) | 2019.05.29 |