Spark spesifik aplikasi dengan versi AMI sebelumnya dari Amazon EMR - Amazon EMR

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

Spark spesifik aplikasi dengan versi AMI sebelumnya dari Amazon EMR

Gunakan Spark secara interaktif atau dalam mode batch

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

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.

  2. Pilih Buat kluster.

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

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

  5. Menambahkan argumen untuk mengubah konfigurasi Spark seperti yang diinginkan. Untuk informasi selengkapnya, lihat Konfigurasi Spark. Pilih Tambahkan.

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

Anda mengonfigurasi Spark saat membuat cluster dengan menjalankan aksi bootstrap yang terletak di awslabs/ emr-bootstrap-actions /spark repository di Github. Untuk argumen bahwa tindakan bootstrap menerima, lihat README 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.

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.

Mengubah pengaturan default Spark

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

catatan

Karakter lanjutan baris Linux (\) 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

Untuk mengirimkan pekerjaan ke sebuah cluster, gunakan langkah untuk menjalankan spark-submit pada cluster EMR Anda. Tambahkan langkah menggunakan addJobFlowSteps metode di AmazonElasticMapReduceClient:

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

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 topik dalam dokumentasi Apache Spark.