View a markdown version of this page

Memecahkan masalah umum saat menggunakan Amazon EMR dengan AWS Lake Formation - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memecahkan masalah umum saat menggunakan Amazon EMR dengan AWS Lake Formation

Bagian ini memandu Anda melalui proses pemecahan masalah umum saat menggunakan Amazon EMR dengan AWS Lake Formation.

Akses danau data tidak diperbolehkan

Anda harus secara eksplisit memilih pemfilteran data pada klaster Amazon EMR sebelum Anda dapat menganalisis dan memproses data dalam danau data Anda. Ketika akses data gagal, Anda akan melihat pesan Access is not allowed generik dalam output entri notebook Anda.

Untuk memilih dan mengizinkan pemfilteran data di Amazon EMR, lihat Izinkan pemfilteran data di Amazon EMR di AWS Lake Formation Panduan Developer untuk melihat instruksi.

Kedaluwarsa sesi

Batas waktu sesi untuk EMR Notebooks dan Zeppelin dikendalikan oleh IAM Role untuk pengaturan Maximum CLI/API session duration Lake Formation. Nilai default untuk pengaturan ini adalah satu jam. Ketika sesi kehabisan waktu, Anda akan melihat pesan berikut dalam output entri notebook Anda ketika mencoba untuk menjalankan perintah Spark SQL.

Error 401 HTTP ERROR: 401 Problem accessing /sessions/2/statements. Reason: JWT token included in request failed validation. Powered by Jetty:// 9.3.24.v20180605 org.springframework.web.client.HttpClientErrorException: 401 JWT token included in request failed validation…

Untuk memvalidasi sesi Anda, refresh halaman. Anda akan diminta untuk mengautentikasi ulang menggunakan IdP Anda dan diarahkan kembali ke Notebook. Anda dapat terus menjalankan kueri setelah autentikasi ulang.

Tidak ada izin untuk pengguna pada tabel yang diminta

Ketika mencoba untuk mengakses tabel yang tidak dapat Anda akses, Anda akan melihat pengecualian berikut dalam output entri notebook Anda ketika mencoba untuk menjalankan perintah Spark SQL.

org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: Unable to fetch table table. Resource does not exist or requester is not authorized to access requested permissions. (Service: AWSGlue; Status Code: 400; Error Code: AccessDeniedException; Request ID: …

Untuk mengakses tabel, Anda harus memberikan akses ke pengguna dengan memperbarui izin yang terkait dengan tabel ini dalam Lake Formation.

Mengkueri data lintas akun yang dibagikan dengan Lake Formation

Saat Anda menggunakan Amazon EMR untuk mengakses data yang dibagikan dengan Anda dari akun lain, beberapa pustaka Spark akan mencoba memanggil operasi Glue:GetUserDefinedFunctions API. Karena versi 1 dan 2 dari izin AWS RAM terkelola tidak mendukung tindakan ini, Anda menerima pesan galat berikut:

"ERROR: User: arn:aws:sts::012345678901:assumed-role/my-spark-role/i-06ab8c2b59299508a is not authorized to perform: glue:GetUserDefinedFunctions on resource: arn:exampleCatalogResource because no resource-based policy allows the glue:GetUserDefinedFunctions action"

Untuk mengatasi kesalahan ini, administrator danau data yang membuat berbagi sumber daya harus memperbarui izin terkel AWS RAM ola yang dilampirkan ke berbagi sumber daya. Versi 3 dari izin AWS RAM terkelola memungkinkan kepala sekolah untuk melakukan glue:GetUserDefinedFunctions tindakan.

Jika Anda membuat berbagi sumber daya baru, Lake Formation menerapkan versi terbaru dari izin ter AWS RAM kelola secara default, dan tidak ada tindakan yang diperlukan oleh Anda. Untuk mengaktifkan akses data lintas akun untuk berbagi sumber daya yang ada, Anda perlu memperbarui izin ter AWS RAM kelola ke versi 3.

Anda dapat melihat AWS RAM izin yang ditetapkan ke sumber daya yang dibagikan dengan Anda di AWS RAM. Izin berikut disertakan dalam versi 3:

Databases AWSRAMPermissionGlueDatabaseReadWriteForCatalog AWSRAMPermissionGlueDatabaseReadWrite Tables AWSRAMPermissionGlueTableReadWriteForCatalog AWSRAMPermissionGlueTableReadWriteForDatabase AllTables AWSRAMPermissionGlueAllTablesReadWriteForCatalog AWSRAMPermissionGlueAllTablesReadWriteForDatabase
Untuk memperbarui AWS RAM versi izin terkelola dari berbagi sumber daya yang ada

Anda (administrator danau data) dapat memperbarui izin ter AWS RAM kelola ke versi yang lebih baru dengan mengikuti petunjuk di Panduan AWS RAM Pengguna atau Anda dapat mencabut semua izin yang ada untuk jenis sumber daya dan memberikannya kembali. Jika Anda mencabut izin, AWS RAM hapus berbagi AWS RAM sumber daya yang terkait dengan jenis sumber daya. Saat Anda memberikan kembali izin, buat pem AWS RAM bagian sumber daya baru yang melampirkan versi terbaru izin terkel AWS RAM ola.

Memasukkan ke dalam, membuat, dan mengubah tabel

Menyisipkan, membuat, atau mengubah tabel dalam basis data yang dilindungi oleh kebijakan Lake Formation tidak didukung. Ketika melakukan operasi ini, Anda akan melihat pengecualian berikut ini dalam output entri notebook Anda ketika mencoba untuk menjalankan perintah Spark SQL:

java.io.IOException: com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: …

Untuk informasi selengkapnya, lihat Batasan integrasi Amazon EMR dengan AWS Lake Formation.