

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

# End-to-end Contoh kode sumber Amazon EMR Java
<a name="emr-common-programming-sample"></a>

Developer dapat memanggil Amazon EMR API menggunakan kode Java khusus untuk melakukan hal yang sama yang mungkin dengan konsol Amazon EMR atau CLI. Bagian ini menyediakan end-to-end langkah-langkah yang diperlukan untuk menginstal AWS Toolkit for Eclipse dan menjalankan contoh kode sumber Java yang berfungsi penuh yang menambahkan langkah-langkah ke cluster EMR Amazon.

**catatan**  
Contoh ini berfokus pada Java, tetapi Amazon EMR juga mendukung beberapa bahasa pemrograman dengan koleksi Amazon EMR. SDKs Untuk informasi selengkapnya, lihat [Gunakan SDKs untuk memanggil Amazon EMR APIs](call-emr-using-sdks.md).

 Contoh kode sumber Java ini menunjukkan cara melakukan tugas-tugas berikut menggunakan Amazon EMR API: 
+ Ambil AWS kredensyal dan kirimkan ke Amazon EMR untuk melakukan panggilan API
+ Mengonfigurasi langkah khusus baru dan langkah yang telah ditentukan baru
+ Menambahkan langkah baru untuk klaster Amazon EMR yang ada
+ Ambil langkah cluster IDs dari cluster yang sedang berjalan

**catatan**  
Sampel ini menunjukkan cara menambahkan langkah-langkah untuk klaster yang ada dan dengan demikian mengharuskan Anda memiliki klaster aktif pada akun Anda.

Sebelum memulai, instal versi **Eclipse IDE untuk developer Java EE** yang cocok dengan platform komputer Anda. Untuk informasi lebih lanjut, kunjungi [Unduhan Eclipse](http://www.eclipse.org/downloads/).

Selanjutnya, instal plugin Database Development untuk Eclipse.

**Untuk menginstal plugin Database Development Eclipse**

1. Buka Eclipse IDE.

1. Pilih **Bantuan** dan **Instal Perangkat Lunak baru**.

1. Dalam bidang **Bekerja dengan:**, ketik **http://download.eclipse.org/releases/kepler** atau jalur yang cocok dengan nomor versi Eclipse IDE Anda.

1. Dalam daftar item, pilih **Database Development** dan **Selesai**.

1. Mulai ulang Eclipse saat diminta.

Selanjutnya, instal Toolkit for Eclipse untuk membuat templat proyek sumber bermanfaat yang telah dikonfigurasi yang tersedia.

**Untuk menginstal Toolkit for Eclipse**

1. Buka Eclipse IDE.

1. Pilih **Bantuan** dan **Instal Perangkat Lunak baru**.

1. Dalam bidang **Bekerja dengan:**, ketik **https://aws.amazon.com/eclipse**.

1. Dalam daftar item, pilih **AWS Toolkit for Eclipse** dan **Selesai**.

1. Mulai ulang Eclipse saat diminta.

Selanjutnya, buat proyek AWS Java baru dan jalankan contoh kode sumber Java.

**Untuk membuat proyek AWS Java baru**

1. Buka Eclipse IDE.

1. Pilih **File**, **Baru**, dan **Lainnya**.

1. Dalam dialog **Pilih wizard**, pilih **Proyek AWS Java** dan **Berikutnya**.

1. Dalam dialog **Proyek AWS Java Baru**, di **Project name:** lapangan, masukkan nama proyek baru Anda, misalnya**EMR-sample-code**.

1. Pilih **Konfigurasi AWS akun...**, masukkan kunci akses publik dan pribadi Anda, dan pilih **Selesai**. Untuk informasi lebih lanjut tentang membuat access key, lihat [Bagaimana cara mendapatkan kredensial keamanan?](https://docs.aws.amazon.com/general/latest/gr/getting-aws-sec-creds.html) dalam *Referensi Umum Amazon Web Services*.
**catatan**  
Anda **tidak** boleh menyematkan access key ke dalam kode secara langsung. Amazon EMR SDK memungkinkan Anda menempatkan access key di lokasi yang diketahui sehingga Anda tidak perlu menyimpannya dalam kode.

1. Dalam proyek Java baru, klik kanan folder **src**, lalu pilih **Baru** dan **Kelas**.

1. Dalam dialog **Kelas Java**, di bidang **Nama**, masukkan nama untuk kelas baru Anda, misalnya **main**.

1. Di bagian **Metode bertopik mana yang ingin Anda buat?**, pilih **public static void main(String [] args)** dan **Selesai**.

1. Masukkan kode sumber Java di dalam kelas baru Anda dan tambahkan pernyataan **Impor ** yang sesuai untuk kelas dan metode dalam sampel. Untuk kemudahan, daftar kode sumber lengkap ditampilkan di bawah ini. 
**catatan**  
Dalam kode contoh berikut, ganti contoh ID cluster (JobFlowId){{`j-xxxxxxxxxxxx`}}, dengan ID klaster yang valid di akun Anda yang ditemukan di Konsol Manajemen AWS atau dengan menggunakan AWS CLI perintah berikut:   

   ```
   aws emr list-clusters --active | grep "Id"
   ```
Selain itu, ganti contoh jalur Amazon S3, {{`s3://path/to/my/jarfolder`}}, dengan jalur yang valid untuk JAR Anda. Terakhir, ganti contoh nama kelas, {{`com.my.Main1`}}, dengan nama yang benar dari kelas di JAR Anda, jika berlaku. 

   ```
   import com.amazonaws.AmazonClientException;
   import com.amazonaws.auth.AWSCredentials;
   import com.amazonaws.auth.AWSStaticCredentialsProvider;
   import com.amazonaws.auth.profile.ProfileCredentialsProvider;
   import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;
   import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;
   import com.amazonaws.services.elasticmapreduce.model.*;
   import com.amazonaws.services.elasticmapreduce.util.StepFactory;
   
   public class Main {
   
   	public static void main(String[] args) {
   		AWSCredentials credentials_profile = null;
   		try {
   			credentials_profile = new ProfileCredentialsProvider("default").getCredentials();
   		} catch (Exception e) {
   			throw new AmazonClientException(
   					"Cannot load credentials from .aws/credentials file. " +
   							"Make sure that the credentials file exists and the profile name is specified within it.",
   					e);
   		}
   
   		AmazonElasticMapReduce emr = AmazonElasticMapReduceClientBuilder.standard()
   				.withCredentials(new AWSStaticCredentialsProvider(credentials_profile))
   				.withRegion(Regions.US_WEST_1)
   				.build();
   
   		// Run a bash script using a predefined step in the StepFactory helper class
   		StepFactory stepFactory = new StepFactory();
   		StepConfig runBashScript = new StepConfig()
   				.withName("Run a bash script")
   				.withHadoopJarStep(stepFactory.newScriptRunnerStep("s3://jeffgoll/emr-scripts/create_users.sh"))
   				.withActionOnFailure("CONTINUE");
   
   		// Run a custom jar file as a step
   		HadoopJarStepConfig hadoopConfig1 = new HadoopJarStepConfig()
   				.withJar("s3://path/to/my/jarfolder") // replace with the location of the jar to run as a step
   				.withMainClass("com.my.Main1") // optional main class, this can be omitted if jar above has a manifest
   				.withArgs("--verbose"); // optional list of arguments to pass to the jar
   		StepConfig myCustomJarStep = new StepConfig("RunHadoopJar", hadoopConfig1);
   
   		AddJobFlowStepsResult result = emr.addJobFlowSteps(new AddJobFlowStepsRequest()
   				.withJobFlowId("j-xxxxxxxxxxxx") // replace with cluster id to run the steps
   				.withSteps(runBashScript, myCustomJarStep));
   
   		System.out.println(result.getStepIds());
   
   	}
   }
   ```

1. Pilih **Jalankan**, **Jalankan Sebagai**, dan **Aplikasi Java**.

1. Jika sampel berjalan dengan benar, daftar IDs langkah baru akan muncul di jendela konsol Eclipse IDE. Output yang benar serupa dengan berikut ini:

   ```
   [s-39BLQZRJB2E5E, s-1L6A4ZU2SAURC]
   ```