Apache Apex – Sebuah Pengantar

Diterbitkan: 2015-12-29

Apache Hadoop telah menjadi kerangka kerja perangkat lunak de-facto untuk komputasi yang andal, terukur, terdistribusi, dan berskala besar. Sejak awal, Hadoop telah menjadi kerangka pilihan pertama untuk pemrosesan Batch. Dari bank besar hingga raksasa ritel online, semua orang menggunakan Hadoop untuk pembuatan laporan berkala, perhitungan, dan untuk banyak kasus penggunaan lainnya. Biasanya, kasus penggunaan ini adalah proses berorientasi batch dan memerlukan beberapa jam sebelum kita mendapatkan makna dari data. Dunia yang cepat saat ini membutuhkan makna atau tindakan dari data mentah hampir pada saat itu dihasilkan. Ini telah menyebabkan konsep pemrosesan aliran. Meskipun Hadoop awalnya tidak dianggap cocok untuk pemrosesan aliran, penemuan BENANG (Hadoop 2.0) telah menjadikannya kandidat yang baik untuk itu. Saat ini ada beberapa kerangka pemrosesan aliran di ekosistem Hadoop dan Apex adalah yang baru memasuki pasar yang ramai ini.

Apa itu Apache Apex?

Apache Apex adalah platform berbasis BENANG asli yang membantu pengembang aplikasi untuk menulis aplikasi berorientasi aliran serta berorientasi Batch. Ini dirancang untuk memproses data yang sedang bergerak, dengan cara terdistribusi, berkinerja tinggi, dan toleran terhadap kesalahan. Icing atas ini adalah API yang mudah, yang memungkinkan pengguna untuk menulis kode java mereka dengan pengetahuan terbatas tentang pemrosesan aliran.

Apex didasarkan pada spesifikasi fungsional dan operasional yang terpisah, bukan menggabungkannya menjadi satu. Hal ini membuat pengembang aplikasi fokus pada penulisan Fungsi yang Ditentukan Pengguna tanpa harus memikirkan bagaimana mereka akan beroperasi di lingkungan terdistribusi.

Apache Apex memiliki perpustakaan kaya fungsi yang umum digunakan. Ini ditambahkan sebagai bagian dari perpustakaan Apache Apex-Malhar. Perpustakaan ini memiliki operator untuk mengakses sistem file yang berbeda, database, antrian pesan. Komunitas menambahkan operator dari hari ke hari membuat hidup pengembang aplikasi lebih mudah.

Apa itu Blok inti Apache Apex?

Arsitektur Apex sangat sederhana. Apex memiliki Malhar, perpustakaan operator dan mesin inti untuk digunakan. Inti dari Apex dapat digambarkan sebagai berikut, mereka sering disebut sebagai blok utama dari Apache Apex.

blok inti Apache Apex

Anda dapat dengan jelas memisahkan lapisan dan bisa mendapatkan gambaran di mana itu cocok. Mari kita lihat informasi tentang blok ini.

  1. StrAM ( Str eam A aplikasi M aster)
    StrAM adalah Master Aplikasi BENANG. Tanggung jawabnya meliputi peluncuran aplikasi streaming, alokasi sumber daya, penjadwalan DAG logis. Seiring dengan operasi YARN ini, StrAM menginisialisasi operator, stream. StrAM juga mengumpulkan statistik dari anak-anaknya.
  2. Snapshot Negara
    Kerangka kerja pemrosesan aliran tidak mampu kehilangan hasil yang diproses. Selain itu, mereka harus tahu berapa banyak yang telah mereka proses untuk memproses catatan dengan benar setelah mereka pulih dari kegagalan. Jadi secara berkala, check point penting dalam pemrosesan aliran. Di Apex, StrAM melacak check pointing dan pada batas operator, check pointing dilakukan secara berkala pada HDFS.
  3. REST API
    StrAM adalah titik akses untuk REST API. Alat eksternal dapat mengakses API REST ini dan berintegrasi dengan aplikasi eksternal apa pun.
  4. Peralatan
    Apex menyediakan CLI untuk meluncurkan dan memantau aplikasi Apex. Bahkan kita bisa membangun sendiri dengan bantuan REST API. Seiring dengan CLI, aplikasi dapat mengonfigurasi dengan skrip konfigurasi statis untuk peluncuran otomatis.
  5. Partisi
  6. Apex menyediakan partisi berdasarkan kunci dan penyeimbangan beban dinamis. Bahkan pengguna dapat menentukan skema partisinya sendiri.

  7. Modifikasi Dinamis
  8. Apache Apex memiliki fitur yang sangat berguna dan unik ini. Ini mendukung perubahan DAG Logis, perubahan rencana eksekusi fisik.

  9. Analisis SLA
    Apache Apex melakukan analisis SLA sendiri secara berkala. Itu melakukan analisis latensi, kemacetan, dan throughput dan menambahkan lebih banyak sumber daya untuk memenuhi konfigurasi SLA.
  10. Keamanan
  11. Apex mendukung Kerberos. Mendasari klaster Hadoop aman, ia dapat mengakses dengan integrasi Kerberos yang melekat.

  12. Ketersediaan Tinggi
    Apache Apex menggunakan fungsionalitas memulai ulang YARN dan memulai ulang dari status titik pemeriksaan terakhir.
  13. Malhar
    Apache Apex –Malhar adalah perpustakaan operator dengan banyak operator. Operator-operator ini dikategorikan menjadi
    • Operator masukan/keluaran
      Di bawah kategori ini, saat ini Malhar memiliki operator untuk membaca/menulis dari
    • Berkas sistem
    • RDBMS
    • Toko NoSQL
    • Antrian Pesan
    • Basis data dalam memori
    • Media sosial
  14. Operator Komputasi –
  15. Malhar memiliki banyak operator yang akan membantu dalam implementasi logika bisnis yang sebenarnya. Perpustakaan ini memiliki

        • Pencocokan Pola
        • Statistik dan Matematika
        • Pembelajaran mesin
        • Pengurai
        • Media sosial
      • Server Penyangga

      Server buffer terletak di setiap batas operator. Dalam hal data, server buffer operator lokal dapat mengejar string operator. Tujuan utama dari mereka adalah menyimpan data sementara di tepi sebelum meneruskan ke berikutnya. Mereka berperan penting ketika node pulih dari kegagalan. Server buffer memuat data dari status check-point terakhir untuk diputar ulang

      Apa itu model pemrograman Aplikasi Apex?

      Ini memiliki kerangka kerja yang kaya dan perpustakaan Malhar yang berarti pengembang aplikasi hanya perlu menghubungkan operator dan meluncurkan aplikasi. Oleh karena itu, aplikasi Anda tidak lain adalah urutan operator.

      Model pemrograman Aplikasi Apex

      Ini adalah bagaimana kerangka kerja yang kaya membuat hidup pengembang menjadi mudah. Jadi mari kita lihat bagaimana aplikasi demo ini berjalan

      Demo Apache Apex

      Jadi mari kita mulai dengan ' Hello World of Big Data J ', demo kecil jumlah kata menggunakan Apache Apex.

      Menyiapkan Apache Apex

      Untuk menjalankan demo ini, kita perlu mengkonfigurasi Apex. Anda dapat menginstal Apache Apex di cluster yang ada atau ada cara sederhana untuk mencoba, Anda dapat mengunduh pra-instal VM sandbox dari situs web DataTorrent dari sini. Untuk demo ini kami akan menggunakan VM yang sudah diinstal sebelumnya.

      Panduan Apex UI Console

      Apex hadir dengan Konsol UI desain yang sangat intuitif dan indah yang dapat Anda gunakan untuk meluncurkan, memantau, dan mengelola aplikasi. Ini mencakup berbagai statistik mengenai berbagai komponen yang digunakan.

      Setelah itu, Anda telah mengunduh VM sandbox, UnTar dan memuatnya di pemutar VM favorit Anda (saya menggunakan pemutar VMWare VMWare). Semua perangkat lunak dan alat yang diperlukan untuk menjalankan Apex sudah dikonfigurasi di VM ini dan semua skrip startup dikonfigurasi untuk dijalankan saat boot OS. Jadi, ketika VM Anda aktif, Anda akan menjalankan instance Apache Apex. Sekarang, untuk melihat konsol, cukup tekan http://locahost:9090 di browser web favorit Anda dan masuk ke konsol. Nama pengguna default: kata sandi untuk VM kotak pasir adalah dtadmin: dtadmin. Anda akan melihat konsol seperti di bawah ini

      Konsol UI Apache Apex

      Halaman ini memberi kami gambaran lengkap tentang semua sistem seperti penggunaan CPU dan Memori, Aplikasi, Kinerja, Masalah, dll.

      Untuk menyebarkan aplikasi, buka tab Kembangkan di bagian atas halaman.

      data torrent

      Di sini Anda dapat menerapkan paket aplikasi Anda dan dapat mengelola skema tuple untuk data di dalam Apex.

      Apex memberi Anda sejumlah aplikasi di luar kotak, yang dapat Anda lihat tercantum di bawah ini:

      data torrent

      Demo Penghitungan Kata

      Sekarang, mari kita luncurkan aplikasi wordcount. Anda dapat melakukan ini dengan mengklik opsi peluncuran aplikasi di sebelah Demo DataTorrent Wordcount. Selanjutnya Anda dapat menyediakan aplikasi yang berbeda dan mengubah detail konfigurasi jika diperlukan (Kami tidak akan melakukannya karena sebagian besar default berfungsi dengan baik, mari ubah nama aplikasi menjadi "MyWordCountDemo"). Anda akan melihat pesan yang mengatakan bahwa aplikasi berhasil disebarkan dengan tautan ke aplikasi. Klik tautan itu.

      demo jumlah kata

      Ini membuka halaman baru. Tunggu beberapa detik hingga status aplikasi berubah dari Accepted menjadi Running. Anda sekarang akan melihat halaman yang penuh dengan berbagai statistik dan informasi. Dua tangkapan layar berikutnya menggambarkan mereka.

      demo jumlah kata

      Konsol UI Apache Apex

      Halaman ini menunjukkan kepada kita berbagai informasi seperti tampilan logis, fisik dan metrik aplikasi, bersama dengan statistik berbagai tupel/catatan yang diproses oleh aplikasi setiap detik. Ini menunjukkan representasi grafis dari tupel yang dipancarkan dan latensi dll.

      Anda dapat mengklik salah satu operator logika, memeriksa catatannya, dan bahkan merekam sampel. Mari kita lakukan itu untuk operator konsol. Klik pada operator konsol dan Anda akan mendapatkan informasi rinci tentang operator seperti di bawah ini:

      Konsol UI Apache Apex

      Selanjutnya, pilih salah satu partisi dan klik rekam sampel.

      Konsol UI Apache Apex

      Setelah beberapa detik, Anda akan melihat tupel terisi, klik tupel untuk melihat isinya. Seperti yang Anda lihat dari konten, aplikasi telah melakukan penghitungan kata pada data berbasis windows dan ada 2 "ke", 4 "the", 4 "a" dll di tupel input ke-0 untuk jendela ini. Anda sekarang dapat menghentikan aplikasi dengan mengklik "Matikan" atau "Bunuh" di halaman utama aplikasi.

      Itu saja, kami telah berhasil men-deploy dan menjalankan aplikasi wordcount.

      Kesimpulan

      Itulah pengenalan alat Streaming baru – Apache Apex dan keberhasilan menjalankan aplikasi di Apache Apex. Apache Apex memiliki banyak fitur penting yang memberikan keunggulan atas kerangka kerja lain yang ada yang akan saya bahas di posting berikutnya.