Arsip untuk Kategori ‘ clustering ’

Serba serbi Trec Evaluation

tTREC Evaluation adalah standard yang biasanya digunakan dalam pengkuran dan evaluasi Information Retrieval. Versi trec evaluation terbaru dapat didownload disini. Untuk menjalankan trec_eval anda harus punya file assessment yang berisi informasi relevanci file terhadap suatu query dengan format :

queryID  0  IDDocument Nilairelevancy

contoh :

q1 0 http://sws.geonames.org/4346347/ 2

Selain file assessment kita juga harus punya file hasil rangking dari dokumen dengan format :

queryID  0  IDDocument Ranking Hasil RunId

contoh :

q1 0 http://sws.geonames.org/4346347/ 2 32.2 iin

Setelah kita punya dua file diatas kita bisa melakukan evaluasi dengan perintah :

$./trec_eval  assess_file hasilrangking

Jika kita ingin nilai spesifik dari sebuah evaluasi seperti MAP, NDCG maka kita bisa mengetikkan perintah :

 $./trec_eval  -m map assess_file hasilrangking

[lucene] no segments* file found

Saya jadi suka mendokumentasikan error2 yang terjadi di program saya berikut penyelesainnya. Semoga membantu semua dan saya sendiri di masa depan :P .  Berikut adalah Error yang saya dapatkan ketika melakukan indexing dengan lucene plus melakukan searching dokumen

no segments* file found in org.apache.lucene.store.FSDirectory

Setelah saya melakukan pengecekan berulang kali, ternyata ada file write.lock di dalam file indexing. Hal ini diakibatkan oleh proses searching yang mendahului  proses indexing. Solusinya adalah gunakan indexreader untuk searching dan indexwriter untuk indexing atau tutuplah indexwriter, baru lakukan searching.

[hadoop] java lang OutOfMemoryError: PermGen space

Bermain dengan data yang cukup besar di dalam hadoop, terkadang menyebabkan error “java lang OutOfMemoryError: PermGen space“. Setelah googling, saya mendapatkan bahwa hal ini disebabkan setting dari JVM. Nah, bagaimana cara mengubah setting JVM di hadoop ? Terpaksa buka-buka setiap file konfigurasi dari hadoop. Saya temukan hadoop-env.sh yang berisi tentang setting untuk JVM beserta Java Heap.
Ubah pada bagian :
# The maximum amount of heap to use, in MB. Default is 1000.
export HADOOP_HEAPSIZE=2000
# Extra Java runtime options.  Empty by default.
export HADOOP_OPTS=-XX:MaxPermSize 512m

Kode diatas melakukan setting java heap 2000MB dan maksimum PermGen Space 512 MB.
Catatan : nilai maksimum PermGen Space tidak boleh lebih besar dari Java Heap

[Lucene] membaca field

Membaca Field di dalam Lucene dimana field tiap dokumen bersifat statis.

final NIOFSDirectory  dir = new NIOFSDirectory(new File(this.Dir));
        final IndexReader reader = IndexReader.open(dir, true);
        final Collection fieldNames = reader.getFieldNames(IndexReader.FieldOption.ALL);
        for (int i = 0; i < reader.numDocs(); i++)
        {
            System.out.println("processing document "+i);
            final Iterator fieldnameIT = fieldNames.iterator();
            final Document document = reader.document(i);
            while (fieldnameIT.hasNext())
            {  final String fieldname = fieldnameIT.next().toString();
               System.out.println(fieldname+" "+document.get(fieldname));
            }
        }

always happy coding :)

[hadoop] tidak cocok untuk file kecil

Riset di daerah clustering, ternyata tidak mudah. Berbagai hal harus dipahami, terutama masalah memori. Beberapa hari yang lalu saya menemukan masalah pada hadoop ketika saya harus menyimpan jutaan files berkuran antara beberapa kilo bytes hingga 1 megabytes ke dalam HDFS. By default, Hadoop mengalokasi 64MB untuk setiap file. File dan Blok terkait menjadi sebuah objek, dimana objek tersebut menggunakan namespace. Celakanya kapasitas namespace ini sangat terbatas. Bisa dibayangkan jika file2 terkecil tersebut menghabiskan namespace hampir 100% padahal hanya memakai 20% dari hardisk.
Untuk itulah Hadoop menyediakan solusi dengan menggunakan HAR (Hadoop Archive). HAR ini mirip dengan TAR dan JAR. Fungsinya adalah mengumpulkan file-file menjadi satu file berekstensi .har.
Cara membuat HAR cukup mudah :

hadoop archive -archiveName namafilehar direktorisumber tempatfilehar

contoh :

hadoop archive -archiveName kumpulan.har /home/iin/data/* /home/iin/

Cara mengakses HAR dari program hadoop/cascading

hadoop jar filejava.jar namaClass fileHARname.har output

Info lebih lanjut bisa dibaca di blog developer yahoo

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 3.075 pengikut lainnya.