

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

# Tutorial: Menggunakan Amazon DynamoDB dan Apache Hive
<a name="EMRforDynamoDB.Tutorial"></a>

Dalam tutorial ini, Anda akan meluncurkan klaster Amazon EMR, lalu menggunakan Apache Hive untuk memproses data yang disimpan dalam tabel DynamoDB.

*Hive* adalah aplikasi gudang data untuk Hadoop yang memungkinkan Anda memproses dan menganalisis data dari berbagai sumber. Hive menyediakan bahasa seperti SQL, *HiveQL*, yang memungkinkan Anda menggunakan data yang disimpan secara lokal di klaster Amazon EMR atau sumber data eksternal (seperti Amazon DynamoDB).

Untuk informasi selengkapnya, lihat [tutorial Hive](https://cwiki.apache.org/confluence/display/Hive/Tutorial).

**Topics**
+ [Sebelum Anda mulai](#EMRforDynamoDB.Tutorial.BeforeYouBegin)
+ [Langkah 1: Buat pasangan kunci Amazon EC2](EMRforDynamoDB.Tutorial.EC2KeyPair.md)
+ [Langkah 2: Luncurkan klaster Amazon EMR](EMRforDynamoDB.Tutorial.LaunchEMRCluster.md)
+ [Langkah 3: Hubungkan ke simpul Pemimpin](EMRforDynamoDB.Tutorial.ConnectToLeaderNode.md)
+ [Langkah 4: Muat data ke HDFS](EMRforDynamoDB.Tutorial.LoadDataIntoHDFS.md)
+ [Langkah 5: Salin data ke DynamoDB](EMRforDynamoDB.Tutorial.CopyDataToDDB.md)
+ [Langkah 6: Kueri data dalam tabel DynamoDB](EMRforDynamoDB.Tutorial.QueryDataInDynamoDB.md)
+ [Langkah 7: (Opsional) hapus](EMRforDynamoDB.Tutorial.CleanUp.md)

## Sebelum Anda mulai
<a name="EMRforDynamoDB.Tutorial.BeforeYouBegin"></a>

Dalam tutorial ini, Anda akan memerlukan berikut:
+ Sebuah AWS akun. Jika belum memilikinya, lihat [Mendaftar untuk AWS](SettingUp.DynamoWebService.md#SettingUp.DynamoWebService.SignUpForAWS).
+ Klien SSH (Secure Shell). Anda akan menggunakan klien SSH untuk terhubung ke simpul pemimpin klaster Amazon EMR dan menjalankan perintah interaktif. Klien SSH tersedia secara default pada sebagian besar instalasi Linux, Unix, dan Mac OS X. Pengguna Windows dapat mengunduh dan menginstal klien [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/), yang memiliki dukungan SSH.

**Langkah berikutnya**  
[Langkah 1: Buat pasangan kunci Amazon EC2](EMRforDynamoDB.Tutorial.EC2KeyPair.md)

# Langkah 1: Buat pasangan kunci Amazon EC2
<a name="EMRforDynamoDB.Tutorial.EC2KeyPair"></a>

Pada langkah ini, Anda akan membuat pasangan kunci Amazon EC2. Anda perlu terhubung ke simpul pemimpin Amazon EMR dan menjalankan perintah Hive.

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pilih wilayah (misalnya, `US West (Oregon)`). Ini harus berupa wilayah yang sama dengan tempat tabel DynamoDB Anda berada.

1. Di panel navigasi, pilih **pasangan kunci**.

1. Pilih **Buat pasangan kunci**. 

1. Di **Nama pasangan kunci**, ketik nama untuk pasangan kunci Anda (misalnya, `mykeypair`), lalu pilih **Buat**. 

1. Unduh file kunci privat. Nama file akan diakhiri dengan `.pem` (seperti `mykeypair.pem`). Simpan file kunci privat di tempat yang aman. Anda akan membutuhkannya untuk mengakses klaster Amazon EMR yang Anda luncurkan dengan pasangan kunci ini. 
**penting**  
Jika kehilangan pasangan kunci, Anda tidak dapat terhubung ke simpul pemimpin klaster Amazon EMR Anda.

   Untuk informasi selengkapnya tentang pasangan kunci, lihat [Pasangan Kunci Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) di Panduan Pengguna *Amazon EC2*. 

**Langkah berikutnya**  
[Langkah 2: Luncurkan klaster Amazon EMR](EMRforDynamoDB.Tutorial.LaunchEMRCluster.md)

# Langkah 2: Luncurkan klaster Amazon EMR
<a name="EMRforDynamoDB.Tutorial.LaunchEMRCluster"></a>

Pada langkah ini, Anda akan mengonfigurasi dan meluncurkan klaster Amazon EMR. Hive dan handler penyimpanan untuk DynamoDB akan terinstal di klaster.

1. [Buka konsol EMR Amazon di https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr/)

1. Pilih **Buat Klaster**.

1. Di halaman **Buat Klaster - Opsi Cepat**, lakukan tindakan berikut:

   1. Di **Nama klaster**, ketik nama untuk klaster Anda (misalnya: `My EMR cluster`).

   1. Di **Pasangan kunci EC2**, pilih pasangan kunci yang Anda buat sebelumnya.

   Biarkan pengaturan lainnya tetap default.

1. Pilih **Buat klaster**.

Peluncuran klaster Anda akan memakan waktu beberapa menit. Anda dapat menggunakan halaman **Detail Klaster** di konsol Amazon EMR untuk memantau kemajuannya.

Ketika status klaster berubah menjadi `Waiting`, klaster siap untuk digunakan.

## File log klaster dan Amazon S3
<a name="EMRforDynamoDB.Tutorial.LaunchEMRCluster.LogFilesAndS3"></a>

klaster Amazon EMR menghasilkan file log yang berisi informasi tentang status klaster dan informasi debug. Pengaturan default untuk **Buat Klaster - Opsi Cepat** termasuk menyiapkan pencatatan log Amazon EMR.

Jika belum ada, itu Konsol Manajemen AWS membuat ember Amazon S3. Nama bucket adalah`aws-logs-account-id-region`, di mana ` account-id` nomor AWS akun Anda dan `region` merupakan wilayah tempat Anda meluncurkan cluster (misalnya,`aws-logs-123456789012-us-west-2`).

**catatan**  
Anda dapat menggunakan konsol Amazon S3 untuk melihat file log. Untuk informasi selengkapnya, lihat [Melihat File Log](https://docs.aws.amazon.com/ElasticMapReduce/latest/ManagementGuide/emr-manage-view-web-log-files.html) di *Panduan Manajemen Amazon EMR*.

Anda dapat menggunakan bucket ini untuk tujuan selain pencatatan log. Misalnya, Anda dapat menggunakan bucket sebagai lokasi untuk menyimpan skrip Hive atau sebagai tujuan ketika mengekspor data dari Amazon DynamoDB ke Amazon S3.

**Langkah berikutnya**  
[Langkah 3: Hubungkan ke simpul Pemimpin](EMRforDynamoDB.Tutorial.ConnectToLeaderNode.md)

# Langkah 3: Hubungkan ke simpul Pemimpin
<a name="EMRforDynamoDB.Tutorial.ConnectToLeaderNode"></a>

Ketika status klaster Amazon EMR Anda berubah menjadi `Waiting`, Anda dapat menghubungkan ke simpul pemimpin menggunakan SSH dan melakukan operasi baris perintah.

1. Di konsol Amazon EMR, pilih nama klaster Anda untuk melihat statusnya.

1. Di halaman **Detail Klaster**, temukan bidang **DNS publik pemimpin**. Ini adalah nama DNS publik untuk simpul pemimpin klaster Amazon EMR Anda.

1. Di sebelah kanan nama DNS, pilih tautan **SSH**.

1. Ikuti petunjuk di **Menghubungkan ke Simpul Pemimpin Menggunakan SSH**.

   Tergantung pada sistem operasi Anda, pilih tab **Windows** atau tab **Mac/Linux**, lalu ikuti petunjuk untuk menghubungkan ke simpul pemimpin.

Setelah terhubung ke simpul pemimpin menggunakan SSH atau PuTTY, Anda akan melihat prompt perintah yang mirip dengan berikut ini:

```
[hadoop@ip-192-0-2-0 ~]$ 
```

**Langkah berikutnya**  
[Langkah 4: Muat data ke HDFS](EMRforDynamoDB.Tutorial.LoadDataIntoHDFS.md)

# Langkah 4: Muat data ke HDFS
<a name="EMRforDynamoDB.Tutorial.LoadDataIntoHDFS"></a>

Pada langkah ini, Anda akan menyalin file data ke Hadoop Distributed File System (HDFS), lalu membuat tabel Hive eksternal yang dipetakan ke file data.

**Mengunduh data sampel**

1. Unduh arsip data sampel (`features.zip`):

   ```
   wget https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/samples/features.zip
   ```

1. Ekstrak file `features.txt` dari arsip:

   ```
   unzip features.zip
   ```

1. Lihat beberapa baris pertama dari file `features.txt`:

   ```
   head features.txt
   ```

   Hasilnya akan tampak mirip dengan ini:

   ```
   1535908|Big Run|Stream|WV|38.6370428|-80.8595469|794
   875609|Constable Hook|Cape|NJ|40.657881|-74.0990309|7
   1217998|Gooseberry Island|Island|RI|41.4534361|-71.3253284|10
   26603|Boone Moore Spring|Spring|AZ|34.0895692|-111.410065|3681
   1506738|Missouri Flat|Flat|WA|46.7634987|-117.0346113|2605
   1181348|Minnow Run|Stream|PA|40.0820178|-79.3800349|1558
   1288759|Hunting Creek|Stream|TN|36.343969|-83.8029682|1024
   533060|Big Charles Bayou|Bay|LA|29.6046517|-91.9828654|0
   829689|Greenwood Creek|Stream|NE|41.596086|-103.0499296|3671
   541692|Button Willow Island|Island|LA|31.9579389|-93.0648847|98
   ```

   `features.txt`[File tersebut berisi subset data dari Dewan Amerika Serikat tentang Nama Geografis (http://geonames.usgs. gov/domestic/download](http://geonames.usgs.gov/domestic/download_data.htm)\$1data.htm). Bidang di setiap baris mewakili berikut ini:
   + ID Fitur (pengidentifikasi unik)
   + Nama
   + Kelas (danau; hutan; aliran; dan sebagainya)
   + Negara Bagian
   + Garis lintang (derajat)
   + Garis bujur (derajat)
   + Tinggi (dalam kaki)

1. Di prompt perintah, masukkan perintah berikut:

   ```
   hive
   ```

   Prompt perintah berubah menjadi ini: `hive>` 

1. Masukkan pernyataan HiveQL berikut untuk membuat tabel Hive asli:

   ```
   CREATE TABLE hive_features
       (feature_id             BIGINT,
       feature_name            STRING ,
       feature_class           STRING ,
       state_alpha             STRING,
       prim_lat_dec            DOUBLE ,
       prim_long_dec           DOUBLE ,
       elev_in_ft              BIGINT)
       ROW FORMAT DELIMITED
       FIELDS TERMINATED BY '|'
       LINES TERMINATED BY '\n';
   ```

1. Masukkan pernyataan HiveQL berikut untuk memuat tabel dengan data:

   ```
   LOAD DATA
   LOCAL
   INPATH './features.txt'
   OVERWRITE
   INTO TABLE hive_features;
   ```

1. Anda sekarang memiliki tabel Hive asli yang diisi dengan data dari file `features.txt`. Untuk memverifikasi, masukkan pernyataan HiveQL berikut:

   ```
   SELECT state_alpha, COUNT(*)
   FROM hive_features
   GROUP BY state_alpha;
   ```

   Output akan menunjukkan daftar negara bagian dan jumlah fitur geografis di masing-masing tempat.

**Langkah berikutnya**  
[Langkah 5: Salin data ke DynamoDB](EMRforDynamoDB.Tutorial.CopyDataToDDB.md)

# Langkah 5: Salin data ke DynamoDB
<a name="EMRforDynamoDB.Tutorial.CopyDataToDDB"></a>

Pada langkah ini, Anda akan menyalin data dari tabel Hive (`hive_features`) ke tabel baru di DynamoDB.

1. Buka konsol DynamoDB di. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Pilih **Buat Tabel**.

1. Di halaman **Buat tabel DynamoDB**, lakukan tindakan berikut:

   1. Di **Tabel**, masukkan **Features**.

   1. Untuk **Kunci primer**, di bidang **Kunci partisi**, masukkan **Id**. Atur jenis data ke **Number**.

      Kosongkan **Gunakan Pengaturan Default**. Untuk **Kapasitas yang Disediakan**, masukkan berikut ini:
      + **Unit Kapasitas Baca**—`10`
      + **Unit Kapasitas Tulis**—`10`

   Pilih **Buat**.

1. Di prompt Hive, masukkan pernyataan HiveQL berikut: 

   ```
   CREATE EXTERNAL TABLE ddb_features
       (feature_id   BIGINT,
       feature_name  STRING,
       feature_class STRING,
       state_alpha   STRING,
       prim_lat_dec  DOUBLE,
       prim_long_dec DOUBLE,
       elev_in_ft    BIGINT)
   STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
   TBLPROPERTIES(
       "dynamodb.table.name" = "Features",
       "dynamodb.column.mapping"="feature_id:Id,feature_name:Name,feature_class:Class,state_alpha:State,prim_lat_dec:Latitude,prim_long_dec:Longitude,elev_in_ft:Elevation"
   );
   ```

   Anda sekarang telah membuat pemetaan antara Hive dan tabel Fitur di DynamoDB.

1. Masukkan pernyataan HiveQL berikut untuk mengimpor data ke DynamoDB:

   ```
   INSERT OVERWRITE TABLE ddb_features
   SELECT
       feature_id,
       feature_name,
       feature_class,
       state_alpha,
       prim_lat_dec,
       prim_long_dec,
       elev_in_ft
   FROM hive_features;
   ```

   Hive akan mengirimkan MapReduce pekerjaan, yang akan diproses oleh cluster EMR Amazon Anda. Proses ini akan memakan waktu beberapa menit untuk menyelesaikan tugas.

1. Verifikasi bahwa data telah dimuat ke DynamoDB:

   1. Di panel navigasi konsol DynamoDB, pilih **Tabel**.

   1. Pilih tabel Fitur, lalu pilih tab **Item** untuk melihat data.

**Langkah berikutnya**  
[Langkah 6: Kueri data dalam tabel DynamoDB](EMRforDynamoDB.Tutorial.QueryDataInDynamoDB.md)

# Langkah 6: Kueri data dalam tabel DynamoDB
<a name="EMRforDynamoDB.Tutorial.QueryDataInDynamoDB"></a>

Pada langkah ini, Anda akan menggunakan HiveQL untuk mengkueri tabel Fitur di DynamoDB. Coba kueri Hive berikut:

1. Semua jenis fitur (`feature_class`) dalam urutan abjad:

   ```
   SELECT DISTINCT feature_class
   FROM ddb_features
   ORDER BY feature_class;
   ```

1. Semua danau yang dimulai dengan huruf "M":

   ```
   SELECT feature_name, state_alpha
   FROM ddb_features
   WHERE feature_class = 'Lake'
   AND feature_name LIKE 'M%'
   ORDER BY feature_name;
   ```

1. Negara dengan setidaknya tiga fitur yang lebih tinggi dari satu mil (5.280 kaki):

   ```
   SELECT state_alpha, feature_class, COUNT(*)
   FROM ddb_features
   WHERE elev_in_ft > 5280
   GROUP by state_alpha, feature_class
   HAVING COUNT(*) >= 3
   ORDER BY state_alpha, feature_class;
   ```

**Langkah berikutnya**  
[Langkah 7: (Opsional) hapus](EMRforDynamoDB.Tutorial.CleanUp.md)

# Langkah 7: (Opsional) hapus
<a name="EMRforDynamoDB.Tutorial.CleanUp"></a>

Setelah menyelesaikan tutorial, Anda dapat terus membaca bagian ini untuk mempelajari selengkapnya tentang penggunaan data DynamoDB di Amazon EMR. Sebaiknya klaster Amazon EMR Anda tetap aktif dan berjalan saat Anda mempelajari selengkapnya.

Jika tidak memerlukan klaster lagi, Anda dapat mengakhirinya dan menghapus sumber daya yang terkait. Ini akan membantu Anda menghindari biaya untuk sumber daya yang tidak Anda butuhkan.

1. Mengakhiri klaster Amazon EMR:

   1. [Buka konsol EMR Amazon di https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr/)

   1. Pilih klaster Amazon EMR, pilih **Akhiri**, lalu konfirmasikan.

1. Menghapus tabel Fitur di DynamoDB:

   1. Buka konsol DynamoDB di. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

   1. Di panel navigasi, pilih **Tabel**.

   1. Pilih tabel Fitur. Dari menu **Tindakan**, pilih **Hapus Tabel**.

1. Menghapus bucket Amazon S3 yang berisi file log Amazon EMR:

   1. Buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

   1. Dari daftar ember, pilih`aws-logs- accountID-region`, di mana *accountID* nomor AWS akun Anda dan *region* merupakan wilayah tempat Anda meluncurkan cluster.

   1. Dari menu **Tindakan**, pilih **Hapus**.