■ はじめに
以下の以前の記事で
https://dk521123.hatenablog.com/entry/2020/10/12/152659
『エラー「message:Insufficient Lake Formation permission(s) on global_temp」が表示』 っていうのを書いたが、今回は、エラー表示は近いが、 全く別物のトラブルについて扱う。
【1】概要
以下「EMR起動コマンド例」のようにコマンド実行しEMR起動後、 Step実行を行う際に、以下「【2】エラー内容」が表示されてしまい、 実行に失敗してしまう
EMR起動コマンド例
hive --database sample_db -f /xxx/xxx/sample.hql
【2】エラー内容
Caused MetaException(message: Unable to verify existence of default database: com.amazonaws.services.glue.model.AccessDeniedException Insufficient Lake Formation permission(s) on defalut (Service: AWSGlue; Status Code 400; Error Code AccessDeniedException; Request ID ...
【3】原因
(どうも現状のデータカタログ仕様上) Glueデータカタログのクライアント動作として、処理対象リソースに関わらず、 defaultデータベースの存在チェックを確認しにいくため => 対応するには、defaultデータベースが存在し、かつ、 そのdefaultデータベースに対して、アクセスできる必要がある
【4】対処案
前述した原因を踏まえて、以下を2点を行う。 ~~~~~~~ 1)defaultデータベースの作成 2)defaultデータベースへの権限付与 ~~~~~~~
1)defaultデータベースの作成
* Glueの画面から [Data Catalog]-[Databases]から「Add database」で行える
2)defaultデータベースへの権限付与
* EMRのロール「EC2インスタンスプロファイル」に対して Lake formationで defaultデータベースへの describe権限をGrantする
関連記事
Amazon EMR ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/20/230519
Amazon EMR に関するトラブル
https://dk521123.hatenablog.com/entry/2020/08/05/144724
AWS Glue のトラブル ~ job編 - [2] ~
https://dk521123.hatenablog.com/entry/2020/10/12/152659
AWS Lake Formation ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/10/13/094041