ossimport adalah alat migrasi data yang memindahkan data ke Object Storage Service (OSS). Dalam mode standalone, modul Master, Worker, TaskTracker, dan Console dijalankan dalam satu paket JAR pada satu mesin. Mode ini mendukung sistem Linux maupun Windows.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Java 1.7 atau Java 1.8
Unduh dan konfigurasikan ossimport
Unduh dan ekstrak ossimport-2.3.7.zip. Setelah diekstrak, struktur direktorinya sebagai berikut:
ossimport ├── bin │ └── ossimport2.jar # Paket JAR yang berisi modul Master, Worker, TaskTracker, dan Console ├── conf │ ├── local_job.cfg # File konfigurasi job migrasi │ └── sys.properties # File konfigurasi parameter sistem ├── console.bat # Tool command line Windows untuk menjalankan tugas ├── console.sh # Tool command line Linux untuk menjalankan tugas ├── import.bat # Skrip impor sekali klik Windows (start, migrasi, verifikasi, dan retry) ├── import.sh # Skrip impor sekali klik Linux (start, migrasi, verifikasi, dan retry) ├── logs # Direktori log └── README.md # File deskripsi ossimportEdit
conf/sys.propertiesdanconf/local_job.cfgsesuai kebutuhan migrasi Anda. Jangan ubah item berikut: Untuk contoh konfigurasi, lihat Contoh file konfigurasi.Penting: Periksa semua parameter dalamsys.propertiesdanlocal_job.cfgsebelum mengirimkan job migrasi. Parameter tidak dapat diubah setelah job dikirim.Parameter
workingDir,workerUserName,workerPassword, danprivateKeyFiledalamconf/sys.propertiesNama dan path file
conf/local_job.cfgParameter
jobNamedalamconf/local_job.cfg
Jalankan job migrasi
ossimport mendukung dua metode untuk menjalankan job migrasi:
Impor sekali klik – Menjalankan seluruh langkah migrasi melalui satu skrip. Cocok untuk pengguna baru.
Impor langkah demi langkah – Menjalankan setiap langkah migrasi secara terpisah melalui perintah Console.
Impor sekali klik
Jalankan skrip impor.Catatan: Jika job migrasi sebelumnya belum selesai, ossimport akan menanyakan apakah ingin melanjutkan dari checkpoint yang tersimpan atau me-restart sinkronisasi data. Lakukan restart sinkronisasi data jika Anda ingin menjalankan job migrasi yang berbeda atau jika Anda mengubah sumber atau tujuan migrasi.
Windows: Klik ganda
import.bat.Linux: Jalankan
bash import.sh.
Pantau progres job.
Windows: Jendela Command Prompt baru terbuka untuk menjalankan job dan menampilkan log. Jendela Command Prompt ossimport menampilkan status job setiap 10 detik. Jangan tutup jendela Command Prompt mana pun selama job sedang berjalan.
Linux: Job berjalan di latar belakang.
Tangani tugas yang gagal. Setelah job selesai dijalankan, jika suatu tugas gagal, ossimport akan menanyakan apakah ingin mencoba ulang. Masukkan
yuntuk mencoba ulang ataununtuk melewati tugas tersebut dan keluar.Investigasi kegagalan. Jika job gagal, periksa file
master/jobs/local_test/failed_tasks/<taskid>/audit.loguntuk mengidentifikasi penyebabnya.
Impor langkah demi langkah
Tabel berikut mencantumkan perintah Console untuk impor langkah demi langkah:
| Langkah | Perintah | Windows | Linux |
|---|---|---|---|
| 1. Hapus job yang ada | clean | console.bat clean | bash console.sh clean |
| 2. Kirim job migrasi | submit | console.bat submit | bash console.sh submit |
| 3. Mulai layanan | start | console.bat start | bash console.sh start |
| 4. Lihat status job | stat | console.bat stat | bash console.sh stat |
| 5. Coba ulang tugas yang gagal | retry | console.bat retry | bash console.sh retry |
| 6. Hentikan layanan | stop | Tutup jendela %JAVA_HOME%/bin/java.exe | bash console.sh stop |
Langkah 1: Hapus job yang ada
Jalankan perintah clean hanya ketika menjalankan job migrasi dengan nama yang sama seperti job yang sudah ada. Jangan jalankan clean untuk job migrasi baru atau saat mencoba ulang tugas yang gagal.
Langkah 2: Kirim job migrasi
File konfigurasi untuk job tersebut adalah conf/local_job.cfg. Nama job default adalah local_test. Pastikan nama job migrasi bersifat unik sebelum mengirimkan.
Langkah 3: Mulai layanan
Mulai layanan ossimport untuk memproses job yang telah dikirim.
Langkah 4: Lihat status job
Periksa status terkini dari job migrasi.
Langkah 5: Coba ulang tugas yang gagal
Tugas dapat gagal karena berbagai alasan, seperti masalah jaringan. Perintah retry hanya mencoba ulang tugas yang gagal.
Langkah 6: Hentikan layanan
Windows: Tutup jendela
%JAVA_HOME%/bin/java.exe.Linux: Jalankan
bash console.sh stop.
Lihat status job dan log
Setelah job migrasi dikirim, Master membagi job menjadi tugas-tugas, Worker menjalankan tugas-tugas tersebut, dan TaskTracker mengumpulkan status tugas. Struktur direktori berikut menunjukkan file utama yang dihasilkan setelah job selesai:
ossimport
├── bin
│ └── ossimport2.jar # Paket JAR untuk mode standalone
├── conf
│ ├── local_job.cfg # File konfigurasi job migrasi
│ └── sys.properties # File konfigurasi parameter sistem
├── console.sh # Tool command line
├── import.sh # Skrip impor sekali klik
├── logs
│ ├── import.log # Log migrasi
│ ├── job_stat.log # Log status job
│ ├── ossimport2.log # Log eksekusi ossimport untuk mode standalone
│ └── submit.log # Log pengiriman job
├── master
│ ├── jobqueue # Job yang belum dibagi menjadi tugas
│ └── jobs
│ └── local_test # Nama job
│ ├── checkpoints # Checkpoint dari proses pembagian job oleh Master menjadi tugas
│ │ └── 0
│ │ └── 034DC9DD2860B0CFE884242BC6FF92E7.cpt
│ ├── dispatched # Tugas yang telah dikirim ke Worker tetapi belum selesai
│ │ └── localhost
│ ├── failed_tasks # Tugas yang gagal
│ ├── pending_tasks # Tugas yang belum dikirim
│ └── succeed_tasks # Tugas yang berhasil diselesaikan
│ └── A41506C07BF1DF2A3EDB4CE31756B93F_1499744514501@localhost
│ ├── audit.log # Log eksekusi tugas (digunakan untuk diagnosis error)
│ ├── DONE # File penanda bahwa tugas telah selesai
│ ├── error.list # Daftar error tugas
│ ├── STATUS # Status tugas: Failed atau Completed
│ └── TASK # Deskripsi tugas
└── worker # Tugas yang sedang berjalan (dikelola oleh Master setelah selesai)
└── jobs
└── local_test
└── tasksUntuk melihat informasi job, periksa
logs/ossimport2.logataulogs/import.log.Untuk memecahkan masalah tugas yang gagal, periksa
master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log.Untuk melihat error pada tugas yang gagal, periksa
master/jobs/${JobName}/failed_tasks/${TaskName}/error.list.Log ini hanya untuk referensi. Jangan menerapkan layanan dan aplikasi Anda berdasarkan log ini.
Verifikasi hasil migrasi
ossimport tidak melakukan verifikasi data setelah migrasi dan tidak menjamin konsistensi atau integritas data. Setelah job migrasi selesai, verifikasi konsistensi data antara sumber dan tujuan migrasi.
Jika Anda menghapus data sumber tanpa memverifikasi konsistensi data antara sumber dan tujuan migrasi, Anda bertanggung jawab atas segala kerugian dan konsekuensi yang timbul.
Pemecahan Masalah
Tabel berikut mencantumkan penyebab umum kegagalan migrasi:
| Skenario kegagalan | Penyebab | Detail |
|---|---|---|
SIZE_NOT_MATCH dalam log/audit.log | Data sumber dimodifikasi selama migrasi | Data asli telah diunggah, tetapi modifikasinya tidak diunggah ke OSS. |
| Job migrasi gagal | Data sumber dihapus selama migrasi | Job migrasi tidak dapat dilanjutkan tanpa data sumber. |
| Migrasi ke OSS gagal | Nama file sumber melanggar aturan penamaan OSS | Nama objek di OSS tidak boleh diawali dengan garis miring (/) dan tidak boleh kosong. |
| Data sumber gagal diunduh | Masalah jaringan atau izin yang tidak mencukupi | Periksa logs/ossimport2.log atau logs/import.log untuk detailnya. |
Status job menunjukkan Abort | ossimport keluar secara tak terduga selama migrasi | Hubungi dukungan teknis. |