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

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 SCTConnectSource
— 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 menggunakanCreateFilter
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.
SaveReportPDF
Perintah menyimpan salinan laporan penilaian Anda sebagai file PDF. Perintah ini menggunakan empat parameter. file
Parameternya 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.
SaveReportCSV
Perintah menyimpan laporan penilaian Anda dalam file CSV. Perintah ini menggunakan empat parameter. directory
Parameternya 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
, SaveOnS3
ConfigureStateMachine
, dan ApplyToTarget
perintah.
Migrate
Perintah 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 adalahfalse
.
Contoh kode berikut mengonversi file dari Applications
folder di file Oozie sumber Anda.
Convert -treePath: 'ETL.APACHE_OOZIE.Applications' /
SaveOnS3
Mengunggah 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' /
ConfigureStateMachine
Perintah 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 menggunakanCreateFilter
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
' /
ApplyToTarget
Perintah 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