Topik ini menjelaskan cara menerapkan ossimport dalam mode terdistribusi. Anda hanya dapat menerapkan ossimport dalam mode terdistribusi di Linux.
Prasyarat
Sebuah kluster yang terdiri dari setidaknya dua mesin telah diterapkan. Satu mesin digunakan sebagai master dan yang lainnya sebagai pekerja.
Koneksi melalui SSH telah dibuat antara master dan pekerja.
Semua pekerja menggunakan nama pengguna dan kata sandi yang sama.
CatatanPastikan koneksi melalui SSH telah dibuat antara master dan pekerja, atau konfigurasikan kredensial login pekerja dalam file sys.properties.
Unduh dan instal ossimport
Unduh paket instalasi ossimport.
Unduh ossimport-2.3.7.tar.gz ke mesin Anda.
Instal ossimport.
CatatanSemua operasi selanjutnya dilakukan pada master.
Masuk ke master dan jalankan perintah berikut untuk membuat direktori ossimport:
mkdir -p $HOME/ossimportPergi ke direktori paket dan jalankan perintah berikut untuk mengekstrak paket ke direktori yang ditentukan:
tar -zxvf ossimport-2.3.7.tar.gz -C $HOME/ossimportBerikut adalah struktur direktori setelah Anda mengekstrak paket:
ossimport ├── bin │ ├── console.jar # Paket JAR untuk modul Console. │ ├── master.jar # Paket JAR untuk modul Master. │ ├── tracker.jar # Paket JAR untuk modul Tracker. │ └── worker.jar # Paket JAR untuk modul Worker. ├── conf │ ├── job.cfg # Template file konfigurasi pekerjaan. │ ├── sys.properties # File konfigurasi yang berisi parameter sistem. │ └── worker.jar # File konfigurasi pekerja. ├── console.sh # Alat baris perintah. Hanya mendukung Linux. ├── logs # Direktori yang menyimpan log. └── README.md # File yang memberikan deskripsi tentang ossimport. Kami sarankan Anda membaca file ini sebelum menggunakan ossimport.OSS_IMPORT_HOME: Direktori root ossimport. Secara default, direktori root adalah
$HOME/ossimportdalam perintah ekstraksi. Anda dapat menentukan direktori root dengan menggunakan perintahexport OSS_IMPORT_HOME=<dir>atau dengan memodifikasi item konfigurasi$HOME/.bashrcdalam file konfigurasi sistem. Kami sarankan Anda menggunakan direktori root default.OSS_IMPORT_WORK_DIR: Direktori kerja ossimport. Anda dapat menentukan direktori kerja dengan mengonfigurasi parameter
workingDirdalam fileconf/sys.properties. Kami sarankan Anda menggunakan$HOME/ossimport/workdirsebagai direktori kerja.Tentukan jalur absolut untuk OSS_IMPORT_HOME atau OSS_IMPORT_WORK_DIR, seperti
/home/<user>/ossimportatau/home/<user>/ossimport/workdir.
Modifikasi file konfigurasi
Sebelum menggunakan ossimport yang diterapkan dalam mode terdistribusi, modifikasi file konfigurasi berikut sesuai dengan kebutuhan bisnis Anda: conf/sys.properties, conf/job.cfg, dan conf/workers.
conf/job.cfg: Template file konfigurasi yang digunakan untuk mengonfigurasi pekerjaan dalam mode terdistribusi. Modifikasi parameter berdasarkan kebutuhan bisnis Anda.conf/sys.properties: File konfigurasi yang berisi parameter sistem, seperti direktori kerja dan parameter terkait pekerja.conf/workers: File konfigurasi pekerja.
Sebelum mengirimkan pekerjaan migrasi, periksa parameter dalam file
sys.propertiesdanjob.cfg. Parameter pekerjaan migrasi tidak dapat dimodifikasi setelah pekerjaan dikirimkan.Konfigurasikan dan periksa file
workerssebelum memulai layanan. Anda tidak dapat menambahkan atau menghapus pekerja setelah layanan dimulai.
Jalankan dan kelola pekerjaan migrasi
Jalankan Pekerjaan Migrasi
Jika Anda menggunakan ossimport yang diterapkan dalam mode terdistribusi untuk menjalankan pekerjaan migrasi, Anda perlu melakukan langkah-langkah berikut:
Terapkan layanan. Jalankan perintah bash console.sh deploy di Linux. Perintah ini menerapkan ossimport ke semua mesin yang ditentukan dalam file konfigurasi conf/workers.
CatatanPastikan file konfigurasi conf/job.cfg dan conf/workers telah dikonfigurasi dengan benar sebelum menerapkan layanan.
Hapus pekerjaan yang ada dengan nama yang sama. Jika Anda ingin menjalankan pekerjaan migrasi dengan nama yang sama dengan pekerjaan yang ada, hapus pekerjaan yang ada terlebih dahulu. Jika Anda ingin menjalankan pekerjaan migrasi baru atau mencoba ulang tugas gagal dari pekerjaan migrasi, jangan jalankan perintah clear. Untuk menghapus pekerjaan yang ada, jalankan perintah
di Linux.Kirimkan pekerjaan migrasi. Pastikan nama pekerjaan migrasi Anda unik.
File konfigurasi diperlukan untuk mengirimkan pekerjaan migrasi. Anda dapat membuat file konfigurasi pekerjaan berdasarkan file templateconf/job.cfg. Untuk mengirimkan pekerjaan migrasi, jalankan perintahbash console.sh submit [job_cfg_file]di Linux. Dalam perintah tersebut, parameterjob_cfg_filebersifat opsional dan secara default diatur ke$OSS_IMPORT_HOME/conf/job.cfg, di mana$OSS_IMPORT_HOMEmenentukan direktori yang berisi fileconsole.sh.Mulai layanan. Jalankan perintah
bash console.sh startdi Linux.Lihat status pekerjaan. Jalankan perintah
bash console.sh statdi Linux.Coba ulang tugas yang gagal. Tugas dapat gagal karena alasan seperti masalah jaringan. Saat menjalankan perintah coba ulang, hanya tugas yang gagal yang akan diulang. Untuk mencoba ulang tugas gagal, jalankan perintah
bash console.sh retry [job_name]di Linux. Pada perintah tersebut, parameterjob_namebersifat opsional dan digunakan untuk menentukan pekerjaan dengan tugas gagal yang ingin dicoba ulang. Jika parameter ini tidak ditentukan, tugas gagal dari semua pekerjaan akan diulang.Hentikan layanan. Jalankan perintah
bash console.sh stopdi Linux.
Catatan:
Jika parameter yang ditentukan tidak valid saat Anda menjalankan perintah
bash console.sh, format perintah yang valid akan ditampilkan.Kami sarankan Anda menentukan jalur absolut dalam file konfigurasi dan pekerjaan migrasi yang dikirimkan.
File
job.cfgberisi item konfigurasi pekerjaan.PentingAnda tidak dapat memodifikasi item konfigurasi pekerjaan migrasi dalam file setelah pekerjaan dikirimkan.
Penyebab Umum Kegagalan Pekerjaan
Jika data sumber dimodifikasi selama migrasi, kesalahan
SIZE_NOT_MATCHdicatat dalam filelog/audit.log. Kesalahan ini menunjukkan bahwa data asli telah diunggah, tetapi modifikasi tidak diunggah ke Object Storage Service (OSS).Jika data sumber dihapus selama migrasi, pekerjaan migrasi gagal.
Jika file sumber tidak sesuai dengan aturan penamaan objek OSS, migrasi ke OSS gagal. Nama objek di OSS tidak boleh dimulai dengan garis miring (/) dan tidak boleh kosong.
File sumber gagal diunduh.
Jika ossimport keluar secara tak terduga saat Anda menjalankan pekerjaan migrasi, status pekerjaan adalah Abort. Dalam hal ini, hubungi dukungan teknis.
Lihat Status Pekerjaan dan Log
Setelah pekerjaan migrasi dikirimkan, master membagi pekerjaan menjadi tugas, pekerja menjalankan tugas, dan pelacak mengumpulkan status tugas. Berikut adalah struktur direktori workdir setelah pekerjaan selesai:
workdir ├── bin │ ├── console.jar # Paket JAR untuk modul Console. │ ├── master.jar # Paket JAR untuk modul Master. │ ├── tracker.jar # Paket JAR untuk modul Tracker. │ └── worker.jar # Paket JAR untuk modul Worker. ├── conf │ ├── job.cfg # Template file konfigurasi pekerjaan. │ ├── sys.properties # File konfigurasi yang berisi parameter sistem. │ └── worker.jar # File konfigurasi pekerja. ├── logs │ ├── import.log # Log migrasi. │ ├── master.log # Log modul Master. │ ├── tracker.log # Log modul Tracker. │ └── worker.log # Log modul Worker. ├── master │ ├── jobqueue # Pekerjaan yang belum dibagi. │ └── jobs # Informasi tentang pekerjaan. │ └── xxtooss # Nama pekerjaan. │ ├── checkpoints # Titik pemeriksaan yang dihasilkan saat master membagi pekerjaan menjadi tugas. │ │ └── 0 │ │ └── ED09636A6EA24A292460866AFDD7A89A.cpt │ │── dispatched # Tugas yang dikirimkan ke pekerja tetapi belum selesai. │ │ └── 192.168.1.6 │ │── failed_tasks # Tugas gagal. │ │ └── A41506C07BF1DF2A3EDB4CE31756B93F_1499348973217@192.168.1.6 │ │ ├── audit.log # Log tugas. Anda dapat melihat log untuk mengidentifikasi penyebab kesalahan. │ │ ├── DONE # File penanda yang menunjukkan penyelesaian tugas. Jika tugas gagal, kontennya kosong. │ │ ├── error.list # Kesalahan tugas. Anda dapat melihat kesalahan dalam file. │ │ ├── STATUS # File penanda yang menunjukkan status tugas. Konten file ini adalah Gagal atau Selesai. │ │ └── TASK # Deskripsi tugas. │ ├── pending_tasks # Tugas yang belum dikirimkan. │ └── succeed_tasks # Tugas yang berhasil dijalankan. │ └── A41506C07BF1DF2A3EDB4CE31756B93F_1499668462358@192.168.1.6 │ ├── audit.log # Log tugas. Anda dapat melihat log untuk mengidentifikasi penyebab kesalahan. │ ├── DONE # File penanda yang menunjukkan penyelesaian tugas. │ ├── error.list # Kesalahan tugas. Jika tugas berhasil, kontennya kosong. │ ├── STATUS # File penanda yang menunjukkan status tugas. Konten file ini adalah Gagal atau Selesai. │ └── TASK # Deskripsi tugas. └── worker # Tugas yang sedang dijalankan oleh pekerja. Setelah tugas dijalankan, mereka dikelola oleh master. └── jobs ├── local_test2 │ └── tasks └── local_test_4 └── tasksPentingUntuk melihat informasi tentang pekerjaan, periksa file
logs/import.log.Untuk memecahkan masalah tugas gagal, periksa file
master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log.Untuk melihat kesalahan tugas gagal, periksa file
master/jobs/${JobName}/failed_tasks/${TaskName}/error.list.Log sebelumnya hanya untuk referensi. Jangan menerapkan layanan dan aplikasi Anda berdasarkan log ini.
Verifikasi hasil migrasi
ossimport tidak memverifikasi data setelah migrasi dan oleh karena itu tidak menjamin konsistensi atau integritas data. Setelah pekerjaan migrasi selesai, pastikan untuk memverifikasi 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.
Kesalahan umum dan pemecahan masalah
Untuk informasi lebih lanjut tentang kesalahan umum dan pemecahan masalah, lihat FAQ.