

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

# Amazon EMR versi 2.x dan 3.x AMI
<a name="emr-release-3x"></a>

**catatan**  
AWS memperbarui konfigurasi TLS untuk semua titik akhir AWS API ke versi minimum TLS 1.2. Amazon EMR merilis 3.10 dan yang lebih rendah hanya mendukung koneksi TLS 1.0/1.1. Setelah 4 Desember 2023, Anda tidak akan dapat membuat cluster dengan Amazon EMR 3.10 dan lebih rendah.  
Jika Anda menggunakan Amazon EMR 3.10 atau yang lebih rendah, kami sarankan Anda segera menguji dan memigrasikan beban kerja Anda ke rilis Amazon EMR terbaru. Untuk informasi selengkapnya, lihat [Blog AWS Keamanan](https://aws.amazon.com/blogs//security/tls-1-2-required-for-aws-endpoints/).

Rilis Amazon EMR 2.x dan 3.x, disebut *Versi AMI*, dibuat tersedia untuk solusi yang sudah ada sebelumnya yang mengharuskan mereka untuk alasan kompatibilitas. Kami tidak menyarankan untuk membuat cluster baru atau solusi baru dengan versi rilis ini. Mereka tidak memiliki fitur rilis baru dan termasuk paket aplikasi usang.

Kami menyarankan Anda membangun solusi menggunakan versi rilis Amazon EMR terbaru.

Ruang lingkup perbedaan antara versi rilis 2.x dan 3.x series dan versi rilis Amazon EMR terbaru sangat signifikan. Perbedaan tersebut berkisar dari bagaimana Anda membuat dan mengkonfigurasi sebuah cluster ke port dan struktur direktori aplikasi di cluster.

Bagian ini mencoba untuk menutupi perbedaan yang paling signifikan untuk Amazon EMR, serta konfigurasi aplikasi tertentu dan perbedaan manajemen. Hal ini tidak komprehensif. Jika Anda membuat dan menggunakan cluster dalam seri 2.x atau 3.x, Anda mungkin mengalami perbedaan yang tidak tercakup dalam bagian ini.

**Topics**
+ [Membuat cluster dengan versi AMI sebelumnya dari Amazon EMR](emr-3x-create.md)
+ [Menginstal aplikasi dengan versi AMI sebelumnya dari Amazon EMR](emr-3x-install-apps.md)
+ [Menyesuaikan cluster dan aplikasi konfigurasi dengan versi AMI sebelumnya dari Amazon EMR](emr-3x-customizeappconfig.md)
+ [aplikasi Hive spesifik untuk versi AMI sebelumnya dari Amazon EMR](emr-3x-hive.md)
+ [HBase spesifikasi aplikasi untuk versi AMI sebelumnya dari Amazon EMR](emr-3x-hbase.md)
+ [spesifik aplikasi Pig untuk versi AMI sebelumnya dari Amazon EMR](emr-3x-pig.md)
+ [Spark spesifik aplikasi dengan versi AMI sebelumnya dari Amazon EMR](emr-3x-spark.md)
+ [Perbedaan DistCp utilitas S3 dengan versi AMI sebelumnya dari Amazon EMR](emr-3x-s3distcp.md)

# Membuat cluster dengan versi AMI sebelumnya dari Amazon EMR
<a name="emr-3x-create"></a>

Amazon EMR 2.x dan 3.x rilis direferensikan oleh Versi AMI. Dengan rilis Amazon EMR 4.0.0 dan kemudian, rilis direferensikan oleh versi rilis, menggunakan label rilis seperti `emr-5.11.0`. Perubahan ini paling terlihat saat Anda membuat cluster menggunakan AWS CLI atau secara terprogram.

Saat Anda menggunakan AWS CLI untuk membuat klaster menggunakan versi rilis AMI, gunakan `--ami-version` opsi, misalnya,`--ami-version 3.11.0`. Banyak pilihan, fitur, dan aplikasi yang diperkenalkan di Amazon EMR 4.0.0 dan kemudian tidak tersedia ketika Anda menentukan `--ami-version`. Untuk informasi selengkapnya, lihat [Buat Gugus](https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html) di *AWS CLI Referensi*. 

Contoh AWS CLI perintah berikut meluncurkan cluster menggunakan versi AMI.

**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.11.0 \
--applications Name=Hue Name=Hive Name=Pig \
--use-default-roles --ec2-attributes KeyName=myKey \
--instance-groups InstanceGroupType=MASTER,InstanceCount=1,\
InstanceType=m3.xlarge InstanceGroupType=CORE,InstanceCount=2,\
InstanceType=m3.xlarge --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hadoop,\
Name="Configuring infinite JVM reuse",Args=["-m","mapred.job.reuse.jvm.num.tasks=-1"]
```

Pemrograman, semua versi rilis Amazon EMR menggunakan `RunJobFlowRequest` di API EMR untuk membuat cluster. Berikut contoh kode Java menciptakan sebuah cluster menggunakan AMI versi rilis 3.11.0.

```
RunJobFlowRequest request = new RunJobFlowRequest()
			.withName("AmiVersion Cluster")
			.withAmiVersion("3.11.0")
			.withInstances(new JobFlowInstancesConfig()
				.withEc2KeyName("myKeyPair")
				.withInstanceCount(1)
				.withKeepJobFlowAliveWhenNoSteps(true)
				.withMasterInstanceType("m3.xlarge")
				.withSlaveInstanceType("m3.xlarge");
```

Berikut ini `RunJobFlowRequest` panggilan menggunakan label rilis sebagai gantinya:

```
RunJobFlowRequest request = new RunJobFlowRequest()
			.withName("ReleaseLabel Cluster")
			.withReleaseLabel("emr-7.12.0")
			.withInstances(new JobFlowInstancesConfig()
				.withEc2KeyName("myKeyPair")
				.withInstanceCount(1)
				.withKeepJobFlowAliveWhenNoSteps(true)
				.withMasterInstanceType("m3.xlarge")
				.withSlaveInstanceType("m3.xlarge");
```

## Mengonfigurasi ukuran cluster
<a name="emr-3x-cluster-size"></a>

Ketika cluster Anda berjalan, Hadoop menentukan jumlah mapper dan peredam tugas yang diperlukan untuk memproses data. Cluster yang lebih besar harus memiliki lebih banyak tugas untuk penggunaan sumber daya yang lebih baik dan waktu pemrosesan yang. Biasanya, cluster EMR tetap ukuran yang sama selama seluruh cluster; Anda menetapkan jumlah tugas ketika Anda membuat cluster. Ketika Anda mengubah ukuran cluster berjalan, Anda dapat bervariasi pengolahan selama eksekusi cluster. Oleh karena itu, alih-alih menggunakan sejumlah tugas tetap, Anda dapat memvariasikan jumlah tugas selama kehidupan cluster. Ada dua opsi konfigurasi untuk membantu mengatur jumlah tugas yang ideal:
+ `mapred.map.tasksperslot`
+ `mapred.reduce.tasksperslot`

Anda dapat mengatur kedua pilihan di `mapred-conf.xml` file. Ketika Anda mengirimkan pekerjaan ke cluster, klien pekerjaan memeriksa jumlah total saat peta dan mengurangi slot tersedia clusterwide. Klien pekerjaan kemudian menggunakan persamaan berikut untuk mengatur jumlah tugas: 
+ `mapred.map.tasks` =` mapred.map.tasksperslot` \$1 slot peta di cluster
+ `mapred.reduce.tasks` = `mapred.reduce.tasksperslot` \$1 mengurangi slot di cluster

Klien pekerjaan hanya membaca `tasksperslot` parameter jika jumlah tugas tidak dikonfigurasi. Anda dapat mengganti jumlah tugas setiap saat, baik untuk semua cluster melalui tindakan bootstrap atau secara individual per pekerjaan dengan menambahkan langkah untuk mengubah konfigurasi. 

Amazon EMR tahan kegagalan node tugas dan terus eksekusi cluster bahkan jika node tugas menjadi tidak tersedia. Amazon EMR secara otomatis ketentuan node tugas tambahan untuk menggantikan orang-orang yang gagal. 

Anda dapat memiliki nomor yang berbeda dari node tugas untuk setiap langkah cluster. Anda juga dapat menambahkan langkah untuk menjalankan cluster untuk mengubah jumlah node tugas. Karena semua langkah dijamin untuk menjalankan secara berurutan secara default, Anda dapat menentukan jumlah menjalankan tugas node untuk setiap langkah. 

# Menginstal aplikasi dengan versi AMI sebelumnya dari Amazon EMR
<a name="emr-3x-install-apps"></a>

Saat menggunakan versi AMI, aplikasi diinstal dengan berbagai cara, termasuk menggunakan `NewSupportedProducts` parameter untuk [RunJobFlow](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RunJobFlow.html)tindakan, menggunakan tindakan bootstrap, dan menggunakan tindakan [Langkah](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_Step.html).

# Menyesuaikan cluster dan aplikasi konfigurasi dengan versi AMI sebelumnya dari Amazon EMR
<a name="emr-3x-customizeappconfig"></a>

Rilis Amazon EMR versi 4.0.0 memperkenalkan metode sederhana untuk mengkonfigurasi aplikasi menggunakan klasifikasi konfigurasi. Untuk informasi selengkapnya, lihat [Konfigurasikan aplikasi](emr-configure-apps.md). Bila menggunakan versi AMI, Anda mengkonfigurasi aplikasi menggunakan tindakan bootstrap bersama dengan argumen yang Anda lulus. Misalnya, `configure-hadoop` dan `configure-daemons` tindakan bootstrap mengatur Hadoop dan Yarn—properti lingkungan khusus seperti `--namenode-heap-size`. Dalam versi yang lebih baru, ini dikonfigurasi menggunakan `hadoop-env` dan `yarn-env` klasifikasi konfigurasi. Untuk tindakan bootstrap yang melakukan konfigurasi umum, lihat [emr-bootstrap-actions repositori di Github](https://github.com/awslabs/emr-bootstrap-actions).

Tabel berikut memetakan tindakan bootstrap untuk klasifikasi konfigurasi dalam versi rilis Amazon EMR yang lebih baru.


**Hadoop**  

| Nama file aplikasi yang terdampak | Tindakan bootstrap versi AMI | Klasifikasi konfigurasi | 
| --- | --- | --- | 
| core-site.xml  | configure-hadoop -c  | core-site | 
| log4j.properties  | configure-hadoop -l  | hadoop-log4j | 
| hdfs-site.xml  | configure-hadoop -s  | hdfs-site  | 
| tidak berlaku | T/A | hdfs-encryption-zones | 
| mapred-site.xml  | configure-hadoop -m  | mapred-site | 
| yarn-site.xml  | configure-hadoop -y  | yarn-site | 
| httpfs-site.xml  | configure-hadoop -t  | httpfs-site | 
| capacity-scheduler.xml  | configure-hadoop -z  | capacity-scheduler | 
| yarn-env.sh  | configure-daemons --resourcemanager-opts | yarn-env | 


**Hive**  

| Nama file aplikasi yang terdampak | Tindakan bootstrap versi AMI | Klasifikasi konfigurasi | 
| --- | --- | --- | 
| hive-env.sh | tidak berlaku | hive-env | 
| hive-site.xml | hive-script --install-hive-site \$1\$1MY\$1HIVE\$1SITE\$1FILE\$1 | hive-site | 
| hive-exec-log4j.properties | tidak ada | hive-exec-log4j | 
| hive-log4j.properties | T/A | hive-log4j | 


**EMRFS**  

| Nama file aplikasi yang terdampak | Tindakan bootstrap versi AMI | Klasifikasi konfigurasi | 
| --- | --- | --- | 
| emrfs-site.xml | configure-hadoop -e | emrfs-site | 
| tidak berlaku | s3get -s s3://custom-provider.jar -d /usr/share/aws/emr/auxlib/ | emrfs-site (dengan pengaturan baru fs.s3.cse.encryptionMaterialsProvider.uri) | 

Untuk daftar semua klasifikasi, lihat [Konfigurasikan aplikasi](emr-configure-apps.md).

## Variabel lingkungan aplikasi
<a name="emr-3x-appenv"></a>

Bila menggunakan versi AMI, `hadoop-user-env.sh` digunakan bersama dengan `configure-daemons` tindakan bootstrap untuk mengkonfigurasi lingkungan Hadoop. Skrip mencakup tindakan berikut:

```
#!/bin/bash 
export HADOOP_USER_CLASSPATH_FIRST=true; 
echo "HADOOP_CLASSPATH=/path/to/my.jar" >> /home/hadoop/conf/hadoop-user-env.sh
```

Di Amazon EMR rilis 4.x, Anda melakukan hal yang sama menggunakan `hadoop-env` klasifikasi konfigurasi, seperti yang ditunjukkan dalam contoh berikut:

```
[ 
      { 
         "Classification":"hadoop-env",
         "Properties":{ 

         },
         "Configurations":[ 
            { 
               "Classification":"export",
               "Properties":{ 
                  "HADOOP_USER_CLASSPATH_FIRST":"true",
                  "HADOOP_CLASSPATH":"/path/to/my.jar"
               }
            }
         ]
      }
   ]
```

Sebagai contoh lain, menggunakan `configure-daemons` dan melewati `--namenode-heap-size=2048` dan `--namenode-opts=-XX:GCTimeRatio=19` setara dengan klasifikasi konfigurasi berikut.

```
[ 
      { 
         "Classification":"hadoop-env",
         "Properties":{ 

         },
         "Configurations":[ 
            { 
               "Classification":"export",
               "Properties":{ 
                  "HADOOP_DATANODE_HEAPSIZE":  "2048",
           	"HADOOP_NAMENODE_OPTS":  "-XX:GCTimeRatio=19"
               }
            }
         ]
      }
   ]
```

Variabel lingkungan aplikasi lainnya tidak lagi didefinisikan dalam `/home/hadoop/.bashrc`. Sebaliknya, mereka terutama diatur dalam `/etc/default` file per komponen atau aplikasi, seperti `/etc/default/hadoop`. Skrip pembungkus yang `/usr/bin/` diinstal oleh aplikasi juga RPMs dapat mengatur variabel lingkungan tambahan sebelum melibatkan skrip bin yang sebenarnya.

## Port layanan
<a name="emr-3x-serviceports"></a>

Saat menggunakan versi AMI, beberapa layanan menggunakan port kustom.


**Perubahan dalam pengaturan port**  

| Pengaturan | AMI versi 3.x | Default sumber terbuka | 
| --- | --- | --- | 
| fs.default.name | hdfs://emrDeterminedIP:9000 | default (hdfs: emrDeterminedIP //:8020)  | 
| dfs.datanode.address | 0.0.0.0:9200 | default (0.0.0.0:50010)  | 
| dfs.datanode.http.address | 0.0.0.0:9102 | default (0.0.0.0:50075)  | 
| dfs.datanode.https.address | 0.0.0.0:9402 | default (0.0.0.0:50475) | 
| dfs.datanode.ipc.alamat | 0.0.0.0:9201 | default (0.0.0.0:50020) | 
| dfs.http.address | 0.0.0.0:9101 | default (0.0.0.0:50070)  | 
| dfs.https.address | 0.0.0.0:9202 | default (0.0.0.0:50470)  | 
| dfs.secondary.http.address | 0.0.0.0:9104 | default (0.0.0.0:50090) | 
| yarn.nodemanager.alamat | 0.0.0.0:9103 | default (\$1 \$1yarn.nodemanager.hostname\$1: 0)  | 
| yarn.nodemanager.localizer.alamat  | 0.0.0.0:9033 | default (\$1 \$1yarn.nodemanager.hostname\$1: 8040) | 
| yarn.nodemanager.webapp.address | 0.0.0.0:9035 | default (\$1 \$1yarn.nodemanager.hostname\$1: 8042) | 
| yarn.resourcemanager.address | emrDeterminedIP:9022 | default (\$1\$1yarn.resourcemanager.hostname\$1:8032) | 
| yarn.resourcemanager.admin.address | emrDeterminedIP:9025 | default (\$1\$1yarn.resourcemanager.hostname\$1:8033) | 
| yarn.resourcemanager.resource-tracker.address | emrDeterminedIP:9023 | default (\$1\$1yarn.resourcemanager.hostname\$1:8031) | 
| yarn.resourcemanager.scheduler.address | emrDeterminedIP:9024 | default (\$1\$1yarn.resourcemanager.hostname\$1:8030) | 
| yarn.resourcemanager.webapp.address | 0.0.0.0:9026  | default (\$1\$1yarn.resourcemanager.hostname\$1:8088) | 
| yarn.web-proxy.address | emrDeterminedIP:9046  | default (no-value)  | 
| yarn.resourcemanager.hostname | 0.0.0.0 (default)  | emrDeterminedIP | 

**catatan**  
*emrDeterminedIP*Ini adalah alamat IP yang dihasilkan oleh Amazon EMR.

## Pengguna
<a name="emr-3x-users"></a>

Saat menggunakan versi AMI, pengguna `hadoop` menjalankan semua proses dan memiliki semua file. Di Amazon EMR rilis versi 4.0.0 dan kemudian, pengguna ada di aplikasi dan komponen tingkat.

## Urutan instalasi, artefak diinstal, dan lokasi file log
<a name="emr-3x-directories"></a>

Ketika menggunakan versi AMI, artefak aplikasi dan direktori konfigurasi mereka diinstal di `/home/hadoop/application` direktori. Misalnya, jika Anda menginstal Hive, direktori akan `/home/hadoop/hive`. Di Amazon EMR rilis 4.0.0 dan kemudian, artefak aplikasi diinstal di `/usr/lib/application` direktori. Bila menggunakan versi AMI, file log ditemukan di berbagai tempat. Tabel di bawah daftar lokasi.


**Perubahan di lokasi log di Amazon S3**  

| Daemon atau aplikasi | Lokasi direktori | 
| --- | --- | 
| Status instans | node//instance-state/ instance-id | 
| hadoop-hdfs-namenode | daemon//instance-id.log hadoop-hadoop-namenode | 
| hadoop-hdfs-datanode | daemon//instance-id.log hadoop-hadoop-datanode | 
| hadoop-benang () ResourceManager | daemon//instance-idyarn-hadoop-resourcemanager | 
| hadoop-yarn (Server Proksi) | daemon//instance-idyarn-hadoop-proxyserver | 
| mapred-historyserver | daemon//instance-id | 
| httpfs | daemon/ /httpfs.log instance-id | 
| hive-server | simpul/ /hive-server/hive-server.log instance-id | 
| hive-metastore | simpul/ /apps/hive.log instance-id | 
| Hive CLI | simpul/ /apps/hive.log instance-id | 
| aplikasi BEARN log pengguna dan log kontainer | Percobaan tugas/ | 
| Mahout | Tidak Berlaku | 
| Pig | Tidak Berlaku | 
| spark-historyserver | Tidak Berlaku | 
| berkas riwayat pekerjaan mapreduce | Pekerjaan/ | 

## Perintah
<a name="emr-differences-commandrunner"></a>

Saat menggunakan versi AMI, banyak skrip atau program, seperti `/home/hadoop/contrib/streaming/hadoop-streaming.jar`, tidak ditempatkan pada lingkungan path login shell, sehingga Anda perlu menentukan path lengkap ketika Anda menggunakan file jar seperti command-runner.jar atau script-runner.jar untuk mengeksekusi script. Parameter `command-runner.jar` terletak di AMI sehingga tidak perlu mengetahui URI lengkap seperti halnya dengan `script-runner.jar`. 

## Faktor replikasi
<a name="emr-3x-replication"></a>

Faktor replikasi memungkinkan Anda mengkonfigurasi kapan untuk memulai Hadoop JVM. Anda dapat memulai Hadoop JVM baru untuk setiap tugas, yang menyediakan isolasi tugas yang lebih baik, atau Anda dapat berbagi JVMs antar tugas, memberikan overhead kerangka kerja yang lebih rendah. Jika Anda memproses banyak file kecil, masuk akal untuk menggunakan kembali JVM berkali-kali untuk amortisasi biaya start-up. Namun, jika setiap tugas membutuhkan waktu yang lama atau proses sejumlah besar data, maka Anda mungkin memilih untuk tidak menggunakan kembali JVM untuk memastikan bahwa semua memori dibebaskan untuk tugas-tugas berikutnya. Bila menggunakan versi AMI, Anda dapat menyesuaikan faktor replikasi menggunakan `configure-hadoop` tindakan bootstrap untuk mengatur `mapred.job.reuse.jvm.num.tasks` properti. 

Contoh berikut menunjukkan pengaturan faktor penggunaan kembali JVM untuk penggunaan kembali JVM tak terbatas.

**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.11.0 \
--applications Name=Hue Name=Hive Name=Pig \
--use-default-roles --ec2-attributes KeyName=myKey \
--instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m3.xlarge \
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m3.xlarge \
--bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hadoop,\
Name="Configuring infinite JVM reuse",Args=["-m","mapred.job.reuse.jvm.num.tasks=-1"]
```

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

# HBase spesifikasi aplikasi untuk versi AMI sebelumnya dari Amazon EMR
<a name="emr-3x-hbase"></a>

## HBase Versi yang didukung
<a name="emr-3x-hbase-versions"></a>


| HBase versi | Versi AMI | AWS CLI parameter konfigurasi | HBase detail versi | 
| --- | --- | --- | --- | 
| [0.94.18](https://svn.apache.org/repos/asf/hbase/branches/0.94/CHANGES.txt) | 3.1.0 dan versi yang lebih baru |  `--ami-version 3.1` `--ami-version 3.2` `--ami-version 3.3` `--applications Name=HBase`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/emr-3x-hbase.html)  | 
| [0.94.7](https://svn.apache.org/repos/asf/hbase/branches/0.94/CHANGES.txt) | 3.0-3.0.4 |  `--ami-version 3.0` `--applications Name=HBase`  | 
| [0,92](https://svn.apache.org/repos/asf/hbase/branches/0.92/CHANGES.txt) | 2.2 dan versi yang lebih baru |  `--ami-version 2.2 or later` `--applications Name=HBase`  | 

## HBase prasyarat cluster
<a name="emr-3x-hbase-prerequisites"></a>

Cluster yang dibuat menggunakan Amazon EMR AMI versi 2.x dan 3.x harus memenuhi persyaratan berikut untuk. HBase
+  AWS CLI (opsional) —Untuk berinteraksi dengan HBase menggunakan baris perintah, unduh dan instal versi terbaru dari file. AWS CLI Untuk informasi selengkapnya, lihat [Menginstal AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) dalam *AWS Command Line Interface Panduan Pengguna *.
+ Setidaknya dua contoh (opsional) —The cluster master node menjalankan HBase master server dan Zookeeper, dan node tugas menjalankan server wilayah HBase. Untuk kinerja terbaik, klaster HBase harus berjalan pada setidaknya dua instans EC2, tetapi Anda dapat menjalankan HBase pada satu node untuk tujuan evaluasi. 
+ Cluster yang berjalan lama— HBase hanya berjalan pada cluster yang berjalan lama. Secara default, konsol CLI dan Amazon EMR membuat cluster lama berjalan. 
+ Sebuah key pair Amazon EC2 set (disarankan) -Untuk menggunakan protokol jaringan Secure Shell (SSH) untuk terhubung dengan node master dan menjalankan perintah shell HBase, Anda harus menggunakan key pair Amazon EC2 ketika Anda membuat cluster. 
+ Versi AMI dan Hadoop yang benar— HBase cluster saat ini hanya didukung pada Hadoop 20.205 atau yang lebih baru. 
+ Ganglia (opsional) —Untuk memantau metrik HBase kinerja, instal Ganglia saat Anda membuat cluster. 
+ Bucket Amazon S3 untuk log (opsional) —Log untuk HBase tersedia di node master. Jika Anda ingin log ini disalin ke Amazon S3, tentukan bucket S3 untuk menerima file log saat Anda membuat kluster. 

## Membuat cluster dengan HBase
<a name="emr-3x-hbase-launch"></a>

Tabel berikut mencantumkan opsi yang tersedia saat menggunakan konsol untuk membuat cluster dengan HBase menggunakan versi rilis Amazon EMR AMI.


| Bidang | Tindakan | 
| --- | --- | 
| Pulihkan dari cadangan | Tentukan apakah akan memuat HBase klaster terlebih dahulu dengan data yang disimpan di Amazon S3. | 
| Lokasi Backup | Tentukan URI mana cadangan dari yang untuk mengembalikan berada di Amazon S3.  | 
| Versi Backup | Opsional, tentukan nama versi cadangan di Lokasi Backup untuk digunakan. Jika Anda membiarkan bidang ini kosong, Amazon EMR menggunakan cadangan terbaru di Lokasi Cadangan untuk mengisi cluster baru. HBase  | 
| Jadwalkan Pencadangan Reguler | Menentukan apakah untuk menjadwalkan backup tambahan otomatis. Cadangan pertama adalah cadangan penuh untuk membuat baseline untuk masa depan tambahan backup. | 
| Cadangan yang konsisten | Menentukan apakah backup harus konsisten. Cadangan konsisten adalah salah satu yang berhenti menulis operasi selama tahap cadangan awal, sinkronisasi di node. Setiap operasi tulis dengan demikian dijeda ditempatkan dalam antrian dan dilanjutkan saat sinkronisasi selesai. | 
| Frekuensi Backup | Jumlah days/hours/minutes antara backup terjadwal. | 
| Lokasi Backup | Amazon S3 URI dimana backup disimpan. Lokasi cadangan untuk setiap HBase cluster harus berbeda untuk memastikan bahwa backup diferensial tetap benar.  | 
| Waktu mulai Backup | Tentukan kapan cadangan pertama harus terjadi. Anda dapat mengatur ini ke now, yang menyebabkan cadangan pertama untuk memulai segera setelah cluster berjalan, atau masukkan tanggal dan waktu di [Format ISO](http://www.w3.org/TR/NOTE-datetime). Sebagai contoh, 2012-06-15T 20:00 Z akan menetapkan waktu mulai 15 Juni 2012 di 20:00 UTC.  | 

Contoh AWS CLI perintah berikut meluncurkan cluster dengan HBase dan aplikasi lainnya:

**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.3 \
               --applications Name=Hue Name=Hive Name=Pig Name=HBase \
               --use-default-roles --ec2-attributes KeyName=myKey \
               --instance-type c1.xlarge --instance-count 3 --termination-protected
```

Setelah koneksi antara Hive dan HBase cluster dibuat (seperti yang ditunjukkan pada prosedur sebelumnya), Anda dapat mengakses data yang disimpan di HBase cluster dengan membuat tabel eksternal di Hive. 

Contoh berikut, ketika dijalankan dari prompt Hive, membuat tabel eksternal yang mereferensikan data yang disimpan dalam HBase tabel yang disebut`inputTable`. Anda kemudian dapat referensi `inputTable` dalam pernyataan Hive untuk query dan memodifikasi data yang disimpan dalam HBase cluster. 

**catatan**  
Contoh berikut menggunakan **protobuf-java-2.4.0a.jar** di AMI 2.3.3, tetapi Anda harus memodifikasi contoh untuk mencocokkan versi Anda. Untuk memeriksa versi Protokol Buffer JAR Anda memiliki, jalankan perintah pada prompt perintah Hive: `! ls /home/hadoop/lib;`. 

```
add jar lib/emr-metrics-1.0.jar ;
               add jar lib/protobuf-java-2.4.0a.jar ;
               
               set hbase.zookeeper.quorum=ec2-107-21-163-157.compute-1.amazonaws.com ;
               
               create external table inputTable (key string, value string)
                    stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
                     with serdeproperties ("hbase.columns.mapping" = ":key,f1:col1")
                     tblproperties ("hbase.table.name" = "t1");
               
               select count(*) from inputTable ;
```

## Menyesuaikan konfigurasi HBase
<a name="emr-3x-hbase-customize"></a>

Meskipun pengaturan default harus berfungsi untuk sebagian besar aplikasi, Anda memiliki fleksibilitas untuk mengubah pengaturan HBase konfigurasi Anda. Untuk melakukannya, jalankan salah satu dari dua skrip tindakan bootstrap: 
+ **configure-hbase-daemons**—Mengkonfigurasi properti daemon master, regionserver, dan zookeeper. Properti ini termasuk ukuran heap dan opsi untuk diteruskan ke Java Virtual Machine (JVM) ketika daemon dimulai. HBase Anda mengatur properti ini sebagai argumen dalam tindakan bootstrap. Tindakan bootstrap ini memodifikasi file konfigurasi/home/hadoop/conf/hbase-user-env.sh pada HBase cluster. 
+ **configurre-hbase** —Mengonfigurasi pengaturan HBase khusus situs seperti port yang harus diikat oleh HBase master dan jumlah maksimum kali klien CLI klien harus mencoba lagi suatu tindakan. Anda dapat mengatur ini one-by-one, sebagai argumen dalam tindakan bootstrap, atau Anda dapat menentukan lokasi file konfigurasi XMLdi Amazon S3. Tindakan bootstrap ini memodifikasi file konfigurasi/home/hadoop/conf/hbase-site.xml pada HBase cluster. 

**catatan**  
Skrip ini, seperti tindakan bootstrap lainnya, hanya dapat dijalankan ketika cluster dibuat; Anda tidak dapat menggunakannya untuk mengubah konfigurasi HBase cluster yang sedang berjalan. 

Saat Anda menjalankan tindakan **configurre-hbase** atau **configure-hbase-daemons**bootstrap, nilai yang Anda tentukan akan menggantikan nilai default. Setiap nilai yang Anda tidak secara eksplisit mengatur menerima nilai default. 

Mengkonfigurasi HBase dengan tindakan bootstrap ini analog dengan menggunakan tindakan bootstrap di Amazon EMR untuk mengonfigurasi pengaturan Hadoop dan properti daemon Hadoop. Perbedaannya adalah bahwa HBase tidak memiliki opsi memori per proses. Sebagai gantinya, opsi memori diatur menggunakan `--daemon-opts` argumen, di *daemon* mana diganti dengan nama daemon untuk dikonfigurasi. 

### Konfigurasikan HBase daemon
<a name="emr-3x-hbase-configure-daemons"></a>

 Amazon EMR menyediakan tindakan bootstrap,`s3://region.elasticmapreduce/bootstrap-actions/configure-hbase-daemons`, yang dapat Anda gunakan untuk mengubah konfigurasi HBase daemon, di mana *region* wilayah tempat Anda meluncurkan cluster Anda. HBase 

Untuk mengonfigurasi HBase daemon menggunakan AWS CLI, tambahkan tindakan `configure-hbase-daemons` bootstrap saat Anda meluncurkan cluster untuk mengonfigurasi satu atau beberapa HBase daemon. Anda dapat mengatur properti berikut. 


| Properti | Deskripsi | 
| --- | --- | 
| hbase-master-opts | Pilihan yang mengontrol bagaimana JVM menjalankan daemon master. Jika diatur, ini menimpa variabel default HBASE\$1MASTER\$1OPTS.  | 
| regionserver-opts | Pilihan yang mengontrol bagaimana JVM menjalankan daemon server daerah. Jika diatur, ini menimpa variabel HBASE\$1REGIONSERVER\$1OPTS default. | 
| zookeeper-opts | Pilihan yang mengontrol bagaimana JVM berjalan daemon zookeeper. Jika diatur, ini menimpa variabel HBASE\$1ZOOKEEPER\$1OPTS default.  | 

Untuk informasi selengkapnya tentang opsi ini, lihat [hbase-env.sh](https://hbase.apache.org/book.html#hbase.env.sh) di HBase dokumentasi. 

Sebuah tindakan bootstrap untuk mengkonfigurasi nilai-nilai untuk `zookeeper-opts` dan `hbase-master-opts` ditunjukkan dalam contoh berikut.

**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.3 \
--applications Name=Hue Name=Hive Name=Pig Name=HBase \
--use-default-roles --ec2-attributes KeyName=myKey \
--instance-type c1.xlarge --instance-count 3 --termination-protected \
--bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase-daemons,\
Args=["--hbase-zookeeper-opts=-Xmx1024m -XX:GCTimeRatio=19","--hbase-master-opts=-Xmx2048m","--hbase-regionserver-opts=-Xmx4096m"]
```

### Konfigurasikan pengaturan HBase situs
<a name="emr-3x-hbase-configure-site"></a>

Amazon EMR menyediakan tindakan bootstrap,`s3://elasticmapreduce/bootstrap-actions/configure-hbase`, yang dapat Anda gunakan untuk mengubah konfigurasi. HBase Anda dapat mengatur nilai konfigurasi one-by-one, sebagai argumen dalam tindakan bootstrap, atau Anda dapat menentukan lokasi file konfigurasi XMLdi Amazon S3. Pengaturan nilai konfigurasi one-by-one berguna jika Anda hanya perlu mengatur beberapa pengaturan konfigurasi. Pengaturan mereka menggunakan file XML berguna jika Anda memiliki banyak perubahan untuk membuat, atau jika Anda ingin menyimpan pengaturan konfigurasi Anda untuk digunakan kembali. 

**catatan**  
Anda dapat mengawali nama bucket Amazon S3 dengan awalan wilayah, `s3://region.elasticmapreduce/bootstrap-actions/configure-hbase` seperti, *region* di mana wilayah tempat Anda meluncurkan klaster. HBase 

Tindakan bootstrap ini memodifikasi file `/home/hadoop/conf/hbase-site.xml` konfigurasi pada HBase cluster. Tindakan bootstrap hanya dapat dijalankan ketika HBase cluster diluncurkan.

Untuk informasi selengkapnya tentang setelan HBase situs yang dapat Anda konfigurasikan, lihat [Konfigurasi default](http://hbase.apache.org/book.html#config.files) dalam HBase dokumentasi. 

Atur tindakan `configure-hbase` bootstrap saat Anda meluncurkan HBase cluster dan tentukan nilai `hbase-site.xml` yang akan diubah.

**Untuk menentukan pengaturan HBase situs individual menggunakan AWS CLI**
+ Untuk mengubah `hbase.hregion.max.filesize` pengaturan, ketik perintah berikut dan ganti *myKey* dengan nama key pair Amazon EC2 Anda.
**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.3 \
  --applications Name=Hue Name=Hive Name=Pig Name=HBase \
  --use-default-roles --ec2-attributes KeyName=myKey \
  --instance-type c1.xlarge --instance-count 3 --termination-protected \
  --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["-s","hbase.hregion.max.filesize=52428800"]
  ```

**Untuk menentukan pengaturan HBase situs dengan file XMLmenggunakan AWS CLI**

1. Buat versi khusus `hbase-site.xml`. File kustom Anda harus XML yang valid. Untuk mengurangi kemungkinan terjadinya kesalahan, mulailah dengan salinan default`hbase-site.xml`, yang terletak di simpul HBase master EMR Amazon di`/home/hadoop/conf/hbase-site.xml`, dan edit salinan file itu alih-alih membuat file dari awal. Anda dapat memberikan nama baru pada file baru, atau meninggalkannya sebagai `hbase-site.xml`. 

1. Unggah file pembuangan `hbase-site.xml` ke bucket Amazon S3 Anda. Itu harus memiliki izin yang ditetapkan sehingga AWS akun yang meluncurkan cluster dapat mengakses file. Jika AWS akun yang meluncurkan cluster juga memiliki bucket Amazon S3, ia memiliki akses. 

1. Atur tindakan bootstrap **configurre-hbase** saat Anda meluncurkan HBase cluster, dan sertakan lokasi file kustom Anda. `hbase-site.xml` Contoh berikut menetapkan nilai konfigurasi HBase situs untuk yang ditentukan dalam file`s3://amzn-s3-demo-bucket/my-hbase-site.xml`. Ketik perintah berikut, ganti *myKey* dengan nama key pair EC2 Anda, dan ganti *amzn-s3-demo-bucket* dengan nama bucket Amazon S3 Anda.
**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.3 \
           --applications Name=Hue Name=Hive Name=Pig Name=HBase \
           --use-default-roles --ec2-attributes KeyName=myKey \
           --instance-type c1.xlarge --instance-count 3 --termination-protected \
           --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["--site-config-file","s3://amzn-s3-demo-bucket/config.xml"]
   ```

   Jika Anda menentukan lebih dari satu opsi untuk menyesuaikan HBase operasi, Anda harus menambahkan setiap pasangan kunci-nilai dengan sakelar `-s` opsi, seperti yang ditunjukkan pada contoh berikut:

   ```
          --bootstrap-actions s3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["-s","zookeeper.session.timeout=60000"]
   ```

Dengan set proxy dan koneksi SSH terbuka, Anda dapat melihat HBase UI dengan membuka jendela browser dengan http: //:60010/master-status*master-public-dns-name*, di mana alamat DNS publik *master-public-dns-name* dari node master di cluster. HBase 

Anda dapat melihat HBase log saat ini dengan menggunakan SSH untuk terhubung ke node master, dan menavigasi ke direktori. `mnt/var/log/hbase` Log ini tidak tersedia setelah klaster dihentikan kecuali Anda mengaktifkan pencatatan ke Amazon S3 ketika klaster diluncurkan.

## Cadangkan dan pulihkan HBase
<a name="emr-3x-hbase-backup-restore"></a>

Amazon EMR menyediakan kemampuan untuk mencadangkan HBase data Anda ke Amazon S3, baik secara manual atau pada jadwal otomatis. Anda dapat melakukan backup penuh dan inkremental. Setelah Anda memiliki versi HBase data yang dicadangkan, Anda dapat mengembalikan versi tersebut ke cluster. HBase Anda dapat memulihkan ke HBase klaster yang sedang berjalan, atau meluncurkan klaster baru yang telah diisi sebelumnya dengan data cadangan. 

Selama proses pencadangan, HBase terus jalankan perintah tulis. Meskipun ini memastikan bahwa cluster Anda tetap tersedia di seluruh cadangan, ada risiko inkonsistensi antara data yang didukung dan operasi tulis dijalankan secara paralel. Untuk memahami ketidakkonsistenan yang mungkin timbul, Anda harus mempertimbangkan bahwa HBase mendistribusikan operasi tulis di seluruh node di klasternya. Jika operasi menulis terjadi setelah node tertentu disurvei, data yang tidak termasuk dalam arsip cadangan. Anda bahkan mungkin menemukan bahwa penulisan sebelumnya ke HBase cluster (dikirim ke node yang telah disurvei) mungkin tidak ada dalam arsip cadangan, sedangkan penulisan nanti (dikirim ke node sebelum disurvei) disertakan. 

Jika cadangan yang konsisten diperlukan, Anda harus menjeda penulisan HBase selama bagian awal proses pencadangan, sinkronisasi di seluruh node. Anda dapat melakukannya dengan menentukan parameter `--consistent` ketika meminta cadangan. Dengan parameter ini, menulis selama periode ini antri dan dijalankan segera setelah sinkronisasi selesai. Anda juga dapat menjadwalkan pencadangan berulang, yang menyelesaikan inkonsistensi dari waktu ke waktu, karena data yang terlewatkan pada suatu pencadangan akan dicadangkan pada sesi berikutnya. 

Saat Anda mencadangkan HBase data, Anda harus menentukan direktori cadangan yang berbeda untuk setiap cluster. Cara mudah untuk melakukannya adalah dengan menggunakan pengidentifikasi cluster sebagai bagian dari jalan yang ditentukan untuk direktori cadangan. Misalnya, `s3://amzn-s3-demo-bucket/backups/j-3AEXXXXXX16F2`. Ini memastikan bahwa setiap backup incremental future mengacu pada cluster yang benar. HBase 

Ketika Anda siap untuk menghapus file cadangan lama yang tidak lagi diperlukan, kami sarankan Anda terlebih dahulu melakukan backup penuh HBase data Anda. Hal ini memastikan bahwa semua data dipertahankan dan menyediakan dasar untuk backup tambahan masa depan. Setelah backup penuh selesai, Anda dapat menavigasi ke lokasi cadangan dan secara manual menghapus file cadangan lama. 

Proses HBase pencadangan menggunakan S3 DistCp untuk operasi penyalinan, yang memiliki batasan tertentu mengenai ruang penyimpanan file sementara. 

### Cadangkan dan pulihkan HBase menggunakan konsol
<a name="emr-3x-hbase-backup-restore-console"></a>

Konsol menyediakan kemampuan untuk meluncurkan cluster baru dan mengisinya dengan data dari HBase cadangan sebelumnya. Ini juga memberi Anda kemampuan untuk menjadwalkan pencadangan data inkremental secara berkala. HBase Fungsi cadangan dan pemulihan tambahan, seperti kemampuan untuk memulihkan data ke cluster yang sudah berjalan, melakukan backup manual, dan jadwal backup penuh otomatis, tersedia menggunakan CLI.

**Untuk mengisi cluster baru dengan HBase data yang diarsipkan menggunakan konsol**

1. Arahkan ke konsol EMR Amazon baru dan pilih **Beralih ke konsol lama** dari navigasi samping. Untuk informasi selengkapnya tentang apa yang diharapkan saat beralih ke konsol lama, lihat [Menggunakan konsol lama](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in).

1. Pilih **Buat klaster**.

1. Di bagian **Konfigurasi Perangkat Lunak**, untuk **Aplikasi Tambahan**, pilih **HBase**dan **Konfigurasi dan tambahkan**.

1. Pada **Tambahkan Aplikasi** kotak dialog, periksa **Pulihkan dari Backup**. 

1. Untuk **Lokasi Cadangan**, tentukan lokasi cadangan yang akan dimuat ke dalam HBase cluster baru. Ini harus menjadi URL Amazon S3 formulir `s3://amzn-s3-demo-bucket/backups/`. 

1. Untuk **Versi Backup**, Anda memiliki pilihan untuk menentukan nama versi cadangan untuk dimuat dengan menetapkan nilai. Jika Anda tidak menetapkan nilai untuk **Versi Backup**, Amazon EMR memuat cadangan terbaru di lokasi yang ditentukan. 

1. Pilih **Tambahkan** dan lanjutkan untuk membuat cluster dengan pilihan lain seperti yang diinginkan.

**Untuk menjadwalkan pencadangan HBase data otomatis menggunakan konsol**

1. Di bagian **Konfigurasi Perangkat Lunak**, untuk **Aplikasi Tambahan**, pilih **HBase**dan **Konfigurasi dan tambahkan**.

1. Pilih **Jadwalkan Backup reguler**.

1. Menentukan apakah backup harus konsisten. Cadangan konsisten adalah salah satu yang berhenti menulis operasi selama tahap cadangan awal, sinkronisasi di node. Setiap operasi tulis sehingga berhenti ditempatkan dalam antrian dan melanjutkan ketika sinkronisasi selesai. 

1. Mengatur seberapa sering backup harus terjadi dengan memasukkan nomor untuk **Frekuensi Backup** dan memilih **hari**, **Jam**, atau **Menit**. Cadangan otomatis pertama yang berjalan adalah cadangan penuh; setelah itu, Amazon EMR menyimpan backup tambahan berdasarkan jadwal yang Anda tentukan. 

1. Tentukan lokasi di Amazon S3 tempat backup harus disimpan. Setiap HBase cluster harus dicadangkan ke lokasi terpisah di Amazon S3 untuk memastikan bahwa cadangan tambahan dihitung dengan benar. 

1. Tentukan kapan cadangan pertama harus terjadi dengan menetapkan nilai untuk **Waktu Mulai Backup**. Anda dapat mengatur ini ke`now`, yang menyebabkan cadangan pertama untuk memulai segera setelah cluster berjalan, atau masukkan tanggal dan waktu di [Format ISO](http://www.w3.org/TR/NOTE-datetime). Sebagai contoh, 2013-09-26T 20:00 Z, menetapkan waktu mulai 26 September 2013 di 20:00 UTC. 

1. Pilih **Tambahkan**.

1. Lanjutkan dengan menciptakan cluster dengan pilihan lain seperti yang diinginkan.

## Monitor HBase dengan CloudWatch
<a name="emr-3x-hbase-cloudwatch"></a>

Amazon EMR melaporkan tiga metrik CloudWatch yang dapat Anda gunakan untuk memantau cadangan Anda. HBase Metrik ini didorong ke CloudWatch interval lima menit, dan disediakan tanpa biaya.


| Metrik | Deskripsi | 
| --- | --- | 
| HBaseBackupFailed |  Apakah cadangan terakhir gagal. Ini diatur ke 0 secara default dan diperbarui ke 1 jika upaya cadangan sebelumnya gagal. Metrik ini hanya dilaporkan untuk HBase cluster. Kasus penggunaan: Pantau HBase cadangan Unit: *Jumlah*  | 
| HBaseMostRecentBackupDuration |  Jumlah waktu yang dibutuhkan cadangan sebelumnya untuk menyelesaikan. Metrik ini diatur terlepas dari apakah cadangan terakhir selesai berhasil atau gagal. Saat cadangan sedang berlangsung, metrik ini akan mengembalikan jumlah menit setelah pencadangan dimulai. Metrik ini hanya dilaporkan untuk HBase cluster. Kasus penggunaan: Monitor HBase Backup Unit: *Menit*  | 
| HBaseTimeSinceLastSuccessfulBackup |  Jumlah menit berlalu setelah HBase pencadangan terakhir yang berhasil dimulai di cluster Anda. Metrik ini hanya dilaporkan untuk HBase cluster. Kasus penggunaan: Pantau HBase cadangan Unit: *Menit*  | 

## Konfigurasikan Ganglia untuk HBase
<a name="emr-3x-ganglia-for-hbase"></a>

Anda mengkonfigurasi Ganglia untuk HBase menggunakan tindakan **configure-hbase-for-ganglia**bootstrap. Tindakan bootstrap ini dikonfigurasi HBase untuk mempublikasikan metrik ke Ganglia. 

Anda harus mengkonfigurasi HBase dan Ganglia ketika Anda meluncurkan cluster; pelaporan Ganglia tidak dapat ditambahkan ke cluster yang sedang berjalan. 

Ganglia juga menyimpan file log di server di `/mnt/var/log/ganglia/rrds`. Jika Anda mengonfigurasi kluster Anda untuk menahan file log ke bucket Amazon S3, log file Ganglia akan tetap berada di sana juga. 

Untuk meluncurkan cluster dengan Ganglia HBase, gunakan tindakan **configure-hbase-for-ganglia**bootstrap seperti yang ditunjukkan pada contoh berikut.

**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.3 \
--applications Name=Hue Name=Hive Name=Pig Name=HBase Name=Ganglia \
--use-default-roles --ec2-attributes KeyName=myKey \
--instance-type c1.xlarge --instance-count 3 --termination-protected \
--bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase-for-ganglia
```

Setelah cluster diluncurkan dengan Ganglia dikonfigurasi, Anda dapat mengakses grafik Ganglia dan laporan menggunakan antarmuka grafis yang berjalan pada node master. 

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

## Versi Pig yang Didukung
<a name="emr-3x-Pig_SupportedVersions"></a>

Versi Pig Anda dapat menambahkan ke cluster Anda tergantung pada versi Amazon EMR AMI dan versi Hadoop Anda gunakan. Tabel di bawah ini menunjukkan versi AMI dan versi Hadoop yang kompatibel dengan versi yang berbeda dari Pig. Kami merekomendasikan menggunakan versi terbaru yang tersedia dari Pig untuk mengambil keuntungan dari peningkatan kinerja dan fungsionalitas baru. 

Saat Anda menggunakan API untuk menginstal Pig, versi default digunakan kecuali Anda menentukan `--pig-versions` sebagai argumen untuk langkah yang memuat Pig ke cluster selama panggilan ke [RunJobFlow](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RunJobFlow.html). 


| Versi Pig | Versi AMI | Parameter konfigurasi | Rincian versi Pig | 
| --- | --- | --- | --- | 
| <a name="pig12"></a>0.12.0[Catatan rilis](http://pig.apache.org/releases.html#14+October%2C+2013%3A+release+0.12.0+available)[Dokumentasi](http://pig.apache.org/docs/r0.12.0/) | 3.1.0 dan versi yang lebih baru |  `--ami-version 3.1` `--ami-version 3.2` `--ami-version 3.3`  |  Menambahkan dukungan untuk hal berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/emr-3x-pig.html)  | 
| <a name="pig1111"></a>0.11.1.1[Catatan rilis](http://pig.apache.org/releases.html#1+April%2C+2013%3A+release+0.11.1+available)[Dokumentasi](http://pig.apache.org/docs/r0.11.1/) | 2.2 dan versi yang lebih baru |  `--pig-versions 0.11.1.1` `--ami-version 2.2`  |  Meningkatkan kinerja perintah LOAD dengan PigStorage jika input berada di Amazon S3.  | 
| <a name="pig0111"></a>0.11.1[Catatan rilis](http://pig.apache.org/releases.html#1+April%2C+2013%3A+release+0.11.1+available)[Dokumentasi](http://pig.apache.org/docs/r0.11.1/) | 2.2 dan versi yang lebih baru |  `--pig-versions 0.11.1` `--ami-version 2.2`  |  Menambahkan dukungan untuk JDK 7, Hadoop 2, fungsi yang ditentukan pengguna Groovy, optimasi, operator baru, SchemaTuple dan banyak lagi. Untuk informasi selengkapnya, lihat [Pig 0.11.1 log perubahan](http://svn.apache.org/repos/asf/pig/tags/release-0.11.1/CHANGES.txt).  | 
| <a name="pig0922"></a>0.9.2.2[Catatan rilis](http://pig.apache.org/releases.html#22+January%2C+2012%3A+release+0.9.2+available)[Dokumentasi](http://pig.apache.org/docs/r0.9.2/index.html) | 2.2 dan versi yang lebih baru |  `--pig-versions 0.9.2.2` `--ami-version 2.2`  |  Menambahkan dukungan untuk Hadoop 1.0.3.  | 
| <a name="pig0921"></a>0.9.2.1[Catatan rilis](http://pig.apache.org/releases.html#22+January%2C+2012%3A+release+0.9.2+available)[Dokumentasi](http://pig.apache.org/docs/r0.9.2/index.html) | 2.2 dan versi yang lebih baru |  `--pig-versions 0.9.2.1` `--ami-version 2.2`  |  Menambahkan dukungan untuk MapR.  | 
| <a name="pig092"></a>0.9.2[Catatan rilis](http://pig.apache.org/releases.html#22+January%2C+2012%3A+release+0.9.2+available)[Dokumentasi](http://pig.apache.org/docs/r0.9.2/index.html) | 2.2 dan versi yang lebih baru |  `--pig-versions 0.9.2` `--ami-version 2.2`  |  Termasuk beberapa peningkatan kinerja dan perbaikan bug. Untuk informasi lengkap tentang perubahan untuk Pig 0.9.2, pergi ke [Pig 0.9.2 perubahan log](http://svn.apache.org/repos/asf/pig/tags/release-0.9.2/CHANGES.txt).  | 
| <a name="pig091"></a>0.9.1[Catatan rilis](http://pig.apache.org/releases.html#5+October%2C+2011%3A+release+0.9.1+available)[Dokumentasi](http://pig.apache.org/docs/r0.9.1/) | 2.0 |  `--pig-versions 0.9.1` `--ami-version 2.0`  | 
| <a name="pig06"></a>0,6[Catatan rilis](http://pig.apache.org/releases.html#1+March%2C+2010%3A+release+0.6.0+available) | 1.0 |  `--pig-versions 0.6` `--ami-version 1.0`  | 
| <a name="pig03"></a>0,3[Catatan rilis](http://pig.apache.org/releases.html#25+June%2C+2009%3A+release+0.3.0+available) | 1.0 |  `--pig-versions 0.3` `--ami-version 1.0`  | 

## Rincian versi Pig
<a name="emr-pig-version-details"></a>

Amazon EMR mendukung rilis Pig tertentu yang mungkin memiliki tambahan Amazon EMR patch diterapkan. Anda dapat mengkonfigurasi versi Pig untuk berjalan pada cluster Amazon EMR. Untuk informasi selengkapnya tentang cara melakukan ini, lihat [Apache Pig](emr-pig.md). Bagian berikut menjelaskan versi Pig yang berbeda dan patch diterapkan pada versi dimuat di Amazon EMR. 

### Patch Pig
<a name="EnvironmentConfig_AMIPigPatches"></a>

Bagian ini menjelaskan patch kustom yang diterapkan ke versi Pig yang tersedia dengan Amazon EMR.

#### Pig 0.11.1.1 patch
<a name="EnvironmentConfig_AMIPigPatches-0.11.1.1"></a>

Versi Amazon EMR dari Pig 0.11.1.1 adalah rilis pemeliharaan yang meningkatkan kinerja perintah LOAD dengan PigStorage jika input berada di Amazon S3.

#### Pig 0.11.1 patch
<a name="EnvironmentConfig_AMIPigPatches-0.11.1"></a>

Versi Amazon EMR dari Pig 0.11.1 berisi semua pembaruan yang disediakan oleh Apache Software Foundation dan kumulatif patch Amazon EMR dari Pig versi 0.9.2.2. Namun, tidak ada patch khusus Amazon EMR baru di Pig 0.11.1.

#### Pig 0,9.2 patch
<a name="EnvironmentConfig_AMIPigPatches-0.9.2"></a>

Apache Pig 0.9.2 adalah rilis pemeliharaan Pig. Tim Amazon EMR telah menerapkan patch berikut untuk versi Amazon EMR dari Pig 0.9.2. 


| Patch | Deskripsi | 
| --- | --- | 
|  Pig-1429  |   Tambahkan tipe data Boolean untuk Pig sebagai tipe data kelas pertama. Untuk informasi lebih lanjut, kunjungi [https://issues.apache. org/jira/browse/PIG-1429](https://issues.apache.org/jira/browse/PIG-1429).   **Status:** Diterapkan   **Diperbaiki di Apache Pig Versi:** 0.10   | 
|  Pig-1824  |   Support modul impor di Jython UDF. Untuk informasi lebih lanjut, kunjungi [https://issues.apache. org/jira/browse/PIG-1824](https://issues.apache.org/jira/browse/PIG-1824).   **Status:** Diterapkan   **Diperbaiki di Apache Pig Versi:** 0.10   | 
|  Pig-2010  |   Bundel terdaftar JARs pada cache terdistribusi. Untuk informasi lebih lanjut, kunjungi [https://issues.apache. org/jira/browse/PIG-2010](https://issues.apache.org/jira/browse/PIG-2010).   **Status:** Diterapkan   **Diperbaiki di Apache Pig Versi:** 0.11   | 
|  Pig-2456  |   Tambahkan \$1 /.pigbootup file di mana pengguna dapat menentukan laporan Pig default. Untuk informasi lebih lanjut, kunjungi [https://issues.apache. org/jira/browse/PIG-2456](https://issues.apache.org/jira/browse/PIG-2456).   **Status:** Diterapkan   **Diperbaiki di Apache Pig Versi:** 0.11   | 
|  Pig-2623  |   Support menggunakan jalur Amazon S3 untuk mendaftar. UDFs Untuk informasi lebih lanjut, kunjungi [https://issues.apache. org/jira/browse/PIG-2623](https://issues.apache.org/jira/browse/PIG-2623).   **Status:** Diterapkan   **Diperbaiki di Apache Pig Versi:** 0.10, 0.11   | 

#### Pig 0,9.1 patch
<a name="EnvironmentConfig_AMIPigPatches-0.9.1"></a>

Tim Amazon EMR telah menerapkan patch berikut untuk versi Amazon EMR Pig 0.9.1. 


| Patch | Deskripsi | 
| --- | --- | 
|  Support file JAR dan script Pig di dfs  |   Menambahkan dukungan untuk menjalankan script dan mendaftarkan file JAR disimpan dalam HDFS, Amazon S3, atau sistem file terdistribusi lainnya. Untuk informasi lebih lanjut, kunjungi [https://issues.apache. org/jira/browse/PIG-1505](https://issues.apache.org/jira/browse/PIG-1505).   **Status:** Diterapkan   **Diperbaiki di Apache Pig Versi:** 0.8.0   | 
|  Support beberapa sistem file di Pig  |   Tambahkan dukungan untuk skrip Pig untuk membaca data dari satu sistem file dan menuliskannya ke yang lain. Untuk informasi lebih lanjut, kunjungi [https://issues.apache. org/jira/browse/PIG-1564](https://issues.apache.org/jira/browse/PIG-1564).   **Status:** Tidak Diterapkan   **Diperbaiki di Apache Pig Versi:** tidak berlaku   | 
|  Tambahkan datetime dan string Piggybank UDFs  |   Tambahkan datetime dan string UDFs untuk mendukung skrip Pig kustom. Untuk informasi lebih lanjut, kunjungi [https://issues.apache. org/jira/browse/PIG-1565](https://issues.apache.org/jira/browse/PIG-1565).   **Status:** Tidak Diterapkan   **Diperbaiki di Apache Pig Versi:** tidak berlaku   | 

## Interaktif dan kluster Pig batch
<a name="emr-3x-pig-interactive-batch"></a>

Amazon EMR memungkinkan Anda untuk menjalankan skrip Pig dalam dua mode:
+ Interaktif
+ Batch

Saat Anda meluncurkan cluster yang berjalan lama menggunakan konsol atau AWS CLI, Anda dapat terhubung menggunakan **ssh** ke node master sebagai pengguna Hadoop dan menggunakan shell Grunt untuk mengembangkan dan menjalankan skrip Pig Anda secara interaktif. Menggunakan Pig interaktif memungkinkan Anda untuk merevisi script Pig lebih mudah dari modus batch. Setelah Anda berhasil merevisi script Pig dalam mode interaktif, Anda dapat meng-upload script ke Amazon S3 dan menggunakan modus batch untuk menjalankan script dalam produksi. Anda juga dapat mengirimkan perintah Pig interaktif pada cluster berjalan untuk menganalisis dan mengubah data yang diperlukan.

Dalam modus batch, Anda meng-upload script Pig Anda ke Amazon S3, dan kemudian mengirimkan pekerjaan ke cluster sebagai langkah. Langkah Pig dapat diserahkan ke cluster berjalan lama atau cluster sementara.

# Spark spesifik aplikasi dengan versi AMI sebelumnya dari Amazon EMR
<a name="emr-3x-spark"></a>

## Gunakan Spark secara interaktif atau dalam mode batch
<a name="emr-3x-spark-interactive-batch"></a>

Amazon EMR memungkinkan Anda untuk menjalankan aplikasi Spark dalam dua mode: 
+ Interaktif
+ Batch

Saat Anda meluncurkan cluster yang berjalan lama menggunakan konsol atau AWS CLI, Anda dapat terhubung menggunakan SSH ke node master sebagai pengguna Hadoop dan menggunakan shell Spark untuk mengembangkan dan menjalankan aplikasi Spark Anda secara interaktif. Menggunakan Spark interaktif memungkinkan Anda untuk prototipe atau uji aplikasi Spark lebih mudah daripada di lingkungan batch. Setelah Anda berhasil merevisi aplikasi Spark dalam mode interaktif, Anda dapat menempatkan bahwa JAR aplikasi atau program Python dalam sistem file lokal ke node master cluster di Amazon S3. Anda kemudian dapat mengirimkan aplikasi sebagai alur kerja batch.

Dalam modus batch, meng-upload Spark script untuk Amazon S3 atau sistem file node master lokal, dan kemudian mengirimkan pekerjaan ke cluster sebagai langkah. Langkah percikan dapat diserahkan ke cluster berjalan lama atau cluster sementara.

## Membuat cluster dengan Spark diinstal
<a name="emr-3x-spark-install"></a>

**Untuk melancarkan kluster dengan Spark dipasang menggunakan konsol**

1. Arahkan ke konsol EMR Amazon baru dan pilih **Beralih ke konsol lama** dari navigasi samping. Untuk informasi selengkapnya tentang apa yang diharapkan saat beralih ke konsol lama, lihat [Menggunakan konsol lama](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in).

1. Pilih **Buat kluster**.

1. Untuk **Pengaturan perangkat lunak**, pilih versi rilis AMI yang Anda butuhkan.

1.  Untuk **Aplikasi yang akan dipasang** Pilih **Spark** dari daftar, lalu pilih **Konfigurasikan dan tambahkan**.

1. Menambahkan argumen untuk mengubah konfigurasi Spark seperti yang diinginkan. Untuk informasi selengkapnya, lihat [Konfigurasi Spark](#emr-3x-spark-configure). Pilih **Tambahkan**.

1.  Pilih opsi lain yang diperlukan, lalu pilih **Buat kluster**.

Contoh berikut menunjukkan cara membuat klaster dengan Spark menggunakan Java:

```
AmazonElasticMapReduceClient emr = new AmazonElasticMapReduceClient(credentials);
SupportedProductConfig sparkConfig = new SupportedProductConfig()
			.withName("Spark");

RunJobFlowRequest request = new RunJobFlowRequest()
			.withName("Spark Cluster")
			.withAmiVersion("3.11.0")
			.withNewSupportedProducts(sparkConfig)
			.withInstances(new JobFlowInstancesConfig()
				.withEc2KeyName("myKeyName")
				.withInstanceCount(1)
				.withKeepJobFlowAliveWhenNoSteps(true)
				.withMasterInstanceType("m3.xlarge")
				.withSlaveInstanceType("m3.xlarge")
			);			
RunJobFlowResult result = emr.runJobFlow(request);
```

## Konfigurasi Spark
<a name="emr-3x-spark-configure"></a>

Anda mengonfigurasi Spark saat membuat cluster dengan menjalankan aksi bootstrap yang terletak di [awslabs/emr-bootstrap-actions/sparkrepositori di Github](https://github.com/awslabs/emr-bootstrap-actions/tree/master/spark). Untuk argumen bahwa tindakan bootstrap menerima, lihat [README](https://github.com/aws-samples/emr-bootstrap-actions/blob/master/spark/examples/README.md) dalam repositori itu. Tindakan bootstrap mengkonfigurasi properti di `$SPARK_CONF_DIR/spark-defaults.conf` file. Untuk informasi lebih lanjut tentang pengaturan, lihat topik Spark Konfigurasi dalam dokumentasi Spark. Anda dapat mengganti “terbaru” di URL berikut dengan nomor versi Spark yang Anda instal, misalnya, `2.2.0` [http://spark.apache.org/docs/latest/configuration.html](http://spark.apache.org/docs/latest/configuration.html).

Anda juga dapat mengkonfigurasi Spark dinamis pada saat setiap pengajuan aplikasi. Pengaturan untuk secara otomatis memaksimalkan alokasi sumber daya untuk pelaksana tersedia menggunakan `spark` File konfigurasi. Untuk informasi selengkapnya, lihat [Menimpa pengaturan konfigurasi default Spark](#emr-3x-spark-dynamic-configuration).

### Mengubah pengaturan default Spark
<a name="emr-3x-spark-default-settings"></a>

Contoh berikut menunjukkan cara membuat klaster dengan `spark.executor.memory` diatur ke 2G menggunakan AWS CLI.

**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 "Spark cluster" --ami-version 3.11.0 \
--applications Name=Spark, Args=[-d,spark.executor.memory=2G] --ec2-attributes KeyName=myKey \
--instance-type m3.xlarge --instance-count 3 --use-default-roles
```

### Kirim pekerjaan ke Spark
<a name="emr-3x-spark-submit-work"></a>

Untuk mengirimkan pekerjaan ke sebuah cluster, gunakan langkah untuk menjalankan `spark-submit` pada cluster EMR Anda. Tambahkan langkah menggunakan `addJobFlowSteps` metode di [AmazonElasticMapReduceClient](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/elasticmapreduce/AmazonElasticMapReduceClient.html):

```
AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
AmazonElasticMapReduceClient emr = new AmazonElasticMapReduceClient(credentials);
StepFactory stepFactory = new StepFactory();
AddJobFlowStepsRequest req = new AddJobFlowStepsRequest();
req.withJobFlowId("j-1K48XXXXXXHCB");

List<StepConfig> stepConfigs = new ArrayList<StepConfig>();
		
StepConfig sparkStep = new StepConfig()
	.withName("Spark Step")
	.withActionOnFailure("CONTINUE")
	.withHadoopJarStep(stepFactory.newScriptRunnerStep("/home/hadoop/spark/bin/spark-submit","--class","org.apache.spark.examples.SparkPi","/home/hadoop/spark/lib/spark-examples-1.3.1-hadoop2.4.0.jar","10"));

stepConfigs.add(sparkStep);
req.withSteps(stepConfigs);
AddJobFlowStepsResult result = emr.addJobFlowSteps(req);
```

### Menimpa pengaturan konfigurasi default Spark
<a name="emr-3x-spark-dynamic-configuration"></a>

Anda mungkin ingin menimpa Spark nilai konfigurasi default secara per aplikasi. Anda dapat melakukan ini ketika Anda mengirimkan aplikasi menggunakan langkah, yang pada dasarnya melewati opsi untuk `spark-submit`. Misalnya, Anda mungkin ingin mengubah memori yang dialokasikan untuk proses pelaksana dengan mengubah `spark.executor.memory`. Anda dapat menyediakan `--executor-memory` beralih dengan argumen seperti berikut:

```
/home/hadoop/spark/bin/spark-submit --executor-memory 1g --class org.apache.spark.examples.SparkPi /home/hadoop/spark/lib/spark-examples*.jar 10
```

Demikian pula, Anda dapat menyetel `--executor-cores` dan `--driver-memory`. Dalam satu langkah, Anda akan memberikan argumen berikut untuk langkah:

```
--executor-memory 1g --class org.apache.spark.examples.SparkPi /home/hadoop/spark/lib/spark-examples*.jar 10
```

Anda juga dapat menyetel pengaturan yang mungkin tidak memiliki sakelar bawaan menggunakan `--conf` Pilihan. Untuk informasi selengkapnya tentang pengaturan lain yang merdu, lihat [Dinamis memuat properti Spark](https://spark.apache.org/docs/latest/configuration.html#dynamically-loading-spark-properties) topik dalam dokumentasi Apache Spark.

# Perbedaan DistCp utilitas S3 dengan versi AMI sebelumnya dari Amazon EMR
<a name="emr-3x-s3distcp"></a>

## DistCp Versi S3 didukung di Amazon EMR
<a name="emr-s3distcp-verisons"></a>

DistCp Versi S3 berikut didukung dalam rilis Amazon EMR AMI. DistCpVersi S3 setelah 1.0.7 ditemukan langsung di cluster. Gunakan JAR di `/home/hadoop/lib` untuk fitur terbaru.


| Versi | Deskripsi | Tanggal rilis | 
| --- | --- | --- | 
| 1.0.8 | Menambahkan --appendToLastFile, --requirePreviousManifest, dan --storageClass Pilihan. | 3 Januari 2014 | 
| 1.0.7 | Menambahkan opsi --s3ServerSideEncryption. | 2 Mei 2013 | 
| 1.0.6 | Menambahkan opsi --s3Endpoint. | 6 Agustus 2012 | 
| 1.0.5 | Meningkatkan kemampuan untuk menentukan versi S3 mana yang DistCp akan dijalankan. | 27 Juni 2012 | 
| 1.0.4 | Meningkatkan --deleteOnSuccess Pilihan. | 19 Juni 2012 | 
| 1.0.3 | Menambahkan dukungan untuk --numberFiles dan --startingIndex Pilihan. | 12 Juni 2012 | 
| 1.0.2 | Meningkatkan penamaan file saat menggunakan grup. | 6 Juni 2012 | 
| 1.0.1 | Rilis awal S3DistCp. | 19 Januari 2012 | 

## Tambahkan langkah DistCp penyalinan S3 ke cluster
<a name="emr-3x-s3distcp-add-step"></a>

Untuk menambahkan langkah DistCp penyalinan S3 ke cluster yang sedang berjalan, ketik perintah berikut, ganti *j-3GYXXXXXX9IOK* dengan ID klaster, dan ganti *amzn-s3-demo-bucket* dengan nama bucket Amazon S3.

**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 add-steps --cluster-id j-3GYXXXXXX9IOK \
--steps Type=CUSTOM_JAR,Name="S3DistCp step",Jar=/home/hadoop/lib/emr-s3distcp-1.0.jar,\
Args=["--s3Endpoint,s3-eu-west-1.amazonaws.com",\
"--src,s3://amzn-s3-demo-bucket/logs/j-3GYXXXXXX9IOJ/node/",\
"--dest,hdfs:///output",\
"--srcPattern,.*[a-zA-Z,]+"]
```

**Example Muat CloudFront log Amazon ke HDFS**  
Contoh ini memuat CloudFront log Amazon ke HDFS dengan menambahkan langkah ke cluster yang sedang berjalan. Dalam prosesnya, itu mengubah format kompresi dari Gzip ( CloudFrontdefault) ke LZO. Hal ini berguna karena data yang dikompresi menggunakan LZO dapat dibagi menjadi beberapa peta karena didekompresi, sehingga Anda tidak perlu menunggu sampai kompresi selesai, seperti yang Anda lakukan dengan Gzip. Ini memberikan kinerja yang lebih baik ketika Anda menganalisis data menggunakan Amazon EMR. Contoh ini juga meningkatkan kinerja dengan menggunakan ekspresi reguler yang ditentukan dalam `--groupBy` pilihan untuk menggabungkan semua log untuk jam tertentu ke dalam satu file. Kluster Amazon EMR lebih efisien ketika memproses beberapa, besar, file LZO terkompresi daripada ketika memproses banyak, kecil, file terkompresi GZIP. Untuk membagi file LZO, Anda harus mengindeks mereka dan menggunakan perpustakaan pihak ketiga hadoop-lzo.   
Untuk memuat CloudFront log Amazon ke HDFS, ketik perintah berikut, ganti *j-3GYXXXXXX9IOK* dengan ID cluster Anda, dan ganti *amzn-s3-demo-bucket* dengan nama bucket Amazon S3 Anda.   
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 add-steps --cluster-id j-3GYXXXXXX9IOK \
--steps Type=CUSTOM_JAR,Name="S3DistCp step",Jar=/home/hadoop/lib/emr-s3distcp-1.0.jar,\
Args=["--src,s3://amzn-s3-demo-bucket/cf","--dest,hdfs:///local",\
"--groupBy,.*XABCD12345678.([0-9]+-[0-9]+-[0-9]+-[0-9]+).*",\
"--targetSize,128",
"--outputCodec,lzo","--deleteOnSuccess"]
```
Pertimbangkan kasus di mana contoh sebelumnya dijalankan di atas file CloudFront log berikut.   

```
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-01.HLUS3JKx.gz
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-01.I9CNAZrg.gz
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-02.YRRwERSA.gz
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-02.dshVLXFE.gz
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-02.LpLfuShd.gz
```
S3 DistCp menyalin, menggabungkan, dan mengompres file ke dalam dua file berikut, di mana nama file ditentukan oleh kecocokan yang dibuat oleh ekspresi reguler.   

```
hdfs:///local/2012-02-23-01.lzo
hdfs:///local/2012-02-23-02.lzo
```