Anda sudah melihat petunjuk instalasi Hadoop (Cloudera) di internet namun setelah mencoba-coba sendiri Anda menemukan proses tersebut tidak selancar apa yang disampaikan? Saya juga mengalami hal yang sama, namun setelah pengalaman instalasi beberapa kali, problem-problem tersebut muncul karena mengabaikan beberapa hal-hal kecil yang perlu dipersiapkan. Big Data Cloudera pada dasarnya distributed computing dimana beberapa server bekerja secara bersama untuk menyimpan dan mengolah data. Setiap server harus saling berkomunikasi dan saling sinkron, bahkan sampai ke detik jam server tersebut!
Installasi ini sedikit banyak juga berlaku buat OS lain seperti CentOS. Pemilihan saya menggunakan Ubuntu adalah karena kemudahan setting dan update OS-nya yang rutin setiap saat. Instalasi ini mengasumsikan minimal ada 3 node dimana satu node berfungsi sebagai Cloudera Server Manager, satu node untuk Namenode, dan satu node lagi untuk Datanode.
- Install Ubuntu dengan USB drive karena Anda akan menginstall pada banyak server / node. Dengan USB Drive kita juga dapat memperbanyak ke USB Drive yang lain sehingga installasi dapat dilakukan secara parallel.
- Konek ke internet dan lakukan update setelah installasi selesai.
- pada layar terminal lakukan sudo apt-get update dilanjutkan dengan sudo apt-get install
- Lakukan update pada menu system update (search update di start menu)
- Salah satu server harus bertindak sebagai ntp server untuk mensinkronkan jam setiap server. Pada server tersebut lakukan
- sudo apt-get install ntp.
- setelah terinsall stop terlebih dahulu sudo service ntp stop
- sync dengan ntp server seperti sudo ntpdate time.nist.gov
- start kembali ntp server sudo service ntp start
- Pada server lainnya nanti lakukan sudo ntpdate [server ntp tersebut]
- Install java dengan mendownload tarnya pada browser (bawaan Ubuntu adalah firefox). Misalnya jalankan sudo tar -xvf jdk-7u75-linux-x64.tar.gz pada folder /usr/lib/jvm. Hati-hati apabila anda sudah pernah memiliki installasi java sebelumnya karena jika demikian, anda harus pastikan Ubuntu memilih java yang mana untuk Cloudera. Ubah ranking dan akses level sesuai petunjuk di stackoverflow berikut.
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_75/bin/java" 1 sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0_75/bin/javac" 1 sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0_75/bin/javaws" 1 This will assign Oracle JDK a priority of 1, which means that installing other JDKs will replace it as the default. Be sure to use a higher priority if you want Oracle JDK to remain the default. Correct the file ownership and the permissions of the executables: sudo chmod a+x /usr/bin/java sudo chmod a+x /usr/bin/javac sudo chmod a+x /usr/bin/javaws sudo chown -R root:root /usr/lib/jvm/jdk1.7.0_75- Setting JAVA_HOME di /etc/environment dengan command sudo gedit /etc/environment kemudian tambahkan line JAVA_HOME="/usr/lib/jvm/jdk1.7.0_75/bin"
- install ssh-server karena cloudera server manager (satu server yang me-maintain semua node) harus bisa mengakses seluruh server yang lain.
- di semua node install sudo apt-get install openssh-server
- di cloudera manager server dan namenode server buat ssh key dengan command ssh-keygen -t rsa
- buat authorized keys untuk dengan command cat ~/.ssh/id_rsa.pub authorized_keys
- copy authorized_keys tersebut disemua node pada folder ~/.ssh/authorized_keys
- Install ethtool dengan command sudo apt-get install ethtool. Ethtool berguna untuk mengubah kecepatan ethernet card server. Perlu diperhatikan kalau Cloudera akan mereport error apabila ada kecepatan ethernet salah satu node tidak sama dengan yang lain. Kejadian ini bisa saja terjadi karena operational Big Data sangat berat di network, seringkali perangkat switch dan ethernet server down atau menurun kecepatannya dari 1Gbs ke 100Mbs. Untuk setting permanent tambahkan line post-up /sbin/ethtool -s $eth0 speed 1000 duplex full autoneg off
- Untuk datanode dan namenode di Server-Server tersebut gunakan harddisk yang terpisah dan tiap harddisk menggunakan satu mount sendiri. Apabila harddisk terbatas dan anda ingin harddisk yang terinstall OS juga berfungsi sebagai datanode/namenode, pastikan untuk menginstall quota. Fungsi quota untuk memastikan file datanode Anda membesar melebih kapasitas harddisk untuk OS sendiri.
- install quota dengan command sudo apt-get install quota
- buat quota di folder user seperti mkdir -p /usr/disk-img
- buat quota misalnya 230GB dengan command dd if=/dev/zero of=/usr/disk-img/disk-quota.ext3 count=450560000
- edit gedit /etc/fstab tambahkan /usr/disk-img/disk-quota.ext3 /dfs ext3 rw,loop,usrquota,grpquota 0 0
- Format quota yang sudah dibuat dengan command sudo mkfs -t ext3 -q /usr/disk-img/disk-quota.ext3 -F
- mount dengan command sudo mount /dfs
- Pada harddisk terpisah terutama yang ukurannya lebih dari 2GB gunakan format GPT. Kalau tidak, maksimum kapasitas yang terlihat hanyalah 2GB meskipun kapasitas Harddisk sendiri adalah 4GB. Cara berikut asumsinya Anda pakai harddisk 4GB yang didetect sebagai sbd pada Ubuntu
- sudo parted /dev/sdb
- mklabel gpt
- mkpart primary ext3 0GB 4000.8GB
- quit
- sudo mkfs.ext3 /dev/sdb1
- Hentikan automatic upgrade apabila semua proses diatas selesai. Perlu diperhatikan untuk menggunakan sistem operasi yang sama berikut versinya pada semua server. Automatic upgrade dapat dicegah dengan command sudo gedit /etc/update-manager/release-upgrades Prompt=never
Demikian, semoga Anda tidak menemukan error yang pernah saya alami.
No comments:
Post a Comment