Big Data Kecil (Little Big Data)

bigdata1_699316668

Tulisan kali ini intinya adalah tentang efisiensi. Efisiensi baik dari sisi teknis maupun sisi ekonomis. Hal ini karena banyak yang mengira bahwa adopsi Big Data terutama dengan Hadoop harus secara keseluruhan. Semua komponen Hadoop diinstall untuk mendapatkan hasil maksimal. Memang solusi tersebut bisa dibilang solusi paling jitu dan efektif saat ini. Tetapi solusi tersebut tidak efisien pada kebanyakan kasus yang menyatakan mereka membutuhkan Big Data. Karena tidak semua komponen Hadoop dipergunakan. Bahkan komponen inti dari Hadoop seperti HDFS dan Map Reduce tak perlu digunakan tergantung dari data yang digunakan.

Lalu bagaimana kita menilai bahwa solusi itu cukup efektif dan efisien? Sesuai dengan tulisan sebelumnya tentang strategi implementasi big Data, yang pertama dilakukan adalah apa masalah yang ingin kita cari solusinya. Kedua data yang akan kita gunakan untuk mencari solusi. Di langkah kedua ini kuncinya. Jenis data yang menentukan apakah Big Data, dengan Hadoop, diperlukan adalah yang memiliki kriteria 3 V. Volume, Variety dan Velocity seperti di posting tentang definisi Big Data. Salah satu kriteria dari data itu tidak ada maka sebaiknya dicari solusi selain Hadoop yang lebih efisien.

Kalau ada argumen bahwa meskipun data yang ada sekarang belum memenuhi kriteria 3V diatas, tetapi ada kemungkinan ke depannya akan memenuhi syarat 3V diatas jadi sebaiknya dari sekarang mulai membangun infrastruktur Hadoop secara lengkap. Sah-sah aja kalau menginginkan seperti itu. Tetapi akan lebih baik jika memulai dari yang kecil dahulu lalu secara incremental sampai jika memang waktunya tiba baru Hadoop diimplementasi secara penuh.

Salah satu sifat yang saya sukai dari Hadoop dan komponen-komponennya adalah, kebanyakan bisa diimplementasikan terpisah. Dengan demikian memulai dengan yang paling diperlukan sekarang lalu mengembangkan infrastruktur secara incremental adalah langkah yang baik. Misalnya adalah HDFS, Map Reduce dan YARN yang menyusun komponen inti dari Hadoop. Sifat dari data yang 3V diatas memerlukan komponen inti mutlak diperlukan. Kalau streaming processing tidak diperlukan maka Apache Storm tidak perlu di implementasikan. Apache HBase untuk berjalan optimal di cluster membutuhkan HDFS jadi disarankan tidak menginstall Apache Hbase tanpa komponen inti Hadoop terinstall di cluster.

Strategi implementasi yang efisien untuk, paling tidak, efisiensi dalam migrasi dari data manajemen konvensional ke Big Data. Saya menyebutnya The Little Big Data atau Big Data kecil.

Pada umumnya, sistem konvensional, data diolah/dianalisis dengan sistem. Data tersebut berada di DBMS. Analisisnya bisa menggunakan analytic tool seperti Business intelligence dan sejenisnya. dalam strategi Little Big Data, yang pertama dilakukan adalah mencari komponen dari Hadoop yang bisa melakukan hal yang sama untuk sistem konvensional tersebut.

Pada tahap ini biasanya kondisi 3V belum terpenuhi. Data yang disimpan di DBMS pada sistem konvensional bisa saja jumlahnya besar, tetapi masih dalam bentuk terstruktur sehingga Variety tidak terpenuhi. Dengan demikian, HDFS sebagai inti storage dari Hadoop tidak diperlukan.

Selanjutnya adalah mencari data storage atau database NoSQL yang scalable dan tidak tergantung pada HDFS. Ada beberapa alternatif untuk hal ini yaitu Apache Cassandra, MongoDB, dll. Selain scalability, hal paling penting yang dipertimbangkan adalah interoperabilitynya dengan Hadoop. karena kemungkinan dimasa depan sistem ini harus memasukkan juga Hadoop (HDFS, MapReduce dan YARN).

Lalu menentukan processing system atau jenis sistem yang akan menganalisa dan memproses data. Untuk streaming dan realtime data bisa digunakan Apache Kafka dan Apache Storm yang bisa di deploy tanpa komponen inti Hadoop. Untuk Pemrosesan secara batch bisa digunakan aplikasi biasa yang menggunakan scheduler. Beberapa komponen Hadoop seperti Apache Mahout juga bisa digunakan dalam aplikasi batch ini yang jalan berdasarkan scheduler.

Untuk menambah kelebihan dari little big Data ini bisa ditambahkan Search Platform seperti Apache Solr atau ElasticSearch. Search platform ini bisa digunakan untuk user atau pengguna sistem Little Big Data ini atau digunakan untuk membantu pemrosesan data baik oleh Apache Storm atau Aplikasi batch proses.

Jika nanti data yang digunakan sudah memenuhi 3V komponen Hadoop lainnya bisa ditambahkan. Demikian tulisan ini dibuat untuk memberi petunjuk untuk efisiensi dalam mengadopsi dan mengimplementasi Big Data dengan strategi Little Big Data.

 

Persiapan Sebelum Setup/Instalasi Hadoop Cluster

cluter

Tulisan kali ini balik ke teknis Big Data Hadoop setelah dua tulisan sebelumnya lebih ke non teknis alias manajerial view dari Big Data. Tulisan ini berdasarkan pengalaman dalam menginstall Hadoop di cluster sendiri (bukan layanan cloud computing seperti rackspace, linode, ovh, dsb-nya). Meskipun demikian tidak ada perbedaan signifikan meskipun diterapkan di cluster dari layanan cloud computing.

Memang semua Hadoop Distribution mencantumkan dokumentasi yang berisi petunjuk untuk instalasi. Tetapi berdasarkan pengalaman petunjuk ini kurang lengkap. Ada beberapa hal yang tidak dicantumkan disana. tulisan berikut berniat untuk memberikan pemaparan yang lebih lengkap mengenai hal-hal yang perlu dipertimbangkan dan dikerjakan dalam rangka mempersiapkan cluster sebelum menginstall Hadoop. berikut langkah-langkahnya.

Persiapan infrastruktur tempat cluster berada. infrastruktur disini adalah segala sesuatu yang diperlukan oleh semua node di cluster untuk berjalan dan sudah pasti akan gagal tanpa adanya infrastruktur ini. Yang pertama sudah pasti adalah pasokan listrik. Memang terkesan remeh tetapi ini mutlak harus ada. Aliran listrik yang tiba-tiba mati bisa merusak seluruh cluster. Sistem operasi bisa corrupt dan akhirnya bukan cuma harus install ulang hadoop tetapi juga install ualng sistem operasi di semua node di dalam cluster. Yang kedua dari infrastruktur adalah koneksi internet dan jaringan yang bagus. Internet diperlukan untuk mendownload dan menginstall seluruh komponen Hadoop dan software yang diperlukan. Koneksi ini juga harus stabil sehingga tidak ada proses yang tiba-tiba terhenti dan gagal terinstall. Selain itu jaringan yang menghubungkan komputer kita (sebagi orang yang menginstall Hadoop) dan cluster juga harus bagus. Sehingga dalam proses instalasi tidak terputus yang bisa membuat instalasi gagal.

Spesifikasi hardware dari node dalam cluster. Beberapa Hadoop distributions tidak menyebutkan secara spesifik kriteria minimum hardware. Tetapi dari pengalaman ada beberapa spesifikasi minimum yang diperlukan supaya Hadoop bisa berjalan dengan baik untuk kelas cluster yang kecil. RAM untuk tiap node usahakan paling tidak 4GB. Semakin besar semakin baik, terutama untuk node-node yang merupakan node master misalnya namenode, HBase master dsb-nya. Spesifikasi untuk node-node master sebaiknya lebih tinggi daripada node slave. Prosesor minimal dual core dengan kecepatan paling tidak 2GHz. Kalau bisa quad Core atau misalnya intel Xeon lebih baik. HardDisk dengan kapasitas sebaiknya diatas 200GB karena Hadoop memang ditujukan untuk menangani data yang besar. Kalau kapasitas bisa sampai 1TB juga lebih bagus.

Spesifikasi sistem operasi dari node dalam cluster. Hadoop bisa diinstall di banyak jenis sistem operasi. Kebanyakan Hadoop di install di Linux dan Windows. Saya pribadi lebih menyarankan Linux karena selain itu gratis, opensource juga lebih tangguh. Linux yang sebaiknya digunakan adalah jenis Linux yang kualifikasi server dan bukan Linux Desktop, apalagi Linux Mobile. Contoh jenis Linux ini antara lain RedHat Enterprise Linux (RHEL), CentOS yang merupakan varian gratis/free dari RHEL, Ubuntu Server, dan SuSE Linux Enterprise Server (SLES). Pertimbangan berikutnya untuk memilih diantara Linux Server ini antara lain compability dengan komponen Hadoop terutama Apache Ambari. Apache Ambari adalah salah satu komponen Hadoop yang digunakan untuk instalasi, monitoring dan manajemen cluster Hadoop. Beberapa Hadoop Distribution memiliki komponen serupa untuk Apache Ambari misalnya Cloudera memiliki CDH Manager. Tetapi saya pribadi lebih memilih Ambari karena open source dan memang dikembangkan di Apache khusus untuk Hadoop. Untuk saat ini Apache Ambari baru bisa untuk RHEL, CentOS dan SLES. Ubuntu server belum disupport oleh Ambari.

Spesifikasi dari software dalam node dalam cluster. Software disini yang dimaksud adalah software bawaan dari sistem operasi tempat Hadoop diinstall. Ada beberapa jenis software yang harus ada dalam instalasi Hadoop:

  1. Package manager seperti Apt-get di ubuntu, yum di RHEL/CentOS dan Zypper di SLES.
  2. Download manager seperti wget.
  3. Python. Usahakan versi dari python ini adalah 2.7 atau minimal 2.6.8. Hal in  karena nanti ada komponen Hadoop yang memerlukan python minimal versi 2.6.8. Untuk Linux yang python bawaannya adalah 2.6.6 atau sebelumnya, berhati-hatilah dalam menginstall / upgrade ke versi python yang lebih tinggi karena bisa merusak sistem Linux itu sendiri jika tidak dilakukan dengan hati-hati. Ikuti petunjuk yang biasanya ada di manual atau forum Linux tersebut.
  4. Network Time Protocol. Ini adalah komponen yang lazim ditemukan dan diperlukan pada aplikasi-aplikasi paralel processing pada cluster.
  5. Java. Sebaiknya gunakan versi minimal Java 1.7. kalau menggunakan Ambari dalam menginstall Hadoop, maka proses instalasi Java sudah termasuk. Karena itu saya merekomendasikan untuk menggunakan Apache Ambari.

Pemilihan Hadoop Distributions dan metode instalasi. Seperti tulisan sebelumnya mengenai Hadoop Distribution, sebaiknya kita memilih Hadoop Distribution daripada menginstall sendiri semua komponen Hadoop satu-persatu. Ada beberapa pilihan Hadoop Distribution seperti pada tulisan diatas. Dari hasil survey saya, ada dua Hadoop Distribution yang simple dan tidak terlalu membingungkan dengan pilihan-pilihan instalasi, yaitu Cloudera dan Hortonworks. Tetapi silakan saja jika memang lebih nyaman memakai MapR. Untuk Cloudera saya gagal menginstallnya. Entah kenapa CDH Manager berhenti menginstall dan akhirnya gagal. Kemungkinan karena infrastruktur internet yang kurang stabil. Akhirnya pilihan jatuh ke Hortonworks dengan menggunakan Apache Ambari. Apapun pilihan Hadoop Distributionnya pastikan, dokumentasinya engkap dan forum serta supportnya membantu. Karena cepat atau lambat pasti akan ada masalah dengan hadoop Anda. Dan memiliki dokumentasi yang lengkap serta forum yang responsif akan sangat membantu mengatasi masalah tersebut.

Setelah semua langkah tersebut dilakukan, silakan membaca manual instalasi Hadoop dari Hadoop Distribution pilihan Anda. Alokasikan waktu yang cukup karena instalasi Hadoop di cluster membutuhkan waktu yang cukup banyak minimal 2 jam (seringkali lebih dari dua jam bisa sekitar 8 jam). Dan bisa lebih lama jika clusternya besar atau koneksi internet yang gak bagus sehingga harus berkali-kali download ulang. Setiap ada masalah atau error jangan langsung buru-buru melakukan undo / menghapus semua yang telah Anda lakukan. Coba cari solusinya dahulu di internet karena seringkali solusi untuk masalah itu jauh lebih simple daripada harus mengulang semua langkah isntalasi yang telah Anda lakukan.

Semoga tulisan ini membantu. Happy Hadoop-ing 🙂

Data Analyst dan Data Scientist

data_scientist

Gambar diambil dari edureka.co

 

Seiring kian populernya Big Data ada satu jenis pekerjaan lagi yang mulai populer yaitu Data Scientist. Apa pula pekerjaan baru ini? Dan apa bedanya dengan data analyst?

Ada beberapa yang menyatakan keduanya adalah sama. ada juga yang mengatakan bahwa Data Scientist adalah data Analyst yang tinggal dan bekerja di Amerika. Karena menurut mereka kedua profesi ini sama saja. Tapi karena profesi ini muncul baru akhir-akhir ini ketika Big Data keluar maka saya pribadi menyatakan kedua profesi ini berbeda walaupun bisa saja satu orang memiliki kedua kemampuan sebagi Data Analyst sekaligus Data Scientist.

Ada beberapa pendapat yang mendukung pendapat saya ini. Berikut ringkasan yang saya dapat mengenai perbedaan kedua profesi ini.

Data analyst atau juga kadang disebut Business Data Analyst adalah profesi yang mengamati data, mencari pola dari data tersebut yang menunjukkan kondisi dari suatu perusahaan. Pada umumnya data analyst menggunakan data yang dihasilkan dari aplikasi Business Intelligence (BI). Data analyst memiliki kemampuan mendalam di bidang bisnis yang digeluti oleh perusahaan tersebut. Dengan kemampuannya tersebut maka pola dari data yang diterima oleh aplikasi seperti BI bisa di visualisasikan. Pola-pola data ini pada umumnya bersifat umum yang banyak dialami oleh perusahaan yang sejenis.

Data analyst sudah sering kita kenal jauh sebelum teknologi Big Data. Semua aplikasi business intelligence, data mining dan data warehouse membutuhkan data analyst untuk menterjemahkan data. Data tersebut perlu di terjemahkan ke dalam kalimat yang dipahami oleh level top management. Sehingga diketahui misalnya apakah penjualan naik / turun berapa persen dan sebagainya tergantung dari jenis data yang dihasilkan.

Sekarang tentang Data Scientist sendiri itu apa? Data scientist sesuai dengan namanaya adalah seorang scientist atau ilmuwan. Seperti layaknya ilmuwan, data scientist melakukan experimen-experimen untuk menemukan hal-hal baru yang nantinya bermanfaat untuk perusahaan. hal-hal baru ini bisa jadi merupakan pola-pola yang tidak umum terjadi atau tidak umum diketahui oleh perusahaan sejenis. Dengan menemukan pola-pola baru inilah, perusahaan bisa mendapatkan keuntungan daripada kompetitor mereka. Seringkali, kemenangan dalam persaingan bisnis ditentukan oleh kemampuan data scientist yang menganalisa data tersebut. Contoh pola yang dicari data scientist misalnya pola atau model rekomendasi item yang biasa digunakan di web site e-commerce seperti Amazon atau misalnya seperti di Netflix. Pola atau model rekomendasi ini meskipun namanya sama tentunya berbeda dari satu perusahaan ke perusahaan lainnya karena karakteristik konsumennya, jenis barang yang ditawarkan dsb-nya. selain itu

Data scientist diperlukan untuk menganalisa data dalam jumlah banyak yang terdapat dalam sistem Big Data. Seorang Data Scientist harus memiliki kemampuan di tiga bidang. Pertama adalah kemampuan tentang business logic di bidang yang digeluti oleh perusahaan yang sedang dia tangani, seperti halnya data analyst. Kedua adalah kemampuan statistika dan matematika yang cukup untuk mengetahui pola-pola data berikut dengan algortimanya. Ketiga adalah kemampuan menggunakan tools dari sistem Big Data yang membantunya dalam mengolah dan menganalisis data seperti misalnya aplikasi Machine Learning Apache Mahout dan Apache Spark.

Banyak perusahaan yang sekarang mencari Data Scientist ini. Karena sehebat apapun infrastruktur Big Data yang dimiliki, tanpa kehadiran Data Scientist akan menjadi sia-sia atau tidak maksimal. Semoga tulisan ini membantu.