HDFS 사용 권한 복원

중요

Microsoft SQL Server 2019 빅 데이터 클러스터 추가 기능이 사용 중지됩니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일에 종료됩니다. Software Assurance를 사용하는 SQL Server 2019의 모든 기존 사용자는 플랫폼에서 완전히 지원되며, 소프트웨어는 지원 종료 시점까지 SQL Server 누적 업데이트를 통해 계속 유지 관리됩니다. 자세한 내용은 공지 블로그 게시물Microsoft SQL Server 플랫폼의 빅 데이터 옵션을 참조하세요.

HDFS ACL(액세스 제어 목록) 수정이 HDFS의 /system 폴더 및 /tmp 폴더에 영향을 미쳤을 수 있습니다. 가장 가능성이 높은 ACL 수정의 원인은 사용자가 폴더 ACL을 수동으로 조작하는 것입니다. /system 폴더 및 /tmp/logs 폴더의 사용 권한 직접 수정은 지원되지 않습니다.

증상

SPARK 작업은 ADS를 통해 제출되며 SparkContext 초기화 오류 및 AccessControlException으로 실패합니다.

583 ERROR spark.SparkContext: Error initializing SparkContext.
org.apache.hadoop.security.AccessControlException: Permission denied: user=<UserAccount>, access=WRITE, inode="/system/spark-events":sph:BDCAdmin:drwxr-xr-x

Yarn UI는 KILLED 상태의 애플리케이션 ID를 표시합니다.

도메인 사용자로 폴더에 쓰려고 하면 실패합니다. 다음 예제를 사용하여 테스트할 수 있습니다.

kinit <UserAccount>
hdfs dfs -touch /system/spark-events/test
hdfs dfs -rm /system/spark-events/test

원인

HDFS ACL이 BDC 사용자 도메인 보안 그룹에 대해 수정되었습니다. 가능한 수정 사항에 /system 및 /tmp 폴더에 대한 ACL이 포함되었습니다. 이러한 폴더의 수정은 지원되지 않습니다.

Livy 로그의 효과를 확인합니다.

INFO utils.LineBufferedStream: YYYY-MM-DD-HH:MM:SS,858 INFO yarn.Client: Application report for application_1580771254352_0041 (state: ACCEPTED)
...
WARN rsc.RSCClient: Client RPC channel closed unexpectedly.
INFO interactive.InteractiveSession: Failed to ping RSC driver for session <ID>. Killing application

YARN UI는 애플리케이션 ID에 대한 KILLED 상태의 애플리케이션을 표시합니다.

RPC 연결 종료의 근본 원인을 파악하려면 애플리케이션에 해당하는 앱에 대한 YARN 애플리케이션 로그를 검사합니다. 앞의 예제에서는 application_1580771254352_0041를 참조합니다. kubectl을 사용하여 sparkhead-0 Pod에 연결하고 다음 명령을 실행합니다.

다음 명령은 애플리케이션에 대한 YARN 로그를 쿼리합니다.

yarn logs -applicationId application_1580771254352_0041

아래 결과에서는 사용자의 권한이 거부되었습니다.

YYYY-MM-DD-HH:MM:SS,583 ERROR spark.SparkContext: Error initializing SparkContext.
org.apache.hadoop.security.AccessControlException: Permission denied: user=user1, access=WRITE, inode="/system/spark-events":sph:BDCAdmin:drwxr-xr-x

그 원인은 BDC 사용자가 HDFS 루트 폴더에 재귀적으로 추가되었기 때문일 수 있습니다. 이는 기본 권한에 영향을 미쳤을 수 있습니다.

해결

다음 스크립트를 사용하여 권한 복원: 관리자로 kinit 사용:

hdfs dfs -chmod 733 /system/spark-events
hdfs dfs -setfacl --set default:user:sph:rwx,default:other::--- /system/spark-events
hdfs dfs -setfacl --set default:user:app-setup:r-x,default:other::--- /system/appdeploy
hadoop fs -chmod 733 /tmp/logs
hdfs dfs -setfacl --set default:user:yarn:rwx,default:other::--- /tmp/logs