Socialabel

Saturday, December 21, 2013

Menghentikan multithreading yang running dengan waktu tertentu

Menghentikan sebuah thread yang sedang running selama waktu tertentu dengan memanfaatkan module multiprocessing

Kode: thread.py
 #!/usr/bin/env python  
 import multiprocessing  
 import time  

 def get_page(*args, **kwargs):  
   print "Data "  
   if args[0]=="A":  
     time.sleep(2)  
   elif args[0]=="B":  
     time.sleep(5)  
   else:  
     time.sleep(10)  
   print "Nilai ->", args  

 def start_get_page(timeout, *args, **kwargs):  
   p = multiprocessing.Process(target=get_page, args=args, kwargs=kwargs)  
   p.start()  
   p.join(timeout)  
   if p.is_alive():  
     # stop the downloading 'thread'  
     p.terminate()  
     # and then do any post-error processing here  
   print "End"  

 if __name__ == "__main__":  
   start_get_page(4,"A","A")  
   start_get_page(4,"B","B")  
   start_get_page(12,"C","C")  

Sumber : Klik
Keyword: thread, multithreading, python, matikan, hentikan, stop, threading, tesis, seo, python menghentikan thread yang running berdasarkan waktu, lama waktu, durasi waktu python

Friday, December 20, 2013

Cross Global Variabel pada Multi File Python

File: file1.py
 #!/usr/bin/env python  
 a=''  
 def test():  
   global a  
   print "Pada Module File1"  
   print "Ini Nilai A: %s \n" %a  

File: file2.py
 #!/usr/bin/env python  
 import file1  
 file1.a="Data1"  
 file1.test()  
 print "Pada Module File2"  

Output: Eksekusi
 hery@ino2Er:~> python file2.py  
 Pada Module File1  
 Ini Nilai A: Data1   
 Pada Module File2  

Keyword: python, seo, multi, cross, file, module

Thursday, December 12, 2013

Parsing HTML, JSS, CSS, dan Quote Python

Kode parsing HTML JSS, CSS, dan Komentar

 def ParsingHtmlManual(finaltext):  
   finaltext=contohweb.split()  
   finaltext=' '.join(finaltext)  
   finaltext = re.sub(r'<script.*?/script>','', finaltext)  
   finaltext = re.sub('<style.*?/style>', '', finaltext)  
   finaltext = re.sub('<!--.*?-->', '', finaltext)  
   finaltext = re.sub('<.*?>', '', finaltext)  
   return finaltext  

Keyword:parsing, seo, html, jss, css, html

Sunday, November 17, 2013

Mikrotik Hanya Memperbolehkan IP DHCP Sebagai Host yang konek ke internet

  1. Interface
    1. Kemudian double klik interface LAN yang digunakan sebagai interface DHCP
    2. Pilih Replay-Only pada label ARP
  2. IP DHCP Server
    1. Klik IP–>DHCP Server
    2. edit DHCP
    3. Check “Add ARP for leases” pada opsi check
  3. Untuk menambahkan IP Static agar bisa di ijinkan oleh mikrotik dengan cara menambahkan ARP static
    1. Klik IP
    2. ARP
    3. Dan tambahkan secara manual
  4. Selesai

Sunday, November 10, 2013

Menghitung Durasi Timer Proses Python

Menghitung sebuah proses dari python dapat digunakan algorimat sebgai berikut:
 Start_Time  
     Proses:  
 Stop_Time  
 Durasi=Stop_Time - Start_Time

Code:
 import urllib2  
 import time  
 awal = time.time()  
 response = urllib2.urlopen('http://zipruz.com')  
 response.close()  
 akhir = time.time()  
 print "Total Waktu Proses ", akhir- awal, " Detik."  

Output:
 Total Waktu Proses 1.34128689766 Detik.  
Keyword: tesis, seo, timer, time, durasi

Friday, November 8, 2013

Konversi Qimage ke IplImage dan Iplimage ke Qimage

Cara konversi dari iplimage ke Qimage dan juga Cara konversi Qimage ke Iplimage pada openCV belum tersedia sehingga user harus mendefinisikan sendiri fungsi untuk melakukan konversi tersebut pada module yang digunakan, pada NamaModuleQt.h (ilustrasi) tambahkan baris berikut ini:
 IplImage* Qimage_Ke_IplImage(QImage *gambarQImage)  
 QImage* IplImage_ke_QImage(IplImage *gambarIPL)   

Selanjutnya pada NamaModuleQt.cpp tambahkan baris berikut ini:
 IplImage* NamaModuleQt::Qimage_Ke_IplImage(QImage *gambarQImage)  
 {  
   IplImage* gambarIPL;  
   //Ini Menggunakan Satu Channel  
   if(gambarQImage->isGrayscale())  
   {  
     gambarIPL = cvCreateImageHeader( cvSize(gambarQImage->width(), gambarQImage->height()), IPL_DEPTH_8U, 1);  
   }  
   else //Ini Menggunakan jika 3 Channel RGB  
   {  
     gambarIPL = cvCreateImageHeader( cvSize(gambarQImage->width(), gambarQImage->height()), IPL_DEPTH_8U, 3);  
   }  
   gambarIPL->imageData = (char*) gambarQImage->bits();  
   uchar* Databaru = (uchar*) malloc(sizeof(uchar) * gambarQImage->byteCount());  
   memcpy(Databaru, gambarQImage->bits(), gambarQImage->byteCount());  
   gambarIPL->imageData = (char*) Databaru;  
   return gambarIPL;  
 }  

Thursday, November 7, 2013

Konversi Qstring ke Const Char

/home/Hery/Iris_keren/src/ui/mainview.cpp:259: error: cannot convert 'QString' to 'const char*' for argument '1' to 'IplImage* cvLoadImage(const char*, int)'

Konversi tipe data Qstring pada Qt ke Const Char standar pada C, salah satu cara pada Qt Creator sebagai berikut:

 Qstring fullFileName="/home/Hery/Iris_keren/iris.bmp"  
 const char* nama=fullFileName.toStdString().c_str();  
 IplImage* ok=cvLoadImage(nama);  

Keyword:openCV, konversi, convert, const char, Qstring, kuliah Biometrik

Tuesday, November 5, 2013

Menggunakan Authentikasi Cookies Wget

Wget merupakan sebuah tool download manager mode CLI yang powerfull (menurut saya), walaupun masi memiliki cita rasa klasik :p, bahkan karena klasiknya bikin ribet jika mendownload file yang membutuhkan authentikasi untuk akses read file tersebut.

Namun wget juga memiliki opsi untuk mengatasi permasalahan tersebut, dengan menggunakan opsi cookies. Terlebih dahulu silahkan melakukan auth pada web login server yang akan di download.

(Test pada openSUSE)

Step 1:
wget --cookies=on --keep-session-cookies  --save-cookies cookies.txt --post-data 'user=hery&passwd=ok' http://zipruz.com/login.php

user      = nama field input text
passwd = nama field input password

Kemudian load cookies tersebut kedalam wget agar dapat memiliki akses download pada file yang di server tersebut.

Step 2:
wget --load-cookies cookies.txt -p http://zipruz.com/file/download.iso 
Namun terkadang pada Step 1 gagal untuk  mendapatkan cookies akibat dari adanya captcha pada web, sehingga authentikasi untuk mode console tidak bisa dilakukan, silahkan pakai alternatif dengan menggunakan browser GUI seperti mozilla dan ekspor cookies pada browser tersebut (terlebih dahulu silahkan login). selanjutnya silahkan lakukan lagi Step 2. semoga berhasil

Download Export Cookies Mozilla

Keyword: opensuse, wget, cookies, firefox, download

Sunday, November 3, 2013

MPI: Pemrograman Paralel


Sebelum memulai pemrograman paralel pada linux opensuse, silahkan install dulu librari dan aplikasi mpi pada mesin yang digunakan, asumsi penulis menggunakan paket manager dari zypper,
 #zypper install openmpi openmpi-devel mpich mpich-devel mpi-selector  


setelah proses download dan installasi paket selesai pastikan pada direktori  "/usr/lib/mpi" terdapat folder gcc, dan "/usr/lib/mpi/gcc/openmpi/bin/" ada file mpicc dan mpiexec

mpicc digunakan untuk mengkompilasi source code pemrograman paralel dalam bahasa C  ke code binari.mpexec digunakan untuk mengeksekusi code biner dari pemrograman paralel agar dapat dijalankan oleh komputer

Keterangan Paket:
openmpi - A powerful implementaion of MPI
Open MPI is a project combining technologies and resources from several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best MPI library available. This RPM contains all the tools necessary to compile, link, and run Open MPI jobs.

openmpi-devel - A powerful implementaion of MPI
Open MPI is a project combining technologies and resources from several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best MPI library available. This RPM contains all the tools necessary to compile, link, and run Open MPI jobs.

mpich - A Portable Implementation of MPI
MPICH is a freely available, portable implementation of MPI, the standard for message-passing libraries.

mpich-devel - A Portable Implementation of MPI
MPICH is a freely available, portable implementation of MPI, the Standard for message-passing libraries. This package contains manpages, headers and libraries needed for developing MPI applications

mpi-selector - Tool to provide defaults for which MPI implementation to use
A simple tool that allows system administrators to set a site-wide default for which MPI implementation is to be used, but also allow users to set their own defaults MPI implementation, thereby overriding the site-wide default. The default can be changed easily via the mpi-selector command -- editing of shell startup files is not required.


keyword: mpi, openmpi indonesia, pemrograman paralel, HPC

Tuesday, October 22, 2013

HTML character codes

Code   Entity         Hex Character Description
------ -------------- --- --------- -----------------------------------
 &#00;                              Unused
 &#01;                %01           Unused
 &#02;                %02           Unused
 &#03;                %03           Unused
 &#04;                %04           Unused
 &#05;                %05           Unused
 &#06;                %06           Unused
 &#07;                %07           Unused
 &#08;                %08           Unused
 &#09;                %09           Horizontal tab
 &#10;                %0A           Line feed
 &#11;                %0B           Unused
 &#12;                %0C           Unused
 &#13;                %0D           Carriage return
 &#14;                %0E           Unused
 &#15;                %0F           Unused
 &#16;                %10           Unused
 &#17;                %11           Unused
 &#18;                %12           Unused
 &#19;                %13           Unused
 &#20;                %14           Unused
 &#21;                %15           Unused
 &#22;                %16           Unused
 &#23;                %17           Unused
 &#24;                %18           Unused
 &#25;                %19           Unused
 &#26;                %1A           Unused
 &#27;                %1B           Unused
 &#28;                %1C           Unused
 &#29;                %1D           Unused
 &#30;                %1E           Unused
 &#31;                %1F           Unused
 &#32;                %20           Space

Parsing hasil query Search Engine Yahoo

Parsing hasil query Search Engine Yahoo

 import urllib2  
 import re  
 from BeautifulSoup import BeautifulSoup  

 opener = urllib2.build_opener()  
 opener.addheaders = [('User-agent', 'Mozilla/5.0 (X11; Linux i686; rv:19.0) Gecko/20100101 Firefox/19.0')]  

 query="menjadi pribadi yang terbaik"  
 query=query.replace(' ','+')  
 #url = "http://www.google.com/search?q="  # ok bisa  
 #url = "http://www.bing.com/search?q="    # ok bisa  
 #url = "http://www.ask.com/web?q="        # ok bisa  
 url = "http://search.yahoo.com/search?p=" # ok bisa  
 urlfull=url+query  

 page = opener.open(urlfull)  
 soup = BeautifulSoup(page)  

 ###yahoo, Only  
 for tag in soup.findAll('a', id=True):  
     haha= tag.get('href')  
     ok=haha.split('**')  
     if len(ok)>1:  
       print ok[1].replace("%3a",":")  
Keyword: parsing, yahoo, query, search engine, python

Monday, October 21, 2013

[Solved] TypeError: expected string or buffer

Python Craw Engine
 import requests  
 from bs4 import BeautifulSoup  
 query = "Kata Kunci"  
 url = "http://www.google.com/search?q=%s"  
 respon = requests.get(url % query)  
 soup = BeautifulSoup(respon)  

Compile Error!!
  bla bal bal bal bal bal bal .....................
  File "/usr/lib/python2.7/site-packages/bs4/dammit.py", line 203, in __init__  
   self._detectEncoding(markup, is_html)  
  File "/usr/lib/python2.7/site-packages/bs4/dammit.py", line 373, in _detectEncoding  
   xml_encoding_match = xml_encoding_re.match(xml_data)  
 TypeError: expected string or buffer  

Ganti menjadi
 import requests  
 from bs4 import BeautifulSoup  
 query = "Kata Kunci"  
 url = "http://www.google.com/search?q=%s"  
 respon = requests.get(url % query)  
 soup = BeautifulSoup(respon.content)  #  BeautifulSoup(respon.text)

 print soup

Keyword: SEO, Search Engine, Python, Expected String or buffer

Sunday, October 20, 2013

Remove Tag Html Python

Menghapus Tag Html dengan Regex

 import re  
 re.sub('<[^<]+?>', '', text)  

Keyword: hapus, tag, html, remove

Saturday, October 19, 2013

Multimedia Pack Portable untuk openSUse 12.3 [offline]

Pada postingan sebelumnya tentang codec audio-video pada opensuse, pada postingan tersebut codec yang digunakan diperoleh secara on line dari server repositori, bagi koneksi internet belum memadai tentu menjadi kendala tersendiri apalagi server repositori codec tersebut juga tidak memiliki akses internet yang kencang.

Untuk mengatasi kejenuhan dalam menginstall codec, user dappat menggunakan MMP codec yang dapat digunakan/diinstall secara offline. terlebih dahulu silahkan di download ke komputer lokal.

Selanjutnya Ekstrak file arsip tersebut di derektori yang bisa di tulis kemudian, gunakan software manager seperti RPM untuk menginstall codec-codec yang dibutuhkan dengan catatan setiap depedensi dari codec telah terinstall lebih dahulu.

Namun jika tidak mau dipusingkan dengan depedensi dari codec dapat menggunakan Yast, buka yast dan tambahkan direktori tersebut sebagai repo lokal bagi opensuse

Install Hadoop Pada Kluster Komputer


Untuk Instalasi Hadoop pada kluster dilakukan pada sistem operasi Linux OpenSuse 12.3. Software-software supporter yang diperlukan untuk instalasi Hadoop adalah
1. Java (JRE/JDK)
2. Framework Hadoop (Hadoop 1.2.0)
3. SSH

[Lakukan Pada semua host]
[Master/Node1/Node2/Node3/Node4].

Tahapan pertama silahkan konfigurasi jaringan, pastikan semua host sudah saling terhubung, silahkan gunakan aplikasi ping sebagai tester. jika ada respon dari host tujuan tahap pertama selesai, jika tidak silahkan cek konfigurasi fisik dan logik serta firewall.

Asumsi network yang saya gunakan adalah 192.168.10.0/24 dengan rincian sebagai berikut
 1. master : 192.168.10.2/24  
 2. node1  : 192.168.10.10/24  
 3. node2  : 192.168.10.11/24  
 4. node3  : 192.168.10.12/24  
 5. node4  : 192.168.10.13/24  


Silahkan edit file hosts (root level) pada masing-masing host dengan kriteria sebagai berikut:
 master:/home/Hery # vim /etc/hosts  
 ########### /etc/hosts #############  
 192.168.10.1  master  
 192.168.10.10 node1  
 192.168.10.11 node2  
 192.168.10.12 node3  
 192.168.10.13 node4  

Jika sudah reboot semua komputer master hingga node4, agar konfigurasi hosts file dapat diload kembali.

Friday, October 18, 2013

Hadoop Mode

Dalam pengoperasian sebuah engine hadoop ada beberapa mode yang dapat digunakan untuk memeksplorasi kemampuan dari tools tersebut. Secara umum ada 2 mode yaitu local dan distributed. Namun banyak yang berpendapat dengan membagi mode tersebut menjadi 3 dimana terdapat metode tambahan yang merupakan middle dari 2 metode dasar.

1. Standalone (local) mode:
Mode ini adalah default ketika hadoop pertama kali di ekstrak dan dijalankan tanpa melakukan konfigurasi apapun. FNameNode, DataNode, JobTracker dan TaskTracker berjalan pada proses tunggal file java yang diekseskusi.

2. Pseudo-distributed (middle) mode:
Mode ini adalah mode dimana hadoop telah dilakukan konfigurasi dengan menerapkan beberapa opsi namun tetap menggunakan single host dengan menerapkan mini cluster.

3. Fully distributed mode :
Mode ini adalah mode dimana hadoop berinsteraksi dengan banyak host dalam memproses data, dengan menggunakan JobTracker dan TaskTracker yang berjalan dibanyak komputer.

Saturday, October 12, 2013

Codec Multimedia OpenSuse 12.3

Ketika pertama kali menginstall linux openSuse, biasanya file audio-video tidak dapat diputar melalui media player, karena distribusi linux tersebut tidak menyediakan codec untuk file-file multimedia yang umum digunakan pada file audio-video untuk didistribusikan, hal ini terjadi karena idealisme egois pengembang openSuse dan kendala lisensi yang menaungi codec tersebut.

Sehingga perlu dibutuhkan codec dari pihak ketiga, silahkan  download file *.ymp di attach dibawah tulisan ini dan buka dengan Yast-1 Click,

Ilustrasi seperti pada gambar dibawah ini:


Add repo dan Install Codec


Download Codec OpenSUSE


Delay pada Qt: sleep, msleep, dan usleep

Dalam berbagai teknik pemrograman, peran dari sebuah delay sangat banyak dalam algoritma sekuensial ataupun paralel. Delay dalam artian menunda beberapa saat (satuan waktu) sebuah proses yang akan dilakukan oleh program komputer. 

Secara khusus penulis belum menemukan sebuah class pada Qt untuk memanggil metod delay, sehingga user perlu membuat class tersebut secara manual yang selanjutnya dapat disisipkan kedalam threat ataupun iterasi biasanya.

 #include <QtCore/QCoreApplication>  
 #include <QtDebug>  
 #include <QThread>  

 class SleepProses : public QThread
 {  
    Q_OBJECT  
    void run (){}  
    
    public :  
    static void usleep(long delay1)
    {  QThread::usleep(delay1); }  
    static void msleep(long delay1)
    {  QThread::msleep(delay1);  }      
    static void sleep(long delay1)
    {  QThread::sleep(delay1);  }  
 };  

 int main(int argc, char *argv[])  
 {  
    QCoreApplication a(argc, argv);  
    for(int i=0;i<10;i++)  
    {  
       qDebug()<<"Counter test ke-"<<i;  
       SleepProses::sleep(2);  
       //SleepProses::msleep(1);  
       //SleepProses::usleep(1);  
    }  
    return a.exec();  
 }  

Tuesday, October 8, 2013

Inisialisasi Matrix Gambar: cvZero dan cvSet

Dalam rekayasa sebuah gambar, sangat penting untuk melakukan inisialisasi sebuah matrix citra yang baru terbentuk. Salah satunya adalah untuk merekontruksi citra ke dalam citra yg lain.

Ada 2 cara yang biasa penulis lakukan yaitu dengan menggunakan cvZero dan cvSet,

Example:
 cvZero(calonGambar) //R=0 G=0 B=0  

 //cvSet(calonGambar, cvScalar(R,G,B));  
 cvSet(calonGambar, cvScalar(0,0,0));  

Perbedaannya mendasar dari metod tersebut adalah cvZero hanya punya akses untuk membuat sebuah matrix citra menjadi bernilai R=0, G=0, B=0 sedangkan cvSet dapat diatur nilai dari matrix citra tersebut.

Saturday, October 5, 2013

Set Multiple Inputs Hadoop Map Job

Pada mapreduce job disedikan 2 metode untuk memberikan inputan kepada program map, yaitu single input dan multiple input. Single input digunakan ketika sebuah program hanya membutuhkan 1 inputan baik itu folder/file. Sedangkan multiple input adalah program disetting menerima beberapa folder/file dalam prosesnya.

Dasar Input path pada Hadoop Map Job
Example Single input:
 FileInputFormat.addInputPath(job, InputPath);  

Multiple Input File/Folder pada Hadoop Map Job
Example Multiple Input:
 Path masukanPertama = new Path(args[1]);  
 Path masukanKedua = new Path(args[2]);  
 Path keluaran = new Path(args[3]);  
 MultipleInputs.addInputPath(job, masukanPertama, TextInputFormat.class, Mapper1.class);  
 MultipleInputs.addInputPath(job, masukanKedua, TextInputFormat.class, Mapper2.class);  
 FileOutputFormat.setOutputPath(job, keluaran);  

Tuesday, October 1, 2013

Set ROI openCV

Pada komputer vision, adakalahnya ketika ingin mengkluster sebuah objek dibutuhkan ROI (Region of Interest), dengan ROI pekerjaan pemrosesan citra/video menjadi lebih ringan dan komputasi lebih singkat. RoI sering penulis gunakanpada proses segmentasi, contoh sederhana dalam membuat roi secara manual.

 #include <QtCore/QCoreApplication>  
 #include<stdio.h>  
 #include<opencv/cv.h>  
 #include<opencv/highgui.h>  
 #include<math.h>  
 int main(int argc, char *argv[])  
 {  
   cv::Mat imageROI, gambar;  
   char *gbr="/windows/D/[X]~BIOMETRIK/iris.jpg";  
   gambar=cv::imread(gbr);  
   cv::imshow("Gambar", gambar);  
   //cv::Rect roi=cv::Rect(x,y,w,h);  
   cv::Rect roi=cv::Rect(100,200,300,300);  
   imageROI=gambar(roi);  
   cv::imshow("ROI",imageROI);  
   cvWaitKey(0);  
   return 0;  
 }  

Walaupun code diatas RoI secara manual, dengan pengembangan code lebih lanjut, RoI dapat dibuat secara otomatis  dengan mendeteksi objek-objek tertentu pada citra/video.

Saturday, September 7, 2013

Filename Pada Proses Map Hadoop

Untuk mendapatkan sebuah informasi file yang tengah di proses oleh Hadoop khusunya pada saat proses map pada MapReduce, pengguna dapat menambahkan baris code berikut pada class Map di program java.

  FileSplit infofile = (FileSplit)reporter.getInputSplit();  

Beberapa contoh penggunaan

 String namafile = infofile.getPath().getName();  
 String fullpath= infofile.getPath().toString();   

Saturday, August 24, 2013

Java Show List Directory Hadoop HDFS

Untuk melihat isi dari sebuah direktori padah HDFS dapat digunakan listen program sbg berikut

 package hery.its.tesis.bigdata.ls;  
   
 import org.apache.hadoop.fs.*;  
 import org.apache.hadoop.conf.*;  
   
 public class liatDirektori{  
     public static void main (String [] args) throws Exception  
     {      
            //Membuat Koneksi ke HDFS  
            Configuration konfigurasi = new Configuration();  
            konfigurasi.set("fs.default.name","hdfs://master:54310/");  
            FileSystem dfs = FileSystem.get(konfigurasi);  
            
            //list direktori HDFS
            FileStatus[] status = dfs.listStatus(new Path("/user/hduser/"));                     
            for(int i=0;i<status.length;i++)
            {
                  System.out.println(status[i].getPath());            
            } 
     }  
 }  

yang terpenting adalah remote HDFS sesuaikann dengan port pada node master masing-masing

Java Code Hadoop Copy File dari HDFS ke Local Hardisk

Lanjutan dari HDFS yang berhubungan dengan sistem berkas, coding dibawah ini merupakan listen java yang berfungsi untuk mengkopi file dari HDFS ke lokal hardisk

 package hery.its.tesis.bigdata.copytolokal;  
   
 import org.apache.hadoop.fs.*;  
 import org.apache.hadoop.conf.*;  
   
 public class CopyHadoop2{  
     public static void main (String [] args) throws Exception  
     {      
            //Membuat Koneksi ke HDFS  
            Configuration konfigurasi = new Configuration();  
            konfigurasi.set("fs.default.name","hdfs://master:54310/");  
            FileSystem dfs = FileSystem.get(konfigurasi);  
              
            //Salin file dari HDFS ke Local Hardisk
            Path src = new Path(dfs.getWorkingDirectory()+"/a");
            Path dst = new Path("/tmp/tmp/a.lokal");
            dfs.copyToLocalFile(src, dst);
            System.out.println("Mengkopi file HDFS "+src+" Ke "+dst);
     }  
 }  

yang terpenting adalah remote HDFS sesuaikann dengan port pada node master masing-masing

Java Hadoop Copy File Local Hardisk ke HDFS

Lanjutan dari HDFS yang berhubungan dengan sistem berkas, coding dibawah ini merupakan listen java yang berfungsi untuk mengkopi file dari  lokal hardisk ke HDFS

 package hery.its.tesis.bigdata.copytohdfs;  
   
 import org.apache.hadoop.fs.*;  
 import org.apache.hadoop.conf.*;  
   
 public class CopyHadoop{  
     public static void main (String [] args) throws Exception  
     {      
            //Membuat Koneksi ke HDFS  
            Configuration konfigurasi = new Configuration();  
            konfigurasi.set("fs.default.name","hdfs://master:54310/");  
            FileSystem dfs = FileSystem.get(konfigurasi);  
              
            //Salin file dari LocaHardsik ke HDFS
            Path src = new Path("/windows/D/UNIVERSITAS/a");
            Path dst = new Path(dfs.getWorkingDirectory()+"/");
            dfs.copyFromLocalFile(src, dst);
            System.out.println("Mengkopi file Local "+src+" Ke " +dst);
                
     }  
 }  

yang terpenting adalah remote HDFS sesuaikann dengan port pada node master masing-masing

Code Delete Directory atau File HDFS

Menyambung tulisan sebelumnya yang membuat Direktori pada HDFS, kali ini adalah code untuk menghapus direktori atau file pada HDFS.

 package hery.its.tesis.bigdata.deldir;  
   
 import org.apache.hadoop.fs.*;  
 import org.apache.hadoop.conf.*;  
   
 public class HapusDirektori{  
     public static void main (String [] args) throws Exception  
     {      
            //Membuat Koneksi ke HDFS  
            Configuration konfigurasi = new Configuration();  
            konfigurasi.set("fs.default.name","hdfs://master:54310/");  
            FileSystem dfs = FileSystem.get(konfigurasi);  
              
            //Hapus Direktori/File di FDHS
            String dirName = "sip";
            Path src = new Path(dfs.getWorkingDirectory()+"/"+dirName);
            dfs.delete(src);
            System.out.println("Contoh Menghapus File "+src+dirName);           
     }  
 }  

yang terpenting adalah remote HDFS sesuaikann dengan port pada node master masing-masing

Create Directory HDFS Hadoop

Salah satu elemen penting dalam HDFS adalah file dan direktori, ya karena isi dari HDFS kalau ngak file dan direktori apa lagi hayo :)

berikut adalah code java untuk membuat direktori pada hadoop file system, sesuaikan dengan konfigurasi pada hadoop config pada namenode masbro masing-masing

 package hery.its.tesis.bigdata.makedir;  
   
 import org.apache.hadoop.fs.*;  
 import org.apache.hadoop.conf.*;  
   
 public class BuatDirektori{  
     public static void main (String [] args) throws Exception  
     {      
            //Membuat Koneksi ke HDFS  
            Configuration konfigurasi = new Configuration();  
            konfigurasi.set("fs.default.name","hdfs://master:54310/");  
            FileSystem dfs = FileSystem.get(konfigurasi);  
              
            //Buat Folder Baru di FDHS  
            System.out.println("Contoh Membuat Direktori");  
            String namaDirektori = "DirektoriBaru";  
            Path sumber = new Path(dfs.getWorkingDirectory()+"/"+ namaDirektori);  
            dfs.mkdirs(sumber);             
            
            System.out.println("Direktori "+namaDirektori+" Berhasil " + dfs.getWorkingDirectory());
     }  
 }  

yang terpenting adalah remote HDFS sesuaikann dengan port pada node master masing-masing

VMware WorkStation Failed to lock the file


Ada kalahnya sebuah projek virtualisasi yang sedang running mengalami poweroff secara paksa, baik dilakukan oleh guest yang bersangkutan ataupun terjadi kecelakaan seperti komputer host yang powernya bermasalah seperti listrik padam tiba-tiba. Dampak dari aktifitas tersebut yang sering saya  dialami adalah virtual hardisk sering terkunci/lock ketika projek tersebut di start kembali sehingga vmware yang dirunning tidak berhasil booting.
Failed to lock the file
Cannot open the disk '/home/Hery/vmware/Hadoop.C1/[X] BigData-cl1.vmdk' or one of the snapshot disk it depends on.



Solusi yang dapat dilakukan adalah masuk ke direktori home vmware, cari direktori tempat menyimpan projek vmware dan remove/rename direktori yang berakhiran .lck.


setelah langkah tersebut dilakukan, semoga virtualisasi dapat dilanjutkan kembali,

Tuesday, July 23, 2013

[X] SafeMode Hadoop Leave

Runs a HDFS dfsadmin client.
Usage: hadoop dfsadmin [GENERIC_OPTIONS] [-report] [-safemode enter | leave | get | wait] [-refreshNodes] [-finalizeUpgrade] [-upgradeProgress status | details | force] [-metasave filename] [-setQuota <quota> <dirname>...<dirname>] [-clrQuota <dirname>...<dirname>] [-help [cmd]]

ex:
hadoop dfsadmin -safemode leave
 

Sunday, June 9, 2013

Login SSH OpenSuse Tanpa Password: Key-Gen

Aplikasi remote SSH sangat membantu sekali dalam hal mengendalikan komputer yang berada di jarak yang jauh. Namun SSH menuntut proses authentikasi user dan password untuk akses komputer remote, Banyaknya aplikasi yang menggunakan user dan password sangat sulit untuk mengingat password yang kita gunakan untuk komputer server tersebut tersebut. Sehingga perlu adanya menajemen password seperti kamus pribadi untuk mengingat password-password yang kita miliki tersebut. Namun Cukup merepotkan untuk membuka kamus-kamus tersebut karena akan membuang waktu untuk mengkases komputer remote yang kita tuju. Oleh karena itu pada ssh client ada fasilitas keygen (keygenerator) untuk membaypass proses authentikasi yang menggunakan password.

Tahapan proses Generator SSH
Hery@ino2ER:~/tmp> ssh-keygen

Ganerate Key Pada Client

Setelah file key dibuat, upload file "id_rsa.pub" ke komputer remote [dalam hal ini berada di path /home/Hery/.ssh/id_rsa.pub ke direktori server /home/hadoop]. Untuk mempermudah pengerjaan dapat menggunakan scp pada komputer client atau bisa di kirim secara manual melalui usb storage

Saturday, May 25, 2013

openSuse: Firewall yast gagal start dan stop

Menyalakan
/sbin/rcSuSEfirewall2 start

Mematikan
/sbin/rcSuSEfirewall2 stop

Friday, May 24, 2013

OpenSuse: Proxy Auth User dan Password KGet


Salah satu download manager di linux adalah KGet (kde), pada opensuse KGet merupakan download manager default dari distro tersebut. Secara keseluruhan KGet memiliki kemampuan yang mirip dengan IDM (download manager terbaik sepanjang masa versi pemilik blog) yaitu resume download, auto download, interface yang menarik untuk list download, katagori download, memiliki kecepatan dalam download, error download yang minimal, dan lain-lain dah, coba aja sendiri. Fokus kali ini adalah membahas tentang manual proxy pada KGet dan user serta password proxy tersebut.

Gambar 1. KGet OpenSuse

Thursday, May 23, 2013

Inovasi Aneh Tiket.com

Musim liburan panjang 2013 hampir tiba bos, rencana yang paling masuk akal adalah pulang kampung ^_^, iseng-iseng liat kalender dengan pakai hitung-hitungan formula matematika yang ~rumit~, disimpulkan pas sekali liburan semester dengan momen puasa. Pada tahun ini diperkirakan puasa jatuh pada tanggal 10 Juli 2013*, buru-buru dung cek tiket maskapai penerbangan yang menjalankan rute surabaya-palembang, ternyata tiket sudah melambuung tinggi hampir 99% bos (++1jtan lah), untuk ukuran kantong mahasiswa sepertinya uang segitu mending buat alokasi yang lain tul ngak, buat investasi ;)

Karena acara mudik kali ini tidak terikat sama waktu, targetnya yang penting mudik aja ya, maka alternatif moda transportasi jatuh pada kereta api SBY-JKT, entar jika nanti di JKT dapat tiket yg pas perjalanan dilanjutin disana.

Moda transportasi kereta api termasuk favorit oleh masyarakat pada umumnya jika dibandingkan dengan Bus (hemat dan tepat waktu) apalagi PT. Kereta Api Indonesia (KAI), sudah banyak berbenah di berbagai sektor salah satunya "kenyamanan" makanya wa pilih ini dibandingkan angkutan darat lainnya, pengalaman tahun kemarin tiket kereta cepat ludesnya jika memasuki momen-momen liburan nasional dan keagamaan, oleh karena itu jauh-jauh hari sikat duluan biar ngak kehabisan.

Saturday, March 30, 2013

Switch Port Analyser (SPAN)

Switch Port Analyser (SPAN) adalah sebuah teknik yang dapat dilakukan pada layer 2 dalam hal ini adalah device switch yang dapat melalukan mirror terhadap trafik yang melewati sebuah/beberapa port pada suatu switch tujuannya adalah untuk melakukan monitoring. SPAN banyak digunakan dalam kegiatan analisis untuk troubleshooting network, namun tidak menutupkan  kemungkinan dapat dimodifikasi untuk keperluan lain, misal pencurian data.

Ilustrasi dapat dilihat pada gambar yang disadur dari cisco: 
Jika dibayangkan SPAN, silahkan menghayal! yang terjadi pada SPAN selintas mirip dengan apa yang terjadi pada Hub namun kenyataannya jelas berbeda.

Pada Hub ketika suatu device mengirimkan frame pada host tertentu, semua host yang aktif juga akan mendapatkan data tersebut. Pada gambar dibawah misalkan komputer A mengirimkan frame ke komputer B, komputer sniffer dan komputer blank juga akan menerima data tersebut karena sifat dari Hub yang akan membroadcast kesemua host, sifat dasar hub adalah 1 broadcast domain dan 1 collusion domain.

Thursday, March 21, 2013

Hari sibuk sedunia 2013

Maret - April - Mei - Juni

Don't be a Victim: Trojan in Hardware, Social Engineering


Trojan in Hardware merupakan sebuah teknik social engineering yang melibatkan malicious code yang dapat berjalan pada sistem operasi tertentu, dimana software malware tersebut disimpan dalam media storage seperti usb, hardisk, cd, etc. Kemudian media storage tersebut disebar/dibuang secara sengaja dengan harapan device tersebut ditemukan oleh calon victim, rasa penasaran calon victim akan berbuah bencana, jika autorun aktif | tergoda untuk mengeksekusi malcode yang telah dikamuflase menjadi sebuah file yang terlihat normal nan menggoda :)

Video berikut diambil dari Iklan TrendMicro, sangat menarik alur cerita pada video tersebut. Langsung aja netter liat 05:37

 

Friday, March 8, 2013

Meratakan kiri dan kanan Text Pada Photoshop

Merupakan masalah yang sederhana meratakan tulisan text dengan bagian kiri dan kanan sama (justify) terhadap margin yang digunakan, hanya tinggal klik simbol rata justify atau ctrl +j 



namun sangat mengganggu sekali jika cara tersebut tidak bisa digunakan, seperti pada editor photoshop. Pada editor photoshop hanya menyediakan 3 simbol perlakuan text terhadap margin, yaitu left, center, right namun tidak ada justify serta ctrl+j yang umum di pakai pada wordprocessing juga tidak bisa digunakan untuk opsi tersebut. 

Alternative untuk meratakan text kiri dan kanan pada photoshop dapat menggunakan ctrl+shift+j. Semoga bermanfaat