본문 바로가기

Hadoop

CDH 중 Oozie에서 Permission에러가 나요!

Cloudera를 설치하고, 다른 역할은 다 실행은 됐는데 Oozie에서 Permission 에러가 났다.

다른 서비스는 권한문제가 발생하지 않는데 우지만 권한 문제가 생겨서 해결하는데 어려움을 느꼈다.

다행히 Hive로 생성한 테이블이 HDFS에 잘 저장되었는지 메타스토어에서 확인 해 보면서 문제를 해결하게 됐다.

하이브의 메타정보는 파일의 물리적인 위치와 데이터에 대한 논리적인 정보로 구분할 수 있습니다. 
이 메타정보를 보관하고 사용자의 요청에 따라 관련 정보를 제공하는 곳이 하이브 메타스토어입니다. 

빅데이터-하둡, 하이브로 시작하기, 5. 메타스토어

 

여기서 논리적인 정보에 각 유저와 역할이 포함된다.

내가 났던 에러는 Permission Denied : oozie_oozie_server_1 ...과 같은 에러였는데,  해당 유저는 권한이 없다는 내용의 로그였다.

필자는 클라우데라에서 기본으로 제공하는 Postgresql을 사용했고, 아래 쿼리도 해당 DB에 접속해서 날렸다.

select NAME,OWNER_NAME,OWNER_TYPE from DBS;

위 박스처럼 처럼 쿼리를 하면, 

+--------------+-----------------+----------------+
|     NAME     |    OWNER_NAME   |   OWNER_TYPE   |
+--------------+-----------------+----------------+
| default      |      public     |      ROLE       |
| employee     |      addy       |       USER      |
| test         |      addy       |       USER      |

다음처럼 역할과 소유자, 타입을 볼 수 있다.

이 때 소유자와 역할은 hdfs와 모두 동일했다.

 

다만 실제 메타스토에어서 NAME에 해당하는 셀에 oozie_oozie_server가 할당되어있었고

CDH상의 이름은 oozie_oozie_server_1로 설정되어 있었다.

 

클라우데라에서 우지 설정 - 유저 이름을 메타스토어상의 유저와 동일하게 변경 해 주고 나니 Oozie서버가 정상적으로 작동했었다.

보람찬 삽질이었다.

 

쿼리는 다음 링크를 참고했다.

https://stackoverflow.com/questions/38924710/how-do-i-find-what-user-owns-a-hive-database

 

또한, 하이브와 하둡에 대해 더 알고싶다면

빅데이터-하둡,하이브로 시작하기 https://wikidocs.net/28353

를 참고셨으면 좋겠습니다.

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

'Hadoop' 카테고리의 다른 글

맵리듀스  (0) 2019.11.30
HDFS  (0) 2019.11.30