Tutorial Apache Spark Untuk Pemula: Pelajari Apache Spark Dengan Contoh

Diterbitkan: 2020-03-26

Daftar isi

pengantar

Data ada di mana-mana – mulai dari catatan pelanggan perusahaan rintisan kecil hingga lembar keuangan perusahaan multinasional besar. Perusahaan menggunakan data yang dihasilkan ini untuk memahami bagaimana kinerja bisnis mereka dan di mana mereka dapat meningkatkan. Peter Sondergaard, Wakil Presiden Senior Gartner Research, mengatakan bahwa informasi adalah minyak untuk abad ke-21 dan analitik dapat dianggap sebagai mesin pembakaran.

Namun seiring dengan pertumbuhan perusahaan, demikian pula pelanggan, pemangku kepentingan, mitra bisnis, dan produk mereka. Jadi, jumlah data yang harus mereka tangani menjadi sangat besar.

Semua data ini harus dianalisis untuk menciptakan produk yang lebih baik bagi pelanggan mereka. Tetapi terabyte data yang dihasilkan per detik tidak dapat ditangani menggunakan lembar excel dan buku catatan. Kumpulan data besar dapat ditangani oleh alat seperti Apache Spark.

Kami akan masuk ke rincian perangkat lunak melalui pengenalan Apache Spark .

Apa itu Apache Spark?

Apache Spark adalah kerangka kerja komputasi cluster sumber terbuka . Ini pada dasarnya adalah sistem pemrosesan data yang digunakan untuk menangani beban kerja data yang sangat besar dan kumpulan data. Itu dapat memproses kumpulan data besar dengan cepat dan juga mendistribusikan tugas-tugas ini ke berbagai sistem untuk mengurangi beban kerja. Ini memiliki API sederhana yang mengurangi beban pengembang ketika mereka kewalahan oleh dua istilah – pemrosesan data besar dan komputasi terdistribusi!

Pengembangan Apache Spark dimulai sebagai proyek penelitian sumber terbuka di AMPLab UC Berkeley oleh Matei Zaharia , yang dianggap sebagai pendiri Spark. Pada tahun 2010, di bawah lisensi BSD, proyek ini bersumber terbuka. Kemudian, itu menjadi proyek yang diinkubasi di bawah Apache Software Foundation pada tahun 2013. Ini menjadi salah satu proyek teratas perusahaan pada tahun 2014.

Pada tahun 2015, Spark memiliki lebih dari 1000 kontributor untuk proyek tersebut. Ini menjadikannya salah satu proyek paling aktif di Apache Software Foundation dan juga di dunia data besar. Lebih dari 200 perusahaan telah mendukung proyek ini sejak 2009.

Tapi mengapa semua kegilaan ini atas Spark?

Ini karena Spark mampu menangani banyak data dan memprosesnya sekaligus. Data ini dapat didistribusikan melalui ribuan server virtual atau fisik yang terhubung. Ini memiliki serangkaian besar API dan perpustakaan yang bekerja dengan beberapa bahasa pemrograman seperti Python, R, Scala dan Java. Ini mendukung streaming data, tugas-tugas rumit seperti pemrosesan grafik dan juga pembelajaran mesin. Juga, fitur perubahan permainan dari apache spark membuat permintaannya tinggi.

Ini mendukung berbagai database seperti Hadoop's HDFS, Amazon S3 dan database NoSQL seperti MongoDB, Apache HBase, Database MapR dan Apache Cassandra. Ini juga mendukung Apache Kafka dan MapR Event Store.

Arsitektur Apache Spark

Setelah menjelajahi pengenalan Apache Spark, sekarang kita akan belajar tentang strukturnya. Pelajari lebih lanjut tentang Arsitektur Apache.

Arsitekturnya terdefinisi dengan baik dan memiliki dua komponen utama:

Kumpulan Data Terdistribusi Tangguh (RDD)

Ini adalah kumpulan item data yang disimpan di node pekerja kluster Spark. Cluster adalah kumpulan mesin terdistribusi tempat Anda dapat menginstal Spark. RDD disebut tangguh, karena mampu memperbaiki data jika terjadi kegagalan. Mereka disebut terdistribusi karena tersebar di beberapa node di sebuah cluster.

Dua jenis RDD didukung oleh Spark:

  • Kumpulan data Hadoop dibuat dari file di HDFS (Sistem File Terdistribusi Hadoop)
  • Koleksi paralel berdasarkan koleksi Scala

RDD dapat digunakan untuk dua jenis operasi yaitu:

  • Transformasi – Operasi ini digunakan untuk membuat RDD
  • Tindakan – Ini digunakan untuk menginstruksikan Spark untuk melakukan beberapa perhitungan dan mengembalikan hasilnya ke driver. Kami akan mempelajari lebih lanjut tentang driver di bagian mendatang

DAG (Grafik Asiklik Berarah)

Ini dapat dianggap sebagai urutan tindakan pada data. Mereka adalah kombinasi dari simpul dan tepi. Setiap simpul mewakili RDD dan setiap tepi mewakili komputasi yang harus dilakukan pada RDD tersebut. Ini adalah grafik yang berisi semua operasi yang diterapkan ke RDD.

Ini adalah graf berarah karena satu simpul terhubung dengan simpul lainnya. Grafiknya asiklik karena tidak ada loop atau siklus di dalamnya. Setelah transformasi dilakukan, itu tidak dapat kembali ke posisi semula. Transformasi di Apache Spark adalah tindakan yang mengubah status partisi data dari A ke B.

Jadi, bagaimana cara kerja arsitektur ini? Mari kita lihat.

Arsitektur Apache Spark memiliki dua daemon utama dan manajer cluster . Ini adalah – daemon master dan pekerja . Daemon adalah program yang dijalankan sebagai proses latar belakang. Sebuah cluster di Spark dapat memiliki banyak budak tetapi satu daemon master.

Di dalam master node , terdapat program driver yang mengeksekusi aplikasi Spark. Shell interaktif yang mungkin Anda gunakan untuk menjalankan kode bertindak sebagai program drive. Di dalam program driver, Konteks Spark dibuat. Konteks ini dan program driver menjalankan pekerjaan dengan bantuan manajer cluster.

Pekerjaan tersebut kemudian didistribusikan pada node pekerja setelah dibagi menjadi banyak tugas. Tugas dijalankan di RDD oleh node pekerja . Hasilnya diberikan kembali ke Spark Context . Saat Anda menambah jumlah pekerja, pekerjaan dapat dibagi menjadi beberapa partisi dan berjalan paralel di banyak sistem. Ini akan mengurangi beban kerja dan meningkatkan waktu penyelesaian pekerjaan.

Apache Spark: Manfaat

Berikut adalah keuntungan menggunakan Apache Spark :

Kecepatan

Saat menjalankan pekerjaan, data pertama kali disimpan di RDD. Jadi, karena data ini disimpan dalam memori, data ini dapat diakses dengan cepat dan pekerjaan akan dieksekusi lebih cepat. Seiring dengan caching dalam memori, Spark juga telah mengoptimalkan eksekusi kueri. Melalui ini, kueri analitik dapat berjalan lebih cepat. Kecepatan pemrosesan data yang sangat tinggi dapat diperoleh. Ini bisa 100 kali lebih cepat daripada Hadoop untuk memproses data skala besar.

Menangani banyak beban kerja

Apache Spark dapat menangani beberapa beban kerja sekaligus. Ini bisa berupa kueri interaktif, pemrosesan grafik, pembelajaran mesin, dan analitik waktu nyata. Aplikasi Spark dapat menggabungkan banyak beban kerja dengan mudah.

Kemudahan penggunaan

Apache Spark memiliki API yang mudah digunakan untuk menangani kumpulan data besar. Ini mencakup lebih dari 100 operator yang dapat Anda gunakan untuk membangun aplikasi paralel. Operator ini dapat mengubah data, dan data semi terstruktur dapat dimanipulasi menggunakan API bingkai data.

Dukungan bahasa

Spark adalah favorit pengembang karena mendukung beberapa bahasa pemrograman seperti Java, Python, Scala dan R. Ini memberi Anda banyak pilihan untuk mengembangkan aplikasi Anda. API juga sangat ramah pengembang karena membantu mereka menyembunyikan teknologi pemrosesan terdistribusi yang rumit di belakang operator tingkat tinggi yang membantu mengurangi jumlah kode yang dibutuhkan.

Efisiensi

Evaluasi malas dilakukan di Spark. Ini berarti bahwa semua transformasi yang dilakukan melalui RDDS bersifat malas. Jadi, hasil transformasi ini tidak langsung dihasilkan dan RDD baru dibuat dari yang sudah ada. Pengguna dapat mengatur program Apache menjadi beberapa operasi yang lebih kecil, yang meningkatkan pengelolaan program.

Evaluasi malas meningkatkan kecepatan sistem dan efisiensinya.

Dukungan komunitas

Menjadi salah satu proyek data besar sumber terbuka terbesar, ia memiliki lebih dari 200 pengembang dari berbagai perusahaan yang mengerjakannya. Pada tahun 2009, komunitas ini dirintis dan berkembang sejak saat itu. Jadi, jika Anda menghadapi kesalahan teknis, kemungkinan besar Anda akan menemukan solusi secara online, yang diposting oleh pengembang.

Anda mungkin juga menemukan banyak pengembang lepas atau penuh waktu yang siap membantu Anda dalam proyek Spark Anda.

Streaming waktu nyata

Spark terkenal dengan streaming data waktu nyata . Ini dimungkinkan melalui Spark Streaming, yang merupakan perpanjangan dari API Spark inti. Hal ini memungkinkan ilmuwan data menangani data waktu nyata dari berbagai sumber seperti Amazon Kinesis dan Kafka . Data yang diproses kemudian dapat ditransfer ke database, sistem file, dan dasbor.

Prosesnya efisien dalam arti Spark Streaming dapat pulih dari kegagalan data dengan cepat. Ini melakukan penyeimbangan beban yang lebih baik dan menggunakan sumber daya secara efisien.

Aplikasi Apache Spark

Setelah pengenalan Apache Spark dan manfaatnya , kita akan mempelajari lebih lanjut tentang berbagai aplikasinya:

Pembelajaran mesin

Kemampuan Apache Spark untuk menyimpan data dalam memori dan mengeksekusi kueri berulang kali menjadikannya pilihan yang baik untuk melatih algoritme ML. Ini karena menjalankan kueri serupa berulang kali akan mengurangi waktu yang diperlukan untuk menentukan solusi terbaik.

Machine Learning Library (MLlib) Spark dapat melakukan operasi analitik tingkat lanjut seperti analisis prediktif, klasifikasi, analisis sentimen, pengelompokan, dan pengurangan dimensi.

Integrasi data

Data yang dihasilkan di seluruh sistem yang berbeda dalam suatu organisasi tidak selalu bersih dan terorganisir. Spark adalah alat yang sangat efisien dalam melakukan operasi ETL pada data ini. Ini berarti ia mengeksekusi, mengekstrak, mengubah, dan memuat operasi untuk menarik data dari berbagai sumber, membersihkan, dan mengaturnya. Data ini kemudian dimuat ke sistem lain untuk dianalisis.

Analisis interaktif

Ini adalah proses di mana pengguna dapat melakukan analisis data pada data langsung. Dengan bantuan fitur Streaming Terstruktur di Spark, pengguna dapat menjalankan kueri interaktif pada data langsung. Anda juga dapat menjalankan kueri interaktif pada sesi web langsung yang akan meningkatkan analisis Web. Algoritme pembelajaran mesin juga dapat diterapkan ke aliran data langsung ini.

komputasi kabut

Kita tahu bahwa IoT (Internet of things) berurusan dengan banyak data yang muncul dari berbagai perangkat yang memiliki sensor. Ini menciptakan jaringan perangkat dan pengguna yang saling berhubungan. Tetapi ketika jaringan IoT mulai berkembang, ada kebutuhan untuk sistem pemrosesan paralel terdistribusi.

Jadi, pemrosesan data dan penyimpanan desentralisasi dilakukan melalui Fog Computing bersama dengan Spark . Untuk ini, Spark menawarkan komponen yang kuat seperti Spark Streaming, GraphX ​​dan MLlib. Pelajari lebih lanjut tentang aplikasi apache spark.

Kesimpulan

Kami telah belajar bahwa Apache Spark cepat, efektif, dan kaya fitur. Itulah sebabnya perusahaan seperti Huawei, Baidu, IBM, JP Morgan Chase, Lockheed Martin dan Microsoft menggunakannya untuk mempercepat bisnis mereka. Sekarang terkenal di berbagai bidang seperti ritel, bisnis, jasa keuangan, manajemen kesehatan dan manufaktur.

Seiring dunia menjadi lebih bergantung pada data, Apache Spark akan terus menjadi alat penting untuk pemrosesan data di masa depan.

Jika Anda tertarik untuk mengetahui lebih banyak tentang Big Data, lihat Diploma PG kami dalam Spesialisasi Pengembangan Perangkat Lunak dalam program Big Data yang dirancang untuk para profesional yang bekerja dan menyediakan 7+ studi kasus & proyek, mencakup 14 bahasa & alat pemrograman, praktik langsung lokakarya, lebih dari 400 jam pembelajaran yang ketat & bantuan penempatan kerja dengan perusahaan-perusahaan top.

Pelajari Kursus Pengembangan Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Pimpin Revolusi Teknologi Berbasis Data

400+ Jam Belajar. 14 Bahasa & Alat. Status Alumni IIIT-B.
Program Sertifikat Tingkat Lanjut dalam Data Besar dari IIIT Bangalore