Mengonversi workflowas Oozie menjadi dengan AWS Step FunctionsAWS Schema Conversion Tool - AWS Schema Conversion Tool

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

Mengonversi workflowas Oozie menjadi dengan AWS Step FunctionsAWS Schema Conversion Tool

Untuk mengonversi alur kerja Apache Oozie, pastikan Anda menggunakan AWS SCT versi 1.0.671 atau yang lebih tinggi. Juga, biasakan diri Anda dengan antarmuka baris perintah (CLI) dari. AWS SCT Untuk informasi selengkapnya, lihat Referensi CLI untuk AWS Schema Conversion Tool.

Ikhtisar konversi

Kode sumber Apache Oozie Anda mencakup node tindakan, node aliran kontrol, dan properti pekerjaan. Action node menentukan pekerjaan, yang Anda jalankan dalam alur kerja Apache Oozie Anda. Ketika Anda menggunakan Apache Oozie untuk mengatur cluster Apache Hadoop Anda, maka node tindakan menyertakan pekerjaan Hadoop. Node aliran kontrol menyediakan mekanisme untuk mengontrol jalur alur kerja. Node aliran kontrol termasuk node sepertistart,end,decision,fork, danjoin.

AWS SCT mengonversi node aksi sumber Anda dan mengontrol node aliran menjadi AWS Step Functions. Di AWS Step Functions, Anda menentukan alur kerja Anda di Amazon States Language (ASL). AWS SCT menggunakan ASL untuk mendefinisikan mesin status Anda, yang merupakan kumpulan status, yang dapat berfungsi, menentukan status mana yang akan dialihkan ke berikutnya, berhenti dengan kesalahan, dan sebagainya. Selanjutnya, AWS SCT unggah file JSON dengan definisi mesin status. Kemudian, AWS SCT dapat menggunakan peran AWS Identity and Access Management (IAM) Anda untuk mengonfigurasi mesin status Anda. AWS Step Functions Untuk informasi lebih lanjut, lihat Apa itu AWS Step Functions? di Panduan AWS Step Functions Pengembang.

Juga, AWS SCT buat paket ekstensi dengan AWS Lambda fungsi yang meniru fungsi sumber yang AWS Step Functions tidak mendukung. Untuk informasi selengkapnya, lihat Menggunakan paket ekstensi dengan AWS Schema Conversion Tool.

AWS SCT memigrasikan properti pekerjaan sumber Anda ke AWS Systems Manager. Untuk menyimpan nama dan nilai parameter, AWS SCT gunakan Parameter Store, kemampuan AWS Systems Manager. Untuk informasi lebih lanjut, lihat Apa itu AWS Systems Manager? dalam AWS Systems Manager User Guide.

Anda dapat menggunakan AWS SCT untuk memperbarui nilai dan nama parameter Anda secara otomatis. Karena perbedaan arsitektur antara Apache Oozie dan AWS Step Functions, Anda mungkin perlu mengkonfigurasi parameter Anda. AWS SCT dapat menemukan nama parameter tertentu atau nilai dalam file sumber Anda dan menggantinya dengan nilai-nilai baru. Untuk informasi selengkapnya, lihat Langkah 3: Konfigurasikan parameter.

Gambar berikut menunjukkan diagram arsitektur konversi Apache Oozie ke. AWS Step Functions

Diagram arsitektur konversi Apache Oozie ke. AWS Step Functions

Untuk memulai konversi, buat dan jalankan skrip AWS SCT CLI Anda. Skrip ini mencakup set lengkap perintah untuk menjalankan konversi. Anda dapat mengunduh dan mengedit templat skrip konversi Apache Oozie. Untuk informasi selengkapnya, lihat Mendapatkan skenario CLI.

Pastikan skrip Anda menyertakan langkah-langkah berikut.

Langkah 1: Connect ke layanan sumber dan target

Untuk memulai konversi cluster Apache Oozie Anda, buat proyek baru. AWS SCT Selanjutnya, sambungkan ke layanan sumber dan target Anda. Pastikan Anda membuat dan menyediakan AWS sumber daya target sebelum memulai migrasi. Untuk informasi selengkapnya, lihat Prasyarat untuk menggunakan Apache Oozie sebagai sumber.

Pada langkah ini, Anda menggunakan perintah AWS SCT CLI berikut.

  • CreateProject— untuk membuat AWS SCT proyek baru.

  • AddSource— untuk menambahkan file Apache Oozie sumber Anda dalam proyek Anda. AWS SCT

  • ConnectSource— untuk terhubung ke Apache Oozie sebagai sumber.

  • AddTarget— untuk menambahkan AWS Step Functions sebagai target migrasi dalam proyek Anda.

  • ConnectTarget— untuk terhubung ke AWS Step Functions.

Untuk contoh menggunakan perintah AWS SCT CLI ini, lihat. Menghubungkan ke Apache Oozie

Ketika Anda menjalankan ConnectTarget perintah ConnectSource atau, AWS SCT mencoba untuk membuat koneksi ke layanan Anda. Jika upaya koneksi gagal, maka AWS SCT berhenti menjalankan perintah dari skrip CLI Anda dan menampilkan pesan kesalahan.

Langkah 2: Siapkan aturan pemetaan

Setelah Anda terhubung ke layanan sumber dan target, atur aturan pemetaan. Aturan pemetaan menentukan target migrasi untuk alur kerja dan parameter Apache Oozie sumber Anda. Untuk informasi selengkapnya tentang aturan pemetaan, lihatMemetakan tipe data di AWS Schema Conversion Tool.

Untuk menentukan sumber dan objek target untuk konversi, gunakan AddServerMapping perintah. Perintah ini menggunakan dua parameter: sourceTreePath dantargetTreePath. Nilai parameter ini mencakup jalur eksplisit ke objek sumber dan target Anda. Untuk Apache Oozie ke AWS Step Functions konversi, parameter ini harus dimulai dengan. ETL

Contoh kode berikut membuat aturan pemetaan untuk OOZIE dan AWS_STEP_FUNCTIONS objek. Anda menambahkan objek ini ke AWS SCT proyek Anda menggunakan AddSource dan AddTarget perintah di langkah sebelumnya.

AddServerMapping -sourceTreePath: 'ETL.APACHE_OOZIE' -targetTreePath: 'ETL.AWS_STEP_FUNCTIONS' /

Untuk informasi selengkapnya tentang AddServerMapping perintah, lihat AWS Schema Conversion Tool Referensi CLI.

Langkah 3: Konfigurasikan parameter

Jika alur kerja Apache Oozie sumber Anda menggunakan parameter, Anda mungkin perlu mengubah nilainya setelah konversi ke. AWS Step Functions Selain itu, Anda mungkin perlu menambahkan parameter baru untuk digunakan dengan parameter Anda AWS Step Functions.

Pada langkah ini, Anda menggunakan AddTargetParameter perintah AddParameterMapping dan.

Untuk mengganti nilai parameter dalam file sumber Anda, gunakan AddParameterMapping perintah. AWS SCT memindai file sumber Anda, menemukan parameter berdasarkan nama atau nilai, dan mengubah nilainya. Anda dapat menjalankan satu perintah untuk memindai semua file sumber Anda. Anda menentukan ruang lingkup file yang akan dipindai menggunakan salah satu dari tiga parameter pertama dari daftar berikut. Perintah ini menggunakan hingga enam parameter.

  • filterName— nama filter untuk objek sumber Anda. Anda dapat membuat filter menggunakan CreateFilter perintah.

  • treePath— jalur eksplisit ke objek sumber Anda.

  • namePath— jalur eksplisit ke objek sumber tertentu.

  • sourceParameterName— nama parameter sumber Anda.

  • sourceValue— nilai parameter sumber Anda.

  • targetValue— nilai parameter target Anda.

Contoh kode berikut menggantikan semua parameter di mana nilai sama c:\oozie\hive.py dengan s3://bucket-oozie/hive.py nilai.

AddParameterMapping -treePath: 'ETL.OOZIE.Applications' -sourceValue: 'c:\oozie\hive.py' -targetValue: 's3://bucket-oozie/hive.py' /

Contoh kode berikut menggantikan semua parameter di mana nama sama nameNode dengan hdfs://ip-111-222-33-44.eu-west-1.compute.internal:8020 nilai.

AddParameterMapping -treePath: 'ETL.OOZIE_SOURCE.Applications' -sourceParameter: 'nameNode' -targetValue: 'hdfs://ip-111-222-33-44.eu-west-1.compute.internal:8020' /

Contoh kode berikut menggantikan semua parameter di mana nama sama dengan nameNode dan nilainya sama hdfs://ip-55.eu-west-1.compute.internal:8020 dengan nilai dari targetValue parameter.

AddParameterMapping -treePath: 'ETL.OOZIE_SOURCE.Applications' -sourceParameter: 'nameNode' -sourceValue: 'hdfs://ip-55-66-77-88.eu-west-1.compute.internal:8020' -targetValue: 'hdfs://ip-111-222-33-44.eu-west-1.compute.internal:8020' /

Untuk menambahkan parameter baru dalam file target Anda selain parameter yang ada dari file sumber Anda, gunakan AddTargetParameter perintah. Perintah ini menggunakan set parameter yang sama dengan AddParameterMapping perintah.

Contoh kode berikut menambahkan parameter clusterId target bukan nameNode parameter.

AddTargetParameter -treePath: 'ETL.OOZIE_SOURCE.Applications' -sourceParameter: 'nameNode' -sourceValue: 'hdfs://ip-55-66-77-88.eu-west-1.compute.internal:8020' -targetParameter: 'clusterId' -targetValue: '1234567890abcdef0' /

Untuk informasi selengkapnya tentangAddServerMapping,AddParameterMapping,AddTargetParameter, dan CreateFilter perintah, lihat Referensi AWS Schema Conversion Tool CLI.

Langkah 4: Buat laporan penilaian

Sebelum Anda memulai konversi, kami sarankan untuk membuat laporan penilaian. Laporan ini merangkum semua tugas migrasi dan merinci item tindakan yang akan muncul selama migrasi. Untuk memastikan migrasi Anda tidak gagal, lihat laporan ini dan alamat item tindakan sebelum migrasi. Untuk informasi selengkapnya, lihat Laporan penilaian.

Pada langkah ini, Anda menggunakan CreateReport perintah. Perintah ini menggunakan dua parameter. Parameter pertama menjelaskan objek sumber yang AWS SCT membuat laporan penilaian. Untuk melakukannya, gunakan salah satu parameter berikut:filterName,treePath, ataunamePath. Parameter ini wajib. Juga, Anda dapat menambahkan parameter forceLoad Boolean opsional. Jika Anda mengatur parameter initrue, maka AWS SCT secara otomatis memuat semua objek anak untuk objek sumber yang Anda tentukan dalam CreateReport perintah.

Contoh kode berikut membuat laporan penilaian untuk Applications node file Oozie sumber Anda.

CreateReport -treePath: 'ETL.APACHE_OOZIE.Applications' /

Anda kemudian dapat menyimpan salinan laporan penilaian sebagai file PDF atau nilai dipisahkan koma (CSV). Untuk melakukannya, gunakan SaveReportCSV perintah SaveReportPDF or.

SaveReportPDFPerintah menyimpan salinan laporan penilaian Anda sebagai file PDF. Perintah ini menggunakan empat parameter. fileParameternya wajib, parameter lainnya bersifat opsional.

  • file— jalur ke file PDF dan namanya.

  • filter— nama filter yang Anda buat sebelumnya untuk menentukan ruang lingkup objek sumber Anda untuk bermigrasi.

  • treePath— jalur eksplisit ke objek database sumber Anda yang Anda simpan salinan laporan penilaian.

  • namePath— jalur yang hanya mencakup nama objek target Anda yang Anda simpan salinan laporan penilaian.

SaveReportCSVPerintah menyimpan laporan penilaian Anda dalam file CSV. Perintah ini menggunakan empat parameter. directoryParameternya wajib, parameter lainnya bersifat opsional.

  • directory— jalur ke folder tempat AWS SCT menyimpan file CSV.

  • filter— nama filter yang Anda buat sebelumnya untuk menentukan ruang lingkup objek sumber Anda untuk bermigrasi.

  • treePath— jalur eksplisit ke objek database sumber Anda yang Anda simpan salinan laporan penilaian.

  • namePath— jalur yang hanya mencakup nama objek target Anda yang Anda simpan salinan laporan penilaian.

Contoh kode berikut menyimpan salinan laporan penilaian dalam c:\sct\ar.pdf file.

SaveReportPDF -file:'c:\sct\ar.pdf' /

Contoh kode berikut menyimpan salinan laporan penilaian sebagai file CSV di c:\sct folder.

SaveReportCSV -file:'c:\sct' /

Untuk informasi selengkapnya tentangCreateReport, SaveReportPDF dan SaveReportCSV perintah, lihat AWS Schema Conversion Tool Referensi CLI.

Langkah 5: Konversikan alur kerja Apache Oozie Anda ke dengan AWS Step FunctionsAWS SCT

Setelah Anda mengonfigurasi AWS SCT proyek Anda, konversikan kode sumber Anda dan terapkan ke file AWS Cloud.

Pada langkah ini, Anda menggunakanConvert, SaveOnS3ConfigureStateMachine, dan ApplyToTarget perintah.

MigratePerintah memigrasikan objek sumber Anda ke cluster target. Perintah ini menggunakan empat parameter. Pastikan Anda menentukan treePath parameter filter atau. Parameter lainnya adalah opsional.

  • filter— nama filter yang Anda buat sebelumnya untuk menentukan ruang lingkup objek sumber Anda untuk bermigrasi.

  • namePath— jalur eksplisit ke objek sumber tertentu.

  • treePath— jalur eksplisit ke objek database sumber Anda yang Anda simpan salinan laporan penilaian.

  • forceLoad— ketika diatur ketrue, AWS SCT secara otomatis memuat pohon metadata database selama migrasi. Nilai default-nya adalah false.

Contoh kode berikut mengonversi file dari Applications folder di file Oozie sumber Anda.

Convert -treePath: 'ETL.APACHE_OOZIE.Applications' /

SaveOnS3Mengunggah definisi mesin status ke bucket Amazon S3 Anda. Perintah ini menggunakan treePath parameter. Untuk menjalankan perintah ini, gunakan folder target dengan definisi mesin status sebagai nilai parameter ini.

Berikut ini mengunggah State machine definitions folder objek AWS_STEP_FUNCTIONS target Anda ke bucket Amazon S3. AWS SCT menggunakan bucket Amazon S3 yang Anda simpan di profil AWS layanan di langkah tersebut. Prasyarat

SaveOnS3 -treePath: 'ETL.AWS_STEP_FUNCTIONS.State machine definitions' /

ConfigureStateMachinePerintah mengkonfigurasi mesin negara. Perintah ini menggunakan hingga enam parameter. Pastikan Anda menentukan cakupan target menggunakan salah satu dari tiga parameter pertama dari daftar berikut.

  • filterName— nama filter untuk objek target Anda. Anda dapat membuat filter menggunakan CreateFilter perintah.

  • treePath— jalur eksplisit ke objek target Anda.

  • namePath— jalur eksplisit ke objek target tertentu.

  • iamRole— Nama Sumber Daya Amazon (ARN) dari peran IAM yang menyediakan akses ke mesin langkah Anda. Parameter ini diperlukan.

Contoh kode berikut mengkonfigurasi mesin status yang didefinisikan dalam AWS_STEP_FUNCTIONS menggunakan peran role_name IAM.

ConfigureStateMachine -treePath: 'ETL.AWS_STEP_FUNCTIONS.State machine definitions' -role: 'arn:aws:iam::555555555555:role/role_name' /

ApplyToTargetPerintah tersebut menerapkan kode konversi Anda ke server target. Untuk menjalankan perintah ini, gunakan salah satu parameter berikut:filterName,treePath, atau namePath untuk menentukan objek target untuk diterapkan.

Contoh kode berikut menerapkan mesin app_wp status ke AWS Step Functions.

ApplyToTarget -treePath: 'ETL.AWS_STEP_FUNCTIONS.State machines.app_wp' /

Untuk memastikan bahwa kode yang dikonversi menghasilkan hasil yang sama dengan kode sumber Anda, Anda dapat menggunakan paket AWS SCT ekstensi. Ini adalah seperangkat AWS Lambda fungsi yang meniru fungsi Apache Oozie Anda yang AWS Step Functions tidak mendukung. Untuk menginstal paket ekstensi ini, Anda dapat menggunakan CreateLambdaExtPack perintah.

Perintah ini menggunakan hingga lima parameter. Pastikan Anda menggunakannya Oozie2SF untukextPackId. Dalam hal ini, AWS SCT membuat paket ekstensi untuk sumber fungsi Apache Oozie.

  • extPackId— pengenal unik untuk satu set fungsi Lambda. Parameter ini diperlukan.

  • tempDirectory— jalur di mana AWS SCT dapat menyimpan file sementara. Parameter ini diperlukan.

  • awsProfile— nama AWS profil Anda.

  • lambdaExecRoles— daftar Nama Sumber Daya Amazon (ARNs) dari peran eksekusi yang akan digunakan untuk fungsi Lambda.

  • createInvokeRoleFlag— bendera Boolean yang menunjukkan apakah akan membuat peran eksekusi untuk AWS Step Functions.

Untuk menginstal dan menggunakan paket ekstensi, pastikan Anda memberikan izin yang diperlukan. Untuk informasi selengkapnya, lihat Izin untuk menggunakan AWS Lambda fungsi dalam paket ekstensi.

Untuk informasi selengkapnya tentangConvert,SaveOnS3,ConfigureStateMachine,ApplyToTarget, dan CreateLambdaExtPack perintah, lihat Referensi AWS Schema Conversion Tool CLI.

Menjalankan skrip CLI Anda

Setelah Anda selesai mengedit skrip AWS SCT CLI Anda, simpan sebagai file dengan ekstensi. .scts Sekarang, Anda dapat menjalankan skrip Anda dari app folder jalur AWS SCT instalasi Anda. Untuk melakukannya, gunakan perintah berikut.

RunSCTBatch.cmd --pathtoscts "C:\script_path\oozie.scts"

Pada contoh sebelumnya, ganti script_path dengan path ke file Anda dengan skrip CLI. Untuk informasi selengkapnya tentang menjalankan skrip CLI di AWS SCT, lihat. Mode skrip

Apache Oozie node yang AWS SCT dapat dikonversi ke AWS Step Functions

Anda dapat menggunakan AWS SCT untuk mengonversi node aksi Apache Oozie dan mengontrol node aliran ke. AWS Step Functions

Node tindakan yang didukung meliputi yang berikut:

  • Tindakan sarang

  • Aksi Hive2

  • Aksi percikan

  • MapReduce Aksi streaming

  • Tindakan Java

  • DistCp aksi

  • Aksi babi

  • Tindakan Sqoop

  • Tindakan FS

  • Tindakan Shell

Node aliran kontrol yang didukung meliputi:

  • Mulai tindakan

  • Akhiri tindakan

  • Bunuh aksi

  • Tindakan keputusan

  • Tindakan garpu

  • Bergabunglah dengan aksi