Saya ingin memulai cluster Apache Spark setelah boot menggunakan perintah berikut:
sudo ./path/to/spark/sbin/start-all.sh
Kemudian jalankan perintah ini ketika sistem bersiap untuk reboot / shutdown:
sudo ./path/to/spark/sbin/stop-all.sh
Bagaimana saya bisa memulai? Apakah ada templat dasar yang bisa saya buat?
Saya sudah mencoba menggunakan yang sangat sederhana (file /lib/systemd/system/spark.service
:):
[Unit]
Description=Spark service
[Service]
ExecStart=sudo ./path/to/spark/sbin/start-all.sh
Yang tidak berhasil.
exec
denganExecStart=
. Plus, saya belum pernah menggunakan pemula baru..
...Jawaban:
.service
File Anda akan terlihat seperti ini:Sekarang lakukan beberapa langkah lagi untuk mengaktifkan dan menggunakan
.service
file:Tempatkan di
/lib/systemd/system
folder dengan ucapkan namamyfirst.service
Jadikan skrip Anda dapat dieksekusi dengan:
Mulai itu:
Aktifkan untuk dijalankan saat boot:
Hentikan:
Catatan:
Anda tidak perlu meluncurkan Spark dengan sudo di layanan Anda, karena pengguna layanan default sudah root.
Lihat tautan di bawah ini untuk
systemd
opsi lebih lanjut .MEMPERBARUI
Sekarang apa yang kita miliki di atas hanyalah dasar, berikut ini adalah pengaturan lengkap untuk percikan:
Untuk mengatur layanan:
Bacaan lebih lanjut
Silakan baca tautan berikut. Spark adalah pengaturan yang rumit, jadi Anda harus memahami bagaimana itu terintegrasi dengan layanan init Ubuntu.
https://datasciencenovice.wordpress.com/2016/11/30/spark-stand-alone-cluster-as-a-systemd-service-ubuntu-16-04centos-7/
https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files
https://www.freedesktop.org/software/systemd/man/systemd.unit.html
sumber
sudo systemctl start spark
menerima kesalahan berikut:Failed to start spark.service: Unit spark.service is not loaded properly: Invalid argument. See system logs and 'systemctl status spark.service' for details.
systemctl status spark.service
adalah sebagai berikut:Executable path is not absolute
danspark.service: Service lacks both ExecStart= and ExecStop= setting. Refusing.
Ini membuat dan berjalan
/root/boot.sh
saat boot (sebagai root) menggunakan file layanan minimal:Anda dapat memberi ini Ctrl+ Cke terminal root.
Untuk memodifikasi parameter, misalnya untuk menggunakan yang berbeda
$bootscript
, atur variabel itu secara manual dan lewati saja baris itu saat menyalin perintah.Setelah menjalankan perintah, Anda dapat mengedit skrip boot menggunakan editor favorit Anda, dan skrip boot akan dijalankan pada boot berikutnya. Anda juga dapat segera menjalankannya dengan menggunakan:
Setiap langkah dapat dilakukan dengan sudo, tetapi ini sedikit lebih rumit, dan beberapa sistem tidak memiliki sudo yang diinstal sehingga beberapa orang harus memodifikasi contoh sebelum digunakan. Karena itu saya memilih untuk tidak memasukkan sudo dalam contoh.
sumber
Type=oneshot RemainAfterExit=yes
atau systemd akan menganggap tugas tidak aktif kecuali skrip kustom membiarkan beberapa proses berjalan.