Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan Katalog Data AWS Glue sebagai metastore untuk Spark SQL
Menggunakan Amazon EMR release 5.8.0 atau yang lebih baru, Anda dapat mengonfigurasi Spark SQL untuk menggunakan AWS Glue Data Catalog sebagai metastore. Kami merekomendasikan konfigurasi ini ketika Anda memerlukan metastore persisten atau metastore bersama oleh kelompok yang berbeda, Layanan, aplikasi, atau AWS rekening.
AWS Glue adalah layanan ekstrak, transformasi, dan load (ETL) yang dikelola sepenuhnya yang membuatnya sederhana dan hemat biaya untuk mengkategorikan data Anda, membersihkannya, memperkayanya, dan memindahkannya dengan andal di antara berbagai penyimpanan data. Katalog Data AWS Glue menyediakan repositori metadata terpadu di berbagai sumber data dan format data, terintegrasi dengan Amazon EMR serta Amazon, Amazon Redshift, Redshift RDS Spectrum, Athena, dan aplikasi apa pun yang kompatibel dengan metastore Apache Hive. AWS Glue crawler dapat secara otomatis menyimpulkan skema dari data sumber di Amazon S3 dan menyimpan metadata terkait dalam Katalog Data. Untuk informasi selengkapnya tentang Katalog Data, lihat Mengisi Katalog Data AWS Glue di Panduan Pengembang AWS Glue.
Biaya terpisah berlaku untuk AWS Glue. Ada tarif bulanan untuk menyimpan dan mengakses metadata di Katalog Data, tarif per jam yang ditagih per menit untuk ETL pekerjaan AWS Glue dan runtime crawler, dan tarif per jam yang ditagih per menit untuk setiap titik akhir pengembangan yang disediakan. Katalog Data memungkinkan Anda untuk menyimpan hingga satu juta objek tanpa biaya. Jika Anda menyimpan lebih dari satu juta objek, Anda dikenakan biaya USD $1 untuk setiap 100.000 objek lebih dari satu juta. Sebuah objek dalam Katalog Data adalah tabel, partisi, atau database. Untuk informasi lebih lanjut, lihat Harga Glue
penting
Jika Anda membuat tabel menggunakan Amazon Athena atau Amazon Redshift Spectrum sebelum 14 Agustus 2017, database dan tabel disimpan dalam katalog yang dikelola Athena, yang terpisah dari Katalog Data Glue. AWS Untuk mengintegrasikan Amazon EMR dengan tabel ini, Anda harus meningkatkan ke Katalog Data AWS Glue. Untuk informasi selengkapnya, lihat Memutakhirkan ke Katalog Data AWS Glue di Panduan Pengguna Amazon Athena.
Menentukan Katalog Data AWS Glue sebagai metastore
Anda dapat menentukan Katalog Data AWS Glue sebagai metastore menggunakan AWS Management Console, AWS CLI, atau Amazon. EMR API Bila Anda menggunakan CLI orAPI, Anda menggunakan klasifikasi konfigurasi untuk Spark untuk menentukan Katalog Data. Selain itu, dengan Amazon EMR 5.16.0 dan yang lebih baru, Anda dapat menggunakan klasifikasi konfigurasi untuk menentukan Katalog Data yang berbeda. Akun AWS Bila menggunakan konsol, Anda dapat menentukan Katalog Data menggunakan Opsi lanjutan atau Opsi cepat.
catatan
Opsi untuk menggunakan AWS Glue Data Catalog juga tersedia dengan Zeppelin karena Zeppelin dipasang dengan komponen Spark. SQL
IAMizin
Profil EC2 instance untuk klaster harus memiliki IAM izin untuk tindakan AWS Glue. Selain itu, jika Anda mengaktifkan enkripsi untuk objek AWS Glue Data Catalog, peran juga harus diizinkan untuk mengenkripsi, mendekripsi, dan menghasilkan yang AWS KMS key digunakan untuk enkripsi.
Izin untuk tindakan AWS Glue
Jika Anda menggunakan profil EC2 instans default untuk AmazonEMR, tindakan tidak diperlukan. Kebijakan AmazonElasticMapReduceforEC2Role
terkelola yang dilampirkan pada EMR_EC2_DefaultRole
memungkinkan semua tindakan AWS Glue yang diperlukan. Namun, jika Anda menentukan profil dan izin EC2 instance kustom, Anda harus mengonfigurasi tindakan AWS Glue yang sesuai. Gunakan AmazonElasticMapReduceforEC2Role
Kebijakan yang dikelola sebagai titik awal. Untuk informasi selengkapnya, lihat Peran layanan untuk EC2 instance klaster (profil EC2 instance) di Panduan EMR Manajemen Amazon.
Izin untuk mengenkripsi dan mendekripsi Katalog Data Glue AWS
Profil instans Anda memerlukan izin untuk mengenkripsi dan mendekripsi data menggunakan kunci Anda. Anda tidak perlu mengonfigurasi izin ini jika kedua pernyataan berikut berlaku:
-
Anda mengaktifkan enkripsi untuk objek AWS Glue Data Catalog menggunakan kunci AWS terkelola untuk Glue.
-
Anda menggunakan cluster yang Akun AWS sama dengan AWS Glue Data Catalog.
Jika tidak, Anda harus menambahkan pernyataan berikut ke kebijakan izin yang dilampirkan ke profil EC2 instans Anda.
[ { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:
region
:acct-id
:key/12345678-1234-1234-1234-123456789012
" } ] } ]
Untuk informasi selengkapnya tentang enkripsi AWS Glue Data Catalog, lihat Mengenkripsi katalog data Anda di Panduan Pengembang AWS Glue.
Izin berbasiskan sumber daya
Jika Anda menggunakan AWS Glue bersama dengan Hive, Spark, atau Presto di AmazonEMR, AWS Glue mendukung kebijakan berbasis sumber daya untuk mengontrol akses ke sumber daya Katalog Data. Sumber daya ini termasuk database, tabel, koneksi, dan fungsi yang ditetapkan pengguna. Untuk informasi lebih lanjut, lihat AWS Kebijakan sumber daya Glue di AWS Panduan Developer Glue.
Saat menggunakan kebijakan berbasis sumber daya untuk membatasi akses ke Glue AWS dari dalam AmazonEMR, prinsip yang Anda tentukan dalam kebijakan izin harus berupa peran yang ARN terkait dengan profil EC2 instance yang ditentukan saat kluster dibuat. Misalnya, untuk kebijakan berbasis sumber daya yang dilampirkan ke katalog, Anda dapat menentukan peran peran layanan default ARN untuk instance klaster, EC2 EMR_EC2_DefaultRole
sebagaiPrincipal
, menggunakan format yang ditunjukkan dalam contoh berikut:
arn:aws:iam::
acct-id
:role/EMR_EC2_DefaultRole
Bagian acct-id
bisa berbeda dari ID akun AWS Glue. Ini memungkinkan akses dari EMR cluster di akun yang berbeda. Anda dapat menentukan beberapa kepala sekolah, masing-masing dari akun yang berbeda.
Pertimbangan ketika menggunakan AWS Katalog data Glue
Pertimbangkan item berikut saat menggunakan AWS Glue Data Catalog sebagai metastore dengan Spark:
-
Memiliki database default tanpa lokasi URI menyebabkan kegagalan saat Anda membuat tabel. Sebagai solusi, gunakan
LOCATION
untuk menentukan lokasi bucket, sepertis3://
, saat Anda menggunakanEXAMPLE-DOC-BUCKET
CREATE TABLE
. Atau membuat tabel dalam database selain database default. Mengganti nama tabel dari dalam AWS Glue tidak didukung.
Bila Anda membuat tabel Hive tanpa menentukan
LOCATION
, data tabel disimpan di lokasi yang ditentukan olehhive.metastore.warehouse.dir
properti. Secara default, ini adalah lokasi diHDFS. Jika gugus lain perlu mengakses tabel, gagal kecuali memiliki izin yang memadai untuk gugus yang dibuat tabel. Selanjutnya, karena HDFS penyimpanan bersifat sementara, jika cluster berakhir, data tabel hilang, dan tabel harus dibuat ulang. Kami menyarankan Anda menentukanLOCATION
di Amazon S3 saat Anda membuat tabel Hive menggunakan Glue. AWS Atau, Anda dapat menggunakanhive-site
klasifikasi konfigurasi untuk menentukan lokasi di Amazon S3 untukhive.metastore.warehouse.dir
, yang berlaku untuk semua tabel Hive. Jika tabel dibuat di HDFS lokasi dan cluster yang membuatnya masih berjalan, Anda dapat memperbarui lokasi tabel ke Amazon S3 dari dalam Glue AWS . Untuk informasi selengkapnya, lihat Bekerja dengan Tabel di Konsol AWS Glue di Panduan Pengembang AWS Glue.Nilai partisi yang berisi tanda kutip dan apostrof tidak didukung, misalnya,
PARTITION (owner="Doe's").
Statistik kolom
didukung untuk emr-5.31.0 dan yang lebih baru. Menggunakan Otorisasi hive
tidak didukung. Sebagai alternatif, pertimbangkan untuk menggunakan AWS Kebijakan Berbasis Sumber Daya Glue. Untuk informasi selengkapnya, lihat Menggunakan Kebijakan Berbasis Sumber Daya untuk Amazon Access EMR to Glue AWS Data Catalog.