본문 바로가기

MLOps/트러블 슈팅

[트러블 슈팅] Error initializing SparkContext.org.apache.hadoop.security.AccessControlException: Permission denied

트러블 슈팅

Error initializing SparkContext. 
org.apache.hadoop.security.AccessControlException: 
Permission denied: user=airflow, access=WRITE, inode="/user":root:supergroup:drwxr-xr-x at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:504)

개요

SparkSession 인스턴스 생성할 때는 아무 일 없다가, 세션을 생성하고 CreateDataFrame을 하니까 권한 오류가 생겼다.

 

방법

  • 스크립트를 실행하는 유저한테 권한을 주면 해결
  • hdfs-stie.xml을 수정하면되는데, <value> 태그 안에는 유저명이 아니라  그룹명, 즉, root라는 그룹 명이다.
# vi hdfs-site.xml #

<property>
    <name>dfs.permissions.superusergroup</name> 
    <value>root</value>
</property>

1. 현재 유저

2. 그룹에 유저 추가

sudo usermod -G root -a airflow

 

3. 현재 그룹 확인

# groups <유저명>

 

4. 그리고 제일 중요한 하둡 재시작

  • 설정 파일 수정 후 적용을 위한 재시작(재시작 안 하고 하는 방법이 있나?)
stop-all.sh
start-all.sh

결과

결과는 권한 이슈 잘 넘어가서 데이터프레임 생성 성공

근데, summary 부분은 뉴스 기사 본문 summarization 한 건데,  5번째 뉴스 무슨 일이고..


의문점

스파크 세션이 시작 & DF 생성하는데 6분이나 걸림.

  • 컴퓨터 사양 문제도 있겠지만, 세션을 미리 별도로 실행을 시켜놓고 Task를 줘야 하는 건가?