Menggunakan basis data MySQL eksternal atau Amazon Aurora - Amazon EMR

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

Menggunakan basis data MySQL eksternal atau Amazon Aurora

Untuk menggunakan database MySQL eksternal atau Amazon Aurora sebagai metastore Hive, Anda mengganti nilai konfigurasi default untuk metastore di Hive untuk menentukan lokasi database eksternal, baik pada instance Amazon RDS MySQL atau Amazon Aurora PostgreSQLInstance.

catatan

Hive tidak mendukung atau mencegah akses menulis bersamaan ke tabel metastore. Jika Anda berbagi informasi metastore antara dua kelompok, Anda harus memastikan bahwa Anda tidak menulis ke tabel metastore yang sama secara bersamaan, kecuali jika Anda menulis ke partisi yang berbeda dari tabel metastore yang sama.

Prosedur berikut menunjukkan cara untuk menimpa nilai konfigurasi default untuk lokasi metastore Hive dan mulai cluster menggunakan lokasi metastore ulang.

Untuk membuat metastore terletak di luar cluster EMR
  1. Buat database MySQL atau Aurora PostgreSQL. Jika Anda menggunakan PostgreSQL, Anda harus mengonfigurasinya setelah Anda menyediakan klaster Anda. Hanya MySQL yang didukung pada pembuatan cluster. Untuk informasi tentang perbedaan antara Aurora MySQL dan Aurora PostgreSQL, lihat Ikhtisar Amazon Aurora MySQL dan Bekerja dengan Amazon Aurora PostgreSQL. Untuk informasi tentang cara membuat database Amazon RDS secara umum, lihat https://aws.amazon.com/rds/.

  2. Ubah grup keamanan Anda untuk mengizinkan koneksi JDBC antara database Anda dan grup keamanan ElasticMapReduce-Master. Untuk informasi tentang cara mengubah grup keamanan Anda untuk akses, lihat Bekerja dengan grup keamanan yang dikelola Amazon EMR.

  3. Mengatur nilai-nilai konfigurasi JDBC di hive-site.xml:

    penting

    Jika Anda memberikan informasi sensitif, seperti password, untuk Amazon EMR konfigurasi API, informasi ini ditampilkan untuk account yang memiliki izin yang memadai. Jika Anda khawatir bahwa informasi ini dapat ditampilkan ke pengguna lain, membuat cluster dengan account administratif dan membatasi pengguna lain (IAM pengguna atau orang-orang dengan delegasi mandat) untuk mengakses layanan di cluster dengan menciptakan peran yang secara eksplisit menolak izin untuk elasticmapreduce:DescribeCluster Kunci API.

    1. Membuat file konfigurasi bernama hiveConfiguration.json berisi suntingan ke hive-site.xml Seperti yang ditunjukkan dalam contoh berikut.

      Ganti nama host dengan alamat DNS instans Amazon RDS Anda yang menjalankan database, dan nama pengguna dan kata sandi dengan kredensil untuk database Anda. Untuk informasi selengkapnya tentang menghubungkan ke contoh database MySQL dan Aurora, lihat Menghubungkan ke instans DB yang menjalankan mesin basis data MySQL dan Menghubungkan ke cluster DB Athena di Panduan Pengguna Amazon RDS. javax.jdo.option.ConnectionURL adalah JDBC menghubungkan string untuk metastore JDBC. javax.jdo.option.ConnectionDriverName adalah nama kelas driver untuk metastore JDBC.

      Driver MySQL JDBC diinstal oleh Amazon EMR.

      Properti nilai tidak dapat berisi spasi atau pengembalian carriage. Ini akan muncul semua pada satu baris.

      [ { "Classification": "hive-site", "Properties": { "javax.jdo.option.ConnectionURL": "jdbc:mysql://hostname:3306/hive?createDatabaseIfNotExist=true", "javax.jdo.option.ConnectionDriverName": "org.mariadb.jdbc.Driver", "javax.jdo.option.ConnectionUserName": "username", "javax.jdo.option.ConnectionPassword": "password" } } ]
    2. Rujuk file hiveConfiguration.json ketika Anda membuat kluster seperti yang ditunjukkan dalam perintah AWS CLI berikut ini. Dalam perintah ini, file disimpan secara lokal, Anda juga bisa mengunggah file ke Amazon S3 dan merujuknya di sana, misalnya, s3://DOC-EXAMPLE-BUCKET/hiveConfiguration.json.

      catatan

      Karakter kelanjutan baris Linux (\) disertakan untuk memudahkan pembacaan. Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).

      aws emr create-cluster --release-label emr-7.0.0 --instance-type m5.xlarge --instance-count 2 \ --applications Name=Hive --configurations file://hiveConfiguration.json --use-default-roles
  4. Connect ke node utama cluster Anda.

    Untuk informasi tentang cara menyambung ke node utama, lihat Connect ke node primer menggunakan SSH di Amazon EMR Management Guide.

  5. Buat tabel Hive Anda menentukan lokasi di Amazon S3 dengan memasukkan perintah yang mirip dengan berikut ini:

    CREATE EXTERNAL TABLE IF NOT EXISTS table_name ( key int, value int ) LOCATION s3://DOC-EXAMPLE-BUCKET/hdfs/
  6. Tambahkan script Hive Anda untuk cluster berjalan.

Cluster Hive Anda berjalan menggunakan metastore yang terletak di Amazon RDS. Meluncurkan semua cluster Hive tambahan yang berbagi metastore ini dengan menentukan lokasi metastore.