다음을 통해 공유


HDFS 권한 복원

Important

Microsoft SQL Server 2019 빅 데이터 클러스터는 사용 중지되었습니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일부터 종료되었습니다. 자세한 내용은 Microsoft SQL Server 플랫폼의 공지 블로그 게시물 및 빅 데이터 옵션을 참조하세요.

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

Symptom

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

애플리케이션 ID가 Yarn UI에서 KILLED 상태로 표시됩니다.

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

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

Cause

BDC 사용자 도메인 보안 그룹에 대해 HDFS ACL이 수정되었습니다. 가능한 수정에는 /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를 가리킵니다. sparkhead-0 Pod에 연결하고 다음 명령을 실행하는 데 사용합니다 kubectl .

다음 명령은 애플리케이션에 대한 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 루트 폴더에 재귀적으로 추가되었기 때문일 수 있습니다. 이는 기본 권한에 영향을 미쳤을 수 있습니다.

Resolution

다음 스크립트를 사용하여 사용 권한을 복원합니다. 관리자와 함께 사용 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