EmrActivity - AWS Data Pipeline

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

EmrActivity

Menjalankan klaster EMR.

AWS Data Pipeline menggunakan format yang berbeda untuk langkah-langkah dari Amazon EMR, misalnya, AWS Data Pipeline menggunakan argumen yang dipisahkan dengan koma setelah nama JAR di bidang langkah EmrActivity. Contoh berikut menunjukkan langkah yang diformat untuk Amazon EMR, diikuti oleh AWS Data Pipeline nya yang setara:

s3://example-bucket/MyWork.jar arg1 arg2 arg3
"s3://example-bucket/MyWork.jar,arg1,arg2,arg3"

Contoh

Berikut adalah contoh dari jenis objek ini. Contoh ini menggunakan versi lama Amazon EMR. Verifikasi contoh ini untuk kebenaran dengan versi klaster Amazon EMR yang Anda gunakan.

Objek ini mereferensikan tiga objek lain yang akan Anda tetapkan dalam file definisi alur yang sama. MyEmrCluster adalah objek EmrCluster dan MyS3Input dan MyS3Output adalah objek S3DataNode.

catatan

Dalam contoh ini, Anda dapat mengganti bidang step dengan rangkaian klaster yang Anda inginkan, yang bisa saja script Pig, klaster Hadoop streaming, JAR kustom Anda sendiri termasuk parameternya, atau sebagainya.

Hadoop 2.x (AMI 3.x)

{ "id" : "MyEmrActivity", "type" : "EmrActivity", "runsOn" : { "ref" : "MyEmrCluster" }, "preStepCommand" : "scp remoteFiles localFiles", "step" : ["s3://mybucket/myPath/myStep.jar,firstArg,secondArg,-files,s3://mybucket/myPath/myFile.py,-input,s3://myinputbucket/path,-output,s3://myoutputbucket/path,-mapper,myFile.py,-reducer,reducerName","s3://mybucket/myPath/myotherStep.jar,..."], "postStepCommand" : "scp localFiles remoteFiles", "input" : { "ref" : "MyS3Input" }, "output" : { "ref" : "MyS3Output" } }
catatan

Untuk melewati argumen untuk aplikasi dalam langkah, Anda perlu menentukan Wilayah di jalur script, seperti dalam contoh berikut. Selain itu, Anda mungkin perlu melarikan diri dari argumen yang Anda lewati. Misalnya, jika Anda menggunakan script-runner.jar untuk menjalankan script dan ingin melewatkan argumen ke script, Anda harus melarikan diri koma yang memisahkan mereka. Slot langkah berikut menggambarkan cara melakukannya:

"step" : "s3://eu-west-1.elasticmapreduce/libs/script-runner/script-runner.jar,s3://datapipeline/echo.sh,a\\\\,b\\\\,c"

Langkah ini menggunakan script-runner.jar untuk menjalankan shell script echo.sh dan melewati a, b, dan c sebagai argumen tunggal untuk script. Karakter escape pertama dihapus dari argumen yang dihasilkan sehingga Anda mungkin perlu untuk melarikan diri lagi. Misalnya, jika Anda memiliki File\.gz sebagai sebuah argumen di JSON, anda bisa meloloskan diri menggunakan File\\\\.gz. Namun, karena escape pertama dibuang, Anda harus menggunakan File\\\\\\\\.gz .

Sintaksis

Bidang Invokasi Objek Deskripsi Jenis Slot
jadwal Objek ini dipanggil dalam pelaksanaan interval jadwal. Tentukan referensi jadwal ke objek lain untuk mengatur urutan eksekusi dependensi untuk objek ini. Anda dapat memenuhi persyaratan ini dengan secara eksplisit mengatur jadwal pada objek, misalnya, dengan menentukan "schedule": {"ref": "DefaultSchedule"}. Dalam kebanyakan kasus, lebih baik untuk menempatkan referensi jadwal pada objek alur default sehingga semua objek mewarisi jadwal itu. Atau, jika alur memiliki pohon jadwal (jadwal dalam jadwal utama), Anda dapat membuat objek induk yang memiliki referensi jadwal. Untuk informasi selengkapnya tentang konfigurasi jadwal opsional contoh, lihat https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html Objek Referensi, misalnya, “jadwal”: {"ref”:”myScheduleId“}

Grup yang diperlukan (Salah satu dari berikut ini diperlukan) Deskripsi Jenis Slot
runsOn Klaster Amazon EMR di mana tugas ini akan berjalan. Objek Referensi, misalnya, “RunsOn”: {"ref”:”myEmrClusterId "}
workerGroup Kelompok pekerja. Ini digunakan untuk tugas perutean. Jika Anda memberikan nilai runsOn dan workerGroup ada, workerGroup akan diabaikan. String

Bidang Opsional Deskripsi Jenis Slot
attemptStatus Baru-baru ini melaporkan status dari aktivitas jarak jauh. String
attemptTimeout Timeout untuk penyelesaian pekerjaan jarak jauh. Jika disetel, maka aktivitas jarak jauh yang tidak lengkap dalam waktu mulai yang ditetapkan mungkin dicoba lagi. Periode
dependsOn Tentukan dependensi pada objek yang bisa dijalankan lainnya. Objek Referensi, misalnya, “Dependson”: {"ref”:”myActivityId“}
failureAndRerunModus Menjelaskan perilaku simpul konsumen ketika dependensi gagal atau menjalankan kembali. Pencacahan
input Lokasi data input. Objek Referensi, misalnya, “input”: {"ref”:”myDataNodeId "}
lateAfterTimeout Waktu berlalu setelah alur mulai di mana objek harus menyelesaikan. Hal ini dipicu hanya ketika jenis jadwal tidak disetel ke ondemand. Periode
maxActiveInstances Jumlah maksimum instans aktif bersamaan dari suatu komponen. Re-runs tidak dihitung terhadap jumlah instans aktif. Bulat
maximumRetries Jumlah maksimum upaya mencoba ulang pada kegagalan. Bulat
onFail Tindakan untuk dijalankan ketika objek saat ini gagal. Objek Referensi, misalnya, “onFail”: {"ref”:”myActionId“}
onLateAction Tindakan yang harus dipicu jika objek belum dijadwalkan atau masih belum selesai. Objek Referensi, misalnya,”onLateAction“: {" ref”:”myActionId“}
onSuccess Tindakan untuk dijalankan ketika objek saat ini berhasil. Objek Referensi, misalnya, “onSuccess”: {"ref”:”myActionId“}
output Lokasi data output. Objek Referensi, misalnya, “output”: {"ref”:”myDataNodeId "}
induk Induk dari objek saat ini dari mana slot akan diwariskan. Objek Referensi, misalnya, “parent”: {"ref”:”myBaseObjectId "}
pipelineLogUri URI Amazon S3, seperti 's3://BucketName/Awalan/ 'untuk mengunggah log untuk pipa. String
postStepCommand Shell script untuk dijalankan setelah semua langkah selesai. Untuk menentukan beberapa script, hingga 255, menambahkan beberapa bidang postStepCommand. String
prasyarat Mendefinisikan prasyarat secara opsional. Sebuah simpul data tidak ditandai "READY" sampai semua prasyarat telah terpenuhi. Objek Referensi, misalnya, “prasyarat”: {"ref”:”myPreconditionId“}
preStepCommand Shell script untuk dijalankan sebelum langkah-langkah dijalankan. Untuk menentukan beberapa script, hingga 255, menambahkan beberapa bidang preStepCommand. String
reportProgressTimeout Timeout untuk panggilan kerja jarak jauh berturut-turut ke reportProgress. Jika disetel, maka kegiatan jarak jauh yang tidak melaporkan kemajuan untuk jangka waktu tertentu dapat dianggap terhenti dan jadi dicoba lagi. Periode
resizeClusterBeforeMenjalankan

Mengubah ukuran klaster sebelum melakukan aktivitas ini untuk mengakomodasi tabel DynamoDB ditentukan sebagai input atau output.

catatan

Jika EmrActivity menggunakan DynamoDBDataNode baik sebagai input atau output simpul data, dan jika Anda menyetel resizeClusterBeforeRunning ke TRUE, AWS Data Pipeline mulai menggunakan tipe instans m3.xlarge. Ini akan menimpa pilihan tipe instans Anda dengan m3.xlarge, yang dapat menambah biaya bulanan Anda.

Boolean
resizeClusterMaxContoh Batas pada jumlah maksimum instans yang dapat diminta oleh algoritme resize. Bulat
retryDelay Durasi timeout antara dua upaya coba lagi. Periode
scheduleType Jenis jadwal mengizinkan Anda untuk menentukan apakah objek dalam definisi alur Anda harus dijadwalkan pada awal interval, atau akhir interval. Nilai adalah: cron, ondemand, dan timeseries. Penjadwalan timeseries berarti bahwa instans dijadwalkan pada akhir setiap interval. Penjadwalan cron berarti bahwa instans dijadwalkan pada awal setiap interval. Jadwal ondemand mengizinkan Anda untuk menjalankan alur satu kali per aktivasi. Anda tidak perlu meng-klon atau membuat ulang alur untuk menjalankannya lagi. Jika Anda menggunakan jadwal ondemand itu harus ditentukan dalam objek default dan harus menjadi satu-satunya scheduleType yang ditentukan untuk objek dalam alur. Untuk menggunakan alur ondemand, panggil operasi ActivatePipeline untuk setiap putaran berikutnya. Pencacahan
langkah Satu atau lebih langkah untuk klaster untuk menjalankan. Untuk menentukan beberapa langkah, hingga 255, menambahkan beberapa bidang langkah. Gunakan argumen yang dipisahkan dengan koma setelah nama JAR; misalnya, "s3://example-bucket/MyWork.jar,arg1,arg2,arg3". String

Bidang Runtime Deskripsi Jenis Slot
@activeInstances Daftar objek instans aktif terjadwal saat ini. Objek Referensi, misalnya “ActiveInstances”: {"ref”:”myRunnableObjectId "}
@actualEndTime Waktu ketika eksekusi objek ini selesai. DateTime
@actualStartTime Waktu ketika eksekusi objek ini dimulai. DateTime
cancellationReason cancellationReason jika objek ini dibatalkan. String
@cascadeFailedOn Deskripsi rantai dependensi tempat objek gagal. Objek Referensi, misalnya,”cascadeFailedOn“: {" ref”:”myRunnableObjectId "}
emrStepLog Log langkah Amazon EMR tersedia hanya pada upaya aktivitas EMR String
errorId errorId jika objek ini gagal. String
errorMessage errorMessage jika objek ini gagal. String
errorStackTrace Jejak tumpukan kesalahan jika objek ini gagal. String
@finishedTime Waktu saat objek ini menyelesaikan eksekusinya. DateTime
hadoopJobLog log tugas Hadoop tersedia pada upaya untuk kegiatan berbasis EMR. String
@healthStatus Status kondisi objek yang mencerminkan keberhasilan atau kegagalan instans objek terakhir yang mencapai keadaan dihentikan. String
@healthStatusFromInstanceId Id dari objek instans terakhir yang mencapai keadaan dihentikan. String
@healthStatusUpdatedWaktu Waktu di mana status kondisi diperbarui terakhir kali. DateTime
hostname Nama host klien yang mengambil upaya tugas. String
@lastDeactivatedTime Waktu di mana objek ini terakhir dinonaktifkan. DateTime
@latestCompletedRunWaktu Waktu proses terakhir yang eksekusinya selesai. DateTime
@latestRunTime Waktu proses terakhir untuk eksekusi yang dijadwalkan. DateTime
@nextRunTime Waktu run yang akan dijadwalkan berikutnya. DateTime
reportProgressTime Waktu terbaru bahwa aktivitas jarak jauh melaporkan kemajuan. DateTime
@scheduledEndTime Jadwalkan akhir waktu untuk objek. DateTime
@scheduledStartTime Jadwalkan waktu mulai untuk objek. DateTime
@status Status objek ini. String
@version Versi alur tempat objek dibuat. String
@waitingOn Deskripsi daftar dependensi objek ini sedang menunggu. Objek Referensi, misalnya, “WaitingOn”: {"ref”:”myRunnableObjectId "}

Bidang Sistem Deskripsi Jenis Slot
@error Galat menggambarkan objek yang tidak terbentuk. String
@pipelineId ID dari alur tempat objek ini berada. String
@sphere Lingkup objek menunjukkan tempatnya dalam siklus hidup: Component Objects memunculkan Instance Objects yang mengeksekusi Attempt Objects. String

Lihat Juga