HDFS のアクセス許可の復元
重要
Microsoft SQL Server 2019 ビッグ データ クラスターのアドオンは廃止されます。 SQL Server 2019 ビッグ データ クラスターのサポートは、2025 年 2 月 28 日に終了します。 ソフトウェア アシュアランス付きの 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 ポッドに接続し、次のコマンドを実行します。
次のコマンドを使用すると、アプリケーションの 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