Access error : Spark query from AWS EMR with AWS Lake Formation

0

I am trying to integrate EMR with Lake Formation. The EMR cluster has been created with Default Roles for both EMR and EC2 instances. In addition to the default permissions created in those Roles, I have also provided full access on Lake formation and Glue to the Default roles . I selected the default Service linked Role for all s3 buckets registered with this Lake formation.

After creating Jupyter notebook, which uses the above created cluster, I tried running

spark.sql ("show databases") and spark.sql("use <database>")

to get the following error

An error was encountered: org.apache.spark.sql.catalyst.analysis.AccessControlException: Unable to verify existence of default database: com.amazonaws.services.glue.model.AccessDeniedException: Insufficient Lake Formation permission(s) on default (Service: AWSGlue; Status Code: 400; Error Code: AccessDeniedException; Request ID: .....; Proxy: null);

I think i have tried everything with permissions and not able to understand the root cause for the error. Appreciate any pointers which would help understand / resolve the error. Many Thanks.

已提問 2 年前檢視次數 2760 次
1 個回答
2

I was able to resolve this error - When spark tries connecting to Lake formation, it checks if 'default' database exists. Since my Lake formation did not have a database named 'default', hence the error. Creating a database named 'default' and granting permission on Database to the default EMR_EC2_DefaultRole resolved the error

已回答 2 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南