

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

# aplikasi Hive spesifik untuk versi AMI sebelumnya dari Amazon EMR
<a name="emr-3x-hive"></a>

## File log
<a name="emr-3x-hive-log-files"></a>

Menggunakan Amazon EMR AMI versi 2.x dan 3.x, log Hive disimpan ke `/mnt/var/log/apps/`. Untuk mendukung versi bersamaan Hive, versi Hive yang Anda jalankan menentukan nama file log, seperti yang ditunjukkan pada tabel berikut. 


| Versi Hive | Nama file log | 
| --- | --- | 
| 0.13.1 | hive.log  Dimulai dengan versi ini, Amazon EMR menggunakan nama file tidak berversi, `hive.log`. Versi minor berbagi lokasi log yang sama sebagai versi utama.   | 
| 0.11.0 | hive\$10110.log   Versi minor dari Hive 0.11.0, seperti 0.11.0.1, berbagi lokasi file log yang sama sebagai Hive 0.11.0.   | 
| 0.8.1 | hive\$1081.log   Versi minor dari Hive 0.8.1, seperti Hive 0.8.1.1, berbagi lokasi file log yang sama sebagai Hive 0.8.1.   | 
| 0.7.1 | hive\$107\$11.log   Versi minor dari Hive 0.7.1, seperti Hive 0.7.1.3 dan Hive 0.7.1.4, berbagi lokasi file log yang sama sebagai Hive 0.7.1.    | 
| 0,7 | hive\$107.log | 
| 0,5 | hive\$105.log | 
| 0,4 | hive.log | 

## Fungsionalitas input terpisah
<a name="emr-3x-hive-split-input"></a>

Untuk menerapkan fungsi input split menggunakan versi Hive lebih awal dari 0.13.1 (Amazon EMR AMI versi sebelumnya 3.11.0), gunakan berikut:

```
hive> set hive.input.format=org.apache.hadoop.hive.ql.io.HiveCombineSplitsInputFormat;
hive> set mapred.min.split.size=100000000;
```

Fungsi ini diusangkan dengan Hive 0.13.1. Untuk mendapatkan fungsi format input split yang sama di Amazon EMR AMI Versi 3.11.0, gunakan berikut ini:

```
set hive.hadoop.supports.splittable.combineinputformat=true;
```

## Port layanan penghematan
<a name="emr-3x-hive-thrift-service"></a>

 Hemat adalah kerangka RPC yang mendefinisikan format serialisasi biner kompak digunakan untuk bertahan struktur data untuk analisis kemudian. Biasanya, Hive mengkonfigurasi server untuk beroperasi pada port berikut. 


| Versi Hive | Angka port | 
| --- | --- | 
| Hive 0.13.1 | 10000 | 
| Hive 0.11.0 | 10004 | 
| Hive 0.8.1 | 10003 | 
| Hive 0.7.1 | 10002 | 
| Hive 0.7 | 10001 | 
| Hive 0.5 | 10000 | 

 Untuk informasi selengkapnya tentang menginstal layanan ini, lihat [http://wiki.apache.org/thrift/](http://wiki.apache.org/thrift/). 

## Gunakan Hive untuk memulihkan partisi
<a name="emr-3x-hive-recover-partition"></a>

Amazon EMR termasuk pernyataan dalam bahasa query Hive yang pulih partisi dari tabel data yang terletak di Amazon S3. Contoh berikut menunjukkan hal ini. 

```
CREATE EXTERNAL TABLE (json string) raw_impression 
PARTITIONED BY (dt string) 
LOCATION 's3://elastic-mapreduce/samples/hive-ads/tables/impressions';
ALTER TABLE logs RECOVER PARTITIONS;
```

Direktori partisi dan data harus berada di lokasi yang ditentukan dalam definisi tabel dan harus diberi nama sesuai dengan konvensi Hive: misalnya, `dt=2009-01-01`. 

**catatan**  
Setelah Hive 0.13.1 kemampuan ini didukung native menggunakan `msck repair table` dan karenanya `recover partitions` tidak didukung. Untuk informasi lebih lanjut, lihat [https://cwiki.apache. org/confluence/display/Hive/LanguageManual\$1 DDL](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL).

## Lulus variabel Hive untuk script
<a name="emr-3x-hive-pass-variable"></a>

Untuk meneruskan variabel ke langkah Hive menggunakan AWS CLI, ketik perintah berikut, ganti *myKey* dengan nama key pair EC2 Anda, dan ganti *amzn-s3-demo-bucket* dengan nama bucket Anda. Dalam contoh ini, `SAMPLE` adalah nilai variabel yang didahului oleh `-d`beralih. Variabel ini didefinisikan dalam script Hive sebagai: `${SAMPLE}`.

**catatan**  
Karakter kelanjutan baris Linux (\$1) 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 --name "Test cluster" --ami-version 3.9 \
--applications Name=Hue Name=Hive Name=Pig \
--use-default-roles --ec2-attributes KeyName=myKey \
--instance-type m3.xlarge --instance-count 3 \
--steps Type=Hive,Name="Hive Program",ActionOnFailure=CONTINUE,\
Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/response-time-stats.q,-d,\
INPUT=s3://elasticmapreduce/samples/hive-ads/tables,-d,OUTPUT=s3://amzn-s3-demo-bucket/hive-ads/output/,\
-d,SAMPLE=s3://elasticmapreduce/samples/hive-ads/]
```

## Tentukan lokasi metastore eksternal
<a name="emr-3x-hive-external-metastore"></a>

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 menggunakan Amazon RDS.

   Untuk informasi tentang cara membuat database Amazon RDS, lihat [Memulai dengan Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.html).

1. Ubah grup keamanan Anda untuk mengizinkan koneksi JDBC antara database Anda dan grup keamanan **ElasticMapReduce-Master**.

   Untuk informasi tentang cara mengubah grup keamanan untuk akses, lihat, lihat [Grup keamanan Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html) di *Panduan Pengguna Amazon RDS*.

1. Mengatur nilai-nilai konfigurasi JDBC di `hive-site.xml`:

   1. Buat `hive-site.xml` file konfigurasi yang berisi berikut ini:

      ```
      <configuration>
        <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mariadb://hostname:3306/hive?createDatabaseIfNotExist=true</value>
          <description>JDBC connect string for a JDBC metastore</description>
        </property>
        <property>
          <name>javax.jdo.option.ConnectionUserName</name>
          <value>hive</value>
          <description>Username to use against metastore database</description>
        </property>
        <property>
          <name>javax.jdo.option.ConnectionPassword</name>
          <value>password</value>
          <description>Password to use against metastore database</description>
        </property>
      </configuration>
      ```

      *hostname*adalah alamat DNS dari instans Amazon RDS yang menjalankan database. *username*dan *password* merupakan kredensyal untuk database Anda. Untuk informasi selengkapnya tentang menghubungkan ke MySQL dan Aurora database instans, 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 klaster DB Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Connecting.html) di *Panduan Pengguna Amazon RDS*.

      Driver JDBC diinstal oleh Amazon EMR. 
**catatan**  
Properti nilai tidak boleh mengandung spasi atau pengembalian carriage. Ini akan muncul semua pada satu baris.

   1. Simpan file `hive-site.xml` Anda ke lokasi di Amazon S3, seperti `s3://amzn-s3-demo-bucket/hive-site.xml`.

1. Buat cluster, menentukan lokasi Amazon S3 dari disesuaikan `hive-site.xml` file.

   Contoh perintah berikut menunjukkan AWS CLI perintah yang melakukan hal ini.
**catatan**  
Karakter lanjutan baris Linux (\$1) disertakan agar mudah dibaca Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).

   ```
   aws emr create-cluster --name "Test cluster" --ami-version 3.10 \
   --applications Name=Hue Name=Hive Name=Pig \
   --use-default-roles --ec2-attributes KeyName=myKey \
   --instance-type m3.xlarge --instance-count 3 \
   --bootstrap-actions Name="Install Hive Site Configuration",\
   Path="s3://region.elasticmapreduce/libs/hive/hive-script",\
   Args=["--base-path","s3://elasticmapreduce/libs/hive","--install-hive-site",\
   "--hive-site=s3://amzn-s3-demo-bucket/hive-site.xml","--hive-versions","latest"]
   ```

## Connect ke Hive menggunakan JDBC
<a name="emr-3x-hive-jdbc"></a>

Untuk terhubung ke Hive melalui JDBC mengharuskan Anda untuk men-download driver JDBC dan menginstal klien SQL. Contoh berikut menunjukkan menggunakan SQL Workbench/J untuk terhubung ke Hive menggunakan JDBC.

**Untuk men-download driver JDBC**

1. Men-download dan ekstrak driver yang sesuai dengan versi Hive yang ingin Anda akses. Versi Hive berbeda tergantung pada AMI yang Anda pilih saat membuat klaster Amazon EMR.
   + [Sarang 0.13.1 JDBC driver: JDBC\$11.0.4.1004.zip https://amazon-odbc-jdbc-drivers.s3.amazonaws.com/public/ AmazonHive](https://amazon-odbc-jdbc-drivers.s3.amazonaws.com/public/AmazonHiveJDBC_1.0.4.1004.zip)
   + Driver Hive 0.11.0 JDBC: [https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.11.0](https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.11.0)
   + Driver Hive 0.8.1 JDBC: [https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.8.1](https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.8.1)

1. Instal SQL Workbench/J. Untuk informasi lebih lanjut, lihat [Menginstal dan memulai SQL Workbench/J di Manual Pengguna SQL](http://www.sql-workbench.net/manual/install.html) Manual. Workbench/J 

1. Buat terowongan SSH ke node master cluster. Port untuk koneksi berbeda tergantung pada versi Hive. Contoh perintah disediakan dalam tabel di bawah ini untuk Linux `ssh` pengguna dan perintah PuTTY untuk pengguna Windows  
**Perintah SSH Linux**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/emr-3x-hive.html)  
**Pengaturan terowongan Windows PuTTY**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/emr-3x-hive.html)

1. Tambahkan driver JDBC ke SQL Workbench.

   1. Di **Pilih Profil Koneksi** kotak dialog, pilih **Mengelola driver**. 

   1. Pilih **Buat entri baru** (halaman kosong) ikon.

   1. Di kolom **Nama**, ketikkan **Hive JDBC**.

   1. Untuk **Pustaka**, klik ikon **Pilih file JAR**.

   1. Pilih file JAR seperti yang ditunjukkan dalam tabel berikut.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/emr-3x-hive.html)

   1. Pada kotak dialog **Pilih satu driver**, pilih driver sesuai dengan tabel berikut ini dan klik **OKE**.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/emr-3x-hive.html)

1. Ketika Anda kembali ke **Pilih Profil Koneksi** kotak dialog, verifikasi bahwa **Driver** bidang diatur ke **Hive JDBC** dan menyediakan koneksi JDBC string di **URL** kolom sesuai dengan tabel berikut.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/emr-3x-hive.html)

   Jika cluster Anda menggunakan AMI versi 3.3.1 atau yang lebih baru, di **Pilih Profil Koneksi** kotak dialog, jenis **hadoop** di **Nama pengguna** Bidang.