Hadoop From Scratch

Terminologi bigdata semakin tidak asing bagi masyarakat umum Indonesia. Beberapa hari yang lalu seorang rekan di kantor bertanya kepada saya, “syid, bigdata itu apa sih?”. Rekan tersebut bertanya setelah membaca berita bahwa kepolisian Indonesia menggunakan teknologi bigdata.

Banyak sekali perusahaan yang membuat aplikasi bigdata saat ini. Dua tahun yang lalu saya pernah menulis tentang market segmen bigdata dimana hingga saat ini saya rasa masih cukup relevan. Bigdata semakin banyak digunakan terutama karena bigdata merupakan komponen dasar ragam teknologi yang sedang trend saat ini termasuk ranah artificial intelligence. Beragam teknologi mulai dari analisis data, bot, hingga IoT memiliki keterkaitan dengan bigdata. Namun pada umumnya para developer cenderung fokus pada layer aplikasi, bukan pada layer infrastruktur bigdata-nya itu sendiri.

Seperti yang pernah saya singgung sebelumnya, inti dari bigdata yang digunakan oleh masyarakat dunia saat ini adalah Hadoop. Sebuah aplikasi opensource yang dikembangkan berdasarkan teknologi Google. Hadoop pada dasarnya sebuah aplikasi yang dibangun menggunakan bahasa pemrograman Java dan dapat berjalan diatas platform atau sistem operasi apapun asalkan platform tersebut memiliki interpreter Java.

Akibat banyak dan kompleks-nya teknologi Hadoop bagi sebagian besar developer maka beberapa pihak membuat distro untuk Hadoop. Distro atau distribusi software ini filosofinya mirip bertahun-tahun lalu ketika Linux mulai dikenal oleh masyarakat. Linux sendiri intinya hanyalah berupa kernel sistem operasi, kernel tersebut kemudian dibungkus oleh beragam pihak agar lebih mudah dipergunakan dan didistribusikan dalam bentuk distro. Sehingga pada akhirnya munculah perusahaan seperti RedHat yang memposisikan diri sebagai kontributor utama pengembangan Linux serta aplikasi-aplikasi tambahan lainnya sehingga Linux dapat digunakan lebih mudah oleh developer-developer lain yang ingin mengembangkan aplikasi diatas Linux. Developer-developer ini mulai dari individu, perusahaan kecil, hingga perusahaan besar kelas dunia.

nixCraft: How to measure seniority of linux dev and users/sysadmin. What kind of linux user are you?

Ketika distro Linux bermunculan — dan juga akibat kultur opensource pada dunia Linux dimana setiap orang bisa membuat distro sendiri — mulai terjadi segmentasi user / sysadmin pengguna Linux. Pada level tertentu penggunaan distro bisa menjadi parameter pembanding keahlian seorang administrator. Misalnya, pada gambar diatas walaupun disampaikan dalam bentuk joke namun para user / sysadmin sepakat bahwa pengguna distro Gentoo memiliki kesempatan untuk memahami Linux lebih dalam dibandingkan pengguna distro Ubuntu. Tingkat kesulitan mulai dari instalasi serta proses maintain distro Gentoo menuntut penggunanya untuk memahami banyak hal hingga ke level terendah pada sebuah sistem komputer. Apalagi jika seseorang mampu membuat distro milik dia sendiri dengan menggunakan “Linux From Scratch”, tentunya pemahamannya akan sistem operasi berbasis Linux jauh lebih dalam lagi.

Setidaknya ada dua hal yang membuat orang rela bersusah payah menggunakan distro Linux seperti Gentoo: pertama adalah masalah fleksibilitas, dan yang kedua adalah masalah performa.

Fleksibilitas berarti sebagai pengguna ataupun system administrator kita tidak banyak dibatasi oleh sebuah distro. Kebutuhan setiap pihak berbeda-beda, semakin sulit sebuah distro justru membuat penggunanya lebih mudah melakukan beragam hal yang tidak konvensional atau umum. Bagi sebagian orang terutama developer yang ekstrem distro tersebut lebih disukai.

Alasan kedua adalah masalah performa. Semakin sulit sebuah distro maka semakin banyak paramter yang bisa di tune-up secara manual oleh penggunanya. Dengan demikian performa distro tersebut bisa lebih baik dibandingkan distro lain, ujung-ujungnya aplikasi yang berjalan diatas distro tersebut akan memiliki performa yang lebih baik.

Analogi yang sama bisa digunakan pada dunia bigdata / Hadoop. Hadoop itu sendiri bisa dibilang hanya terdiri dari 2 komponen besar: HDFS sebagai penyimpan data, dan YARN sebagai metode untuk mengakses data yang disimpan pada HDFS. Para developer aplikasi biasanya cenderung fokus pada level aplikasi saja, tidak mau ambil pusing memikirkan bagaimana Hadoop terinstalasi pada sebuah cluster. Fakta ini tidak asing karena memang itulah fokus pekerjaan para developer aplikasi. Namun bagi para sysadmin yang menyediakan lingkungan Hadoop beserta ekosistemnya wajib memahami detail parameter serta konfigurasi dasar Hadoop. Ada banyak sekali konfigurasi-konfigurasi penting pada Hadoop yang dapat digunakan untuk meningkatkan kinerja performa aplikasi. Ketika parameter Hadoop digabungkan dengan tune-up parameter sistem operasi beserta konfigurasi hardware yang tepat maka bisa dibayangkan betapa performa sebuah aplikasi seperti analisis data ataupun artificial intellgence akan meningkat drastis.

Seperti pada contoh distro Linux yang saya singgung diatas, memahami Hadoop dari tingkat dasar juga memberikan fleksibilitas untuk dapat menggunakan teknologi Hadoop pada beragam sistem operasi. Saya memiliki pengalaman dihadapkan pada kondisi harus melakukan instalasi Hadoop diatas platform Solaris karena didunia telekomunikasi beberapa tahun yang lalu Solaris menjadi primadona sistem operasi. Distro Hadoop saat ini seperti Cloudera memiliki keterbatasan instalasi diatas sistem operasi Linux, itu pun hanya distro Linux tertentu seperti RedHat / CentOS. Keterbatasan tersebut membuat saya tidak mungkin melakukan instalasi Hadoop dengan Cloudera diatas platform Solaris.

Namun dengan pemahaman mendasar bahwa Hadoop tidak lain adalah aplikasi berbasis Java maka dengan sedikit usaha dapat melakukan instalasi Hadoop diatas platform Solaris, alias melakukan instalasi Hadoop From Scratch. Proses tune-up juga dapat disesuaikan dengan platform yang tersedia. Proses otomasi dapat dilakukan dengan menggunakan shell scripting dan passwordless ssh. Dan ketika tampilan cantik dibutuhkan ala Cloudera Manager, bisa menggunakan Ruby+Sinatra+net-ssh sebagai resep dasar. Everything is possible. Dan reward dari semua itu adalah memiliki pemahaman yang jauh lebih dalam mengenai teknologi Hadoop dibandingkan hanya klak-klik tombol mouse saat instalasi Hadoop menggunakan distro yang sudah user-friendly. Tentunya ketika pada kesempatan berikutnya dihadapkan dengan distro semacam Cloudera kita akan lebih mudah melakukan ragam konfigurasi karena sudah berpengalaman melakukan konfigurasi level terendah.

Masih banyak kelebihan lain yang didapatkan ketika seseorang khususnya system administrator mempelajari Hadoop From Scratch. Perlu diingat bahwa teknologi Hadoop pada awalnya dibuat untuk berjalan diatas hardware yang tidak powerful. Kondisi tersebut banyak ditemukan pada beragam perusahaan yang memiliki hardware-hardware lama saat ini. Apabila sebuah perusahaan ingin mempergunakan kembali (reuse) hardware lama dengan menggunakan Hadoop maka pengetahuan tentang instalasi Hadoop tanpa bantuan distro mutlak diperlukan. Instalasi pada platform Solaris yang saya sebutkan diatas termasuk salah satu contohnya.

Jadi tunggu apa lagi? Apabila kamu seorang system administrator teknologi bigdata berbasis Hadoop, silahkan download source Hadoop dan coba lakukan instalasi manual dari awal. Banyak sekali pengetahuan yang akan didapatkan dan kemudian dapat diaplikasikan pada dunia nyata dimana aplikasi-aplikasi bigdata besar berjalan diatas Hadoop dengan performa lebih baik.

Like what you read? Give Muhammad Sahputra a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.