Big Data dengan Hadoop Oleh : Agus Priyanto, M.Kom
SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM Smart, Trustworthy, And Teamwork
Tujuan Pembelajaran Setelah mengikuti pertemuan ini, mahasiswa dapat memahami arsitektur Hadoop Setelah mengikuti pertemuan ini, mahasiswa dapat memahami Ekosistem Hadoop dan Cara Kerja Hadoop
Definisi Hadoop Apache Hadoop adalah suatu framework yang memungkinkan pemrosesan data set besar pada kluster-kluster komputer secara terdistribusi dengan memanfaatkan model-model pemrograman sederhana
Hadoop dirancang untuk dapat dikembangkan (scale up) dari sebuah server hingga ribuan mesin, dimana tiap-tiap mesin tersebut menawarkan fitur komputasi dan penyimpanan secara lokal
Hadoop tidak bergantung pada hardware untuk memberikan tingkat ketersediaan yang tinggi (high availability) karena library Hadoop sendiri dirancang untuk mendeteksi dan menangani kegagalan (failure) pada layer aplikasi.
Hadoop bukanlah sebuah software, melainkan sebuah framework open source Apache yang dikembangkan menggunakan bahasa pemrograman Java, dan dapat digunakan untuk memproses data set yang besar menjadi komputasi terdistribusi yang lebih kecil
Pengguna Hadoop
Sejarah Doug Cutting
Mike Cafarella
Hadoop diciptakan oleh Doug Cutting dan Mike Cafarella pada tahun 2005 yang pada saat itu bekerja di Yahoo!
Timeline 2002
2003
2004
•Nutch project started
•Google publish GFS architecture paper
•Develop Nutch Distributed File System •Google publish MapReduce Paper
2006
2008
• Hadoop project started
• Hadoop became top level project in Apache • Hadoop broke the record the fastest system to sort terabytes of data
Hadoop dan Cloud Support Hadoop flavor Apache Hadoop (http://hadoop.apache.org) Cloudera – CDH (http://cloudera.com) Yahoo! Hadoop (https://developer.yahoo.com/hadoop/)
Cloud Support Amazon Elastic MapReduce (https://aws.amazon.com/elasticmapreduce/) Google Cloud Platform (https://cloud.google.com/solutions/hadoop/)
Arsitektur Hadoop 1.0 dan Hadoop 2.0
Komponen dalam Hadoop Hadoop Common : Java libraries yang dibutuhkan oleh modul-modul Hadoop lainnya Menyediakan file sistem yang digunakan untuk memulai Hadoop
Hadoop YARN : Platform untuk manajemen sumber daya (resource) Mengatur sumber daya komputasi dalam kluster, dan menggunakannya untuk penjadwalan aplikasi pengguna
Hadoop Distributed File System (HDFS) : Sistem file terdistribusi yang menyimpan data pada commodity machine Storage Engine Membagi/mendistribusi file pada node dalam cluster Komponen : Name node dan data node
Map/Reduce : Suatu model pemrograman yang digunakan untuk memproses data berskala besar secara paralel. Processing Engine Mendistribusikan proses pada node lain Komponen : Job tracker dan task tracker
Hadoop : Ciri Utama Affordable – bisa berjalan pada hardware ‘pasaran’ Reliable – tahan terhadap kegagalan hardware/software Scalability – hadoop bisa bertambah secara linear dengan menambahkan node baru dalam sistem
Cost-effective – Hadoop membawa komputasi paralel yang masif (berjumlah sangat besar) ke dalam suatu commodity server penghematan biaya penyimpanan per terabyte yang akan membuat pemodelan seluruh data menjadi lebih terjangkau (affordable)
Flexible – Hadoop bersifat schema-less, dan dapat mendukung berbagai tipe data, baik yang terstruktur atau tidak terstruktur, dari berbagai sumber. Fault-tolerant – ketika terjadi masalah dalam suatu node, maka sistem akan mengalihkan pekerjaan (work) ke lokasi lain dari data tersebut, kemudian melanjutkan pemrosesan.
Hadoop Ekosistem Hadoop dilengkapi dengan sebuah ekosistem yang berisikan proyek-proyek dari Apache, yang meningkatkan nilai serta kebergunaan dari Hadoop. Common – sekumpulan komponen dan interface untuk sistem file terdistribusi dan general I/O (serialization, Java RPC, persistent data structures).
Avro – sistem serialization untuk penyimpanan data yang efisien, crosslanguage RPC dan persistent. MapReduce – model pemrosesan data dan lingkungan eksekusi (execution environment) terdistribusi yang dapat berjalan dalam kluster-kluster besar dari suatu commodity machine.
HDFS – sistem file terdistribusi yang berjalan pada kluster-kluster besar dari suatu commodity machine. Pig – data flow language dan lingkungan eksekusi untuk menjelajahi (explore) data set yang sangat besar. Pig berjalan pada HDFS dan kluster-kluster MapReduce.
Hive – merupakan suatu data warehouse terdistribusi. o Hive mengatur data yang disimpan di HDFS serta menyediakan suatu bahasa query yang berbasis SQL (yang kemudian akan diterjemahkan ke dalam job-job MapReduce oleh runtime engine) untuk melakukan query data
HBase – suatu basis data yang terdistribusi dan column-oriented. o Hbase menggunakan HDFS untuk media penyimpanannya, serta mendukung baik komputasi berjenis batch menggunakan MapReduce, maupun point queries (random reads).
ZooKeeper : sebuah coordination service yang terdistribusi dan highly available. o ZooKeeper menyediakan fitur seperti kunci-kunci terdistribusi (distributed locks) yang dapat digunakan untuk membangun aplikasi-aplikasi terdistribusi
Sqoop – tool untuk transfer bulk data secara efisien antara data store yang terstruktur (seperti database relasional) dan HDFS. Oozie – service untuk menjalankan dan menjadwalkan workflow dari job-job Hadoop (termasuk job MapReduce, Pig, dan Hive).
Cara Kerja Hadoop Tahap 1 : Pengguna atau aplikasi dapat menyerahkan suatu job ke Hadoop (klien job Hadoop) dengan menspesifikasikan beberapa item, yaitu: Lokasi dari input dan output file yang ada dalam sistem file terdistribusi, Kelas-kelas java dalam bentuk jar yang berisikan implementasi dari fungsi-fungsi map dan reduce, Dan konfigurasi job, dengan mengatur parameter-parameter berbeda secara spesifik untuk suatu job.
Tahap 2 : Klien job Hadoop akan menyerahkan job (jar/executable) dan konfigurasinya ke JobTracker, kemudian mengasumsikan kewajiban untuk mendistribusikan software/ konfigurasi ke slave, menjadwalkan task dan memantaunya, serta menyediakan status dan informasi ke job-client
Tahap 3 : TaskTracker pada node yang berbeda akan mengeksekusi task per implementasi MapReduce, kemudian keluaran dari fungsi map reduce akan disimpan pada file output yang ada di sistem file.
Client job Map Reduce
Name Node
Job Tracker
Task tracker
Task Task
Task tracker
Task
Task
HDFS
Task tracker
Task
Task
Task
Task
Task
Data node
Data node
Data node
Server
Server
Server
Name Node dan Data Node Name Node Master dari HDFS (Hadoop Distributed File System) Mengatur Data Node Mengatur bgmana file dibagi dalam blok dan penyimpanannya Membagi job ke Data Node
Data Node Tempat blok disimpan Menerima instruksi dari Name Node
Job dan Task Tracker Job Tracker
Membagi task ke HDFS Cluster Melacak Map/Reduce tasks Restarts task yang gagal ke node lain Melakukan speculative execution
Task Tracker Melacak individual map/reduce Report kemajuan task ke Job Tracker
The Hadoop Way
Cloudera: CDH + Tableau Cloudera adalah salah satu kontributor aktif dari Hadoop Project yang menyediakan sebuah distribusi Hadoop open-source bernama CDH (Cloudera’s Distribution Hadoop). Sedangkan, Tableau sendiri merupakan salah satu perangkat lunak Business Intelligence (BI) yang sudah mendukung Cloudera Distribution (CDH) termasuk Apache Hadoop
Komponen CDH4
Relasi CDH4 dan Tableau
http://hadoop.apache.org http://hortonworks.com/
http://cloudera.com/
Hortonworks dan Ambari Hortonworks Data Platform (HDP) merupakan sebuah distribusi Hadoop dalam bentuk ‘packaged software’ Dengan memanfaatkan konsep dari arsitektur YARN, HDP menyediakan suatu platform data untuk pemrosesan data multiworkload, dan didukung oleh kemampuan yang dibutuhkan platform data untuk enterprise — spanning Governance, Security and Operations.
What Hadoop is Not ! Hadoop tidak cocok sebagai pengganti database Map Reduce tidak selalu menjadi algoritma terbaik Bukan tempat yang pas untuk belajar Java Hadoop cluster bukan tempat belajar Linux network administration Bukan tempat belajar memahami pesan error jaringan http://wiki.apache.org/hadoop/HadoopIsNot