

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
<a name="emr-hive-metastore-external"></a>

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 Postgre. SQLinstance

**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](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Overview.html) PostgreSQL.](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) Untuk informasi tentang cara membuat database Amazon RDS secara umum, lihat [https://aws.amazon.com/rds/](https://aws.amazon.com/rds/).

1. 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](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-man-sec-groups.html).

1. 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 {{hostname}} dengan alamat DNS instans Amazon RDS Anda yang menjalankan database, {{username}} dan {{password}} 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](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html) dan [Menghubungkan ke cluster DB Athena](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Connect.html) 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"
            }
          }
        ]
      ```

   1. Referensi `hiveConfiguration.json` file saat Anda membuat cluster seperti yang ditunjukkan pada AWS CLI perintah berikut. 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.13.0}} --instance-type m5.xlarge --instance-count 2 \
      --applications Name=Hive --configurations file://hiveConfiguration.json --use-default-roles
      ```

1. Connect ke node utama cluster Anda. 

   Untuk informasi tentang cara menyambung ke node utama, lihat [Connect ke node primer menggunakan SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) di *Amazon EMR* Management Guide.

1. 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/
   ```

1. 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. 