GNU/Linux >> Belajar Linux >  >> Linux

Pelajari Streaming Acara Dengan Tutorial Apache Kafka Ini

Butuh platform streaming untuk menangani data dalam jumlah besar? Anda pasti pernah mendengar tentang Apache Kafka di Linux. Apache Kafka sangat cocok untuk pemrosesan data waktu nyata, dan menjadi semakin populer. Menginstal Apache Kafka di Linux bisa menjadi sedikit rumit, tetapi jangan khawatir, tutorial ini telah membantu Anda.

Dalam tutorial ini, Anda akan belajar menginstal dan mengonfigurasi Apache Kafka, sehingga Anda dapat mulai memproses data seperti seorang profesional, membuat bisnis Anda lebih efisien dan produktif.

Baca terus dan mulai streaming data dengan Apache Kafka hari ini!

Prasyarat

Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki yang berikut ini.

  • Mesin Linux – Demo ini menggunakan Debian 10, tetapi semua distribusi Linux akan berfungsi.
  • Akun pengguna non-root dengan hak istimewa sudo, diperlukan untuk menjalankan Kafka, dan diberi nama kafka dalam tutorial ini.
  • Pengguna sudo khusus untuk Kafka – Tutorial ini menggunakan pengguna sudo yang disebut kafka.
  • Java – Java adalah bagian integral dari penginstalan Apache Kafka.
  • Git – Tutorial ini menggunakan Git untuk mengunduh file Unit Apache Kafka.

Menginstal Apache Kafka

Sebelum streaming data, Anda harus terlebih dahulu menginstal Apache Kafka di mesin Anda. Karena Anda memiliki akun khusus untuk Kafka, Anda dapat menginstal Kafka tanpa khawatir merusak sistem Anda.

1. Jalankan mkdir perintah di bawah ini untuk membuat /home/kafka/Downloads direktori. Anda dapat memberi nama direktori sesuai keinginan, tetapi direktori tersebut disebut Unduhan untuk demo ini. Direktori ini akan menyimpan binari Kafka. Tindakan ini memastikan bahwa semua file Anda untuk Kafka tersedia di kafka pengguna.

mkdir Downloads

2. Selanjutnya, jalankan apt update di bawah ini perintah untuk memperbarui indeks paket sistem Anda.

sudo apt update -y

Masukkan kata sandi untuk pengguna kafka Anda saat diminta.

3. Jalankan curl perintah di bawah ini untuk mengunduh binari Kafka dari situs web Apache Foundation ke output (-o ) ke file biner (kafka.tgz ) di ~/Downloads . Anda direktori. Anda akan menggunakan file biner ini untuk menginstal Kafka.

Pastikan untuk mengganti kafka/3.1.0/kafka_2.13-3.1.0.tgz dengan binari Kafka versi terbaru. Pada tulisan ini, versi Kafka saat ini adalah 3.1.0.

curl "https://dlcdn.apache.org/kafka/3.1.0/kafka_2.13-3.1.0.tgz" -o ~/Downloads/kafka.tgz

4. Sekarang, jalankan tar perintah di bawah ini untuk mengekstrak (-x ) biner Kafka (~/Downloads/kafka.tgz ) ke dalam kafka . yang dibuat secara otomatis direktori. Opsi di tar perintah lakukan hal berikut:

Opsi di tar perintah lakukan hal berikut:

  • -v – Memberi tahu tar perintah untuk membuat daftar semua file saat diekstraksi.
  • -z – Memberi tahu tar perintah untuk gzip arsip karena tidak dikompresi. Perilaku ini tidak diperlukan dalam kasus ini tetapi merupakan opsi yang sangat baik, terutama jika Anda memerlukan file terkompresi/zip yang cepat untuk dipindahkan.
  • -f – Memberi tahu tar perintah file arsip mana yang akan diekstrak.
  • -strip 1 -Menginstruksikan tar perintah untuk menghapus direktori tingkat pertama dari daftar nama file Anda. Akibatnya, secara otomatis membuat subdirektori bernama kafka berisi semua file yang diekstrak dari ~/Downloads/kafka.tgz berkas.
tar -xvzf ~/Downloads/kafka.tgz --strip 1

Mengonfigurasi Server Apache Kafka

Pada titik ini, Anda telah mengunduh dan menginstal binari Kafka ke ~/Downloads . Anda direktori. Anda belum dapat menggunakan server Kafka karena, secara default, Kafka tidak mengizinkan Anda untuk menghapus atau mengubah topik apa pun, kategori yang diperlukan untuk mengatur pesan log.

Untuk mengkonfigurasi server Kafka Anda, Anda harus mengedit file konfigurasi Kafka (/etc/kafka/server.properties).

1. Buka file konfigurasi Kafka (/etc/kafka/server.properties ) di editor teks pilihan Anda.

2. Selanjutnya, tambahkan delete.topic.enable =true baris di bagian bawah /kafka/config/server.properties konten file, simpan perubahan dan tutup editor.

Properti konfigurasi ini memberi Anda izin untuk menghapus atau mengubah topik, jadi pastikan Anda mengetahui apa yang Anda lakukan sebelum menghapus topik. Menghapus topik akan menghapus partisi untuk topik itu juga. Data apa pun yang disimpan di partisi tersebut tidak lagi dapat diakses setelah hilang.

Pastikan tidak ada spasi di awal setiap baris, atau file tidak akan dikenali, dan server Kafka Anda tidak akan berfungsi.

3. Jalankan git perintah di bawah ini ke clone ata-kafka memproyeksikan ke mesin lokal Anda sehingga Anda dapat memodifikasinya untuk digunakan sebagai file unit untuk layanan Kafka Anda.

sudo git clone https://github.com/Adam-the-Automator/apache-kafka.git

Sekarang, jalankan perintah di bawah ini untuk pindah ke apache-kafka direktori dan daftar file di dalamnya.

cd apache-kafka
ls

Sekarang Anda berada di ata-kafka direktori, Anda dapat melihat bahwa Anda memiliki dua file di dalamnya:kafka.service dan zookeeper.service, seperti yang ditunjukkan di bawah ini.

5. Buka zookeeper.service file di editor teks pilihan Anda. Anda akan menggunakan file ini sebagai referensi untuk membuat kafka.service mengajukan.

Sesuaikan setiap bagian di bawah ini di zookeeper.service berkas, sesuai kebutuhan. Tapi demo ini menggunakan file ini apa adanya, tanpa modifikasi.

  • [Unit] bagian mengkonfigurasi properti startup untuk unit ini. Bagian ini memberi tahu sistem apa yang harus digunakan saat memulai layanan zookeeper.
  • Bagian [Layanan] mendefinisikan bagaimana, kapan, dan di mana memulai layanan Kafka menggunakan kafka-server-start.sh naskah. Bagian ini juga mendefinisikan informasi dasar seperti nama, deskripsi, dan argumen baris perintah (yang mengikuti ExecStart=).
  • [Install] bagian menyetel runlevel untuk memulai layanan saat memasuki mode multi-pengguna.

6. Buka kafka.service file di editor teks pilihan Anda, dan konfigurasikan tampilan server Kafka Anda saat dijalankan sebagai layanan systemd.

Demo ini menggunakan nilai default yang ada di kafka.service file, tetapi Anda dapat menyesuaikan file sesuai kebutuhan. Perhatikan bahwa file ini merujuk ke zookeeper.service file, yang mungkin Anda modifikasi di beberapa titik.

7. Jalankan perintah di bawah ini ke start kafka melayani.

sudo systemctl start kafka

Ingatlah untuk menghentikan dan memulai server Kafka Anda sebagai layanan. Jika tidak, proses akan tetap berada di memori, dan Anda hanya dapat menghentikan proses dengan mematikannya. Perilaku ini dapat menyebabkan hilangnya data jika Anda memiliki topik yang sedang ditulis atau diperbarui saat proses dihentikan.

Karena Anda telah membuat kafka.service dan zookeeper.service file, Anda juga dapat menjalankan salah satu dari perintah di bawah ini untuk menghentikan atau memulai ulang server Kafka berbasis sistem Anda.

sudo systemctl stop kafka
sudo systemctl restart kafka

8. Sekarang, jalankan journalctl perintah di bawah ini untuk memverifikasi bahwa layanan telah berhasil dimulai.

Perintah ini mencantumkan semua log untuk layanan kafka.

sudo journalctl -u kafka

Jika Anda telah mengonfigurasi semuanya dengan benar, Anda akan melihat pesan yang mengatakan Started kafka.service, seperti yang ditunjukkan di bawah ini. Selamat! Anda sekarang memiliki server Kafka yang berfungsi penuh yang akan dijalankan sebagai layanan systemd.

Membatasi Pengguna Kafka

Pada titik ini, Layanan Kafka berjalan sebagai pengguna kafka. Pengguna kafka adalah pengguna tingkat sistem dan tidak boleh diekspos ke pengguna yang terhubung ke Kafka.

Setiap klien yang terhubung ke Kafka melalui broker ini akan secara efektif memiliki akses tingkat root pada mesin broker, yang tidak direkomendasikan. Untuk mengurangi risiko, Anda akan menghapus pengguna kafka dari file sudoers dan menonaktifkan kata sandi untuk pengguna kafka.

1. Jalankan exit perintah di bawah ini untuk beralih kembali ke akun pengguna normal Anda.

exit

2. Selanjutnya, jalankan sudo deluser kafka sudo dan tekan Enter untuk mengonfirmasi bahwa Anda ingin menghapus kafka pengguna dari sudoers.

sudo deluser kafka sudo

3. Jalankan perintah di bawah ini untuk menonaktifkan kata sandi untuk pengguna kafka. Melakukannya akan semakin meningkatkan keamanan penginstalan Kafka Anda.

sudo passwd kafka -l

4. Sekarang, jalankan kembali perintah berikut untuk menghapus pengguna kafka dari daftar sudoers.

sudo deluser kafka sudo

5. Jalankan su di bawah ini perintah untuk menetapkan hanya pengguna yang berwenang seperti pengguna root yang dapat menjalankan perintah sebagai kafka pengguna.

sudo su - kafka

6. Selanjutnya, jalankan perintah di bawah ini untuk membuat topik Kafka baru bernama ATA untuk memverifikasi bahwa server Kafka Anda berjalan dengan benar.

Topik Kafka adalah umpan pesan ke/dari server, yang membantu menghilangkan komplikasi memiliki data yang berantakan dan tidak terorganisir di Server Kafka

cd /usr/local/kafka-server && bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic ATA

7. Jalankan perintah di bawah ini untuk membuat produser Kafka menggunakan kafka-console-producer.sh naskah. Produsen Kafka menulis data ke topik.

echo "Hello World, this sample provided by ATA" | bin/kafka-console-producer.sh --broker-list localhost:9092 --topic ATA > /dev/null

8. Terakhir, jalankan perintah di bawah ini untuk membuat konsumen kafka menggunakan kafka-console-consumer.sh naskah. Perintah ini menggunakan semua pesan dalam topik kafka (--topic ATA ) dan kemudian mencetak nilai pesan.

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic ATA --from-beginning

Anda akan melihat pesan di output di bawah ini karena pesan Anda dicetak oleh konsumen konsol Kafka dari topik ATA Kafka, seperti yang ditunjukkan di bawah ini. Skrip konsumen terus berjalan pada titik ini, menunggu lebih banyak pesan.

Anda dapat membuka terminal lain untuk menambahkan lebih banyak pesan ke topik Anda dan tekan Ctrl+C untuk menghentikan skrip konsumen setelah Anda selesai menguji.

Kesimpulan

Sepanjang tutorial ini, Anda telah belajar untuk mengatur dan mengkonfigurasi Apache Kafka di mesin Anda. Anda juga telah menyentuh tentang penggunaan pesan dari topik Kafka yang diproduksi oleh produser Kafka, sehingga menghasilkan pengelolaan log peristiwa yang efektif.

Sekarang, mengapa tidak membangun pengetahuan baru ini dengan menginstal Kafka dengan Flume untuk mendistribusikan dan mengelola pesan Anda dengan lebih baik? Anda juga dapat menjelajahi Streams API Kafka dan membangun aplikasi yang membaca dan menulis data ke Kafka. Melakukannya akan mengubah data sesuai kebutuhan sebelum menuliskannya ke sistem lain seperti HDFS, HBase, atau Elasticsearch.


Linux
  1. Instal phpMyAdmin di Ubuntu 20.04 dengan Apache

  2. Instal phpMyAdmin di Debian 11 dengan Apache

  3. Menyiapkan subdomain dengan Apache di Linux

  1. Cara Mengatur Apache dengan Acara MPM dan PHP-FPM di Ubuntu 20.04

  2. Cara Instal Apache Kafka di Rocky Linux 8

  3. Instal WordPress di Linux dengan Apache

  1. Otomatiskan pemrosesan gambar dengan skrip Bash ini

  2. Instal phpMyAdmin di Ubuntu 22.04 dengan Apache

  3. Model yang digerakkan oleh peristiwa dalam C dengan Soket