14 Ocak 2013 Pazartesi

Nutch Çalıştırırken Hata

/bin/nutc içinden bir satırı çalıştırırken aşağıdaki hatayı alıyorsanız:

bash: bin/nutch: Permission denied

aşağıdaki komut ile ilgili dosyaya hak vererek sorunu çözebiliriz.
chmod +x bin/nutch

Ubuntu Sistem Parametrelerini Arttırma

Ubuntu üzerinden Nutch ile veri çekerken hatalar almaya başladım.
Hataların sebebini araştırırken sistem parametrelerinde ki sınırlara takıldığımı farkettim.

terminalden çalıştıracağınız ulimit -a komutu ile işletim sistemi bazlı kısıtlarınızı görebiliyorsunuz.


a@a:~$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 3795
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 16384
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 3795
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
a@a:~$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 3795
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 16384
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 3795
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Bu değerlerden herhangi birini değiştirmek istediğinizde listeden değiştirmek istediğiniz parametreyi bulup yanında belirtilen parantez içindeki değerler ile değişimi yapıyoruz. Örn: open files değerini değiştirmek için:

ulimit -n 16300

Ancak bu değişim kalıcı olmuyor. Parametrelere atadığımız yeni değerler sadece atama yaptığımız terminalde çalıştırılan programlar için geçerli olacaktır. Bu işlemi sadece belirli programlar için ayarlıyorsak bu şekilde kullanmak mantıklıolacaktır.

Yeni atanan parametre değerinin tüm sistemde ve sürekli aktif olmasını istiyorsak "limits.conf" dosyasında atamak istediğimiz değerleri belirtiyoruz.

vi /etc/security/limits.conf

dosyaya aşağıdaki satırları ekleyelim.

* soft nofile 16384
* hard nofile 16384

Dosyayı kaydedip kapattıktan sonra sistemi reboot ediyoruz. Açılışta atamış olduğumuz değerler tüm sistemde aktif hale gelmiş oluyor. Başta "* " karakterini kullandığımız için bu değerler tüm kullanıcılar için geçerli olacaktır.
İstersek bu değerleri sadece belirli kullanıcılar içinde arttırıp azaltabiliriz. Bu durumda  limits.conf dosyasına parametreleri ve değerleri yazarken, hangi kullanıcı için aktif olacağınıda belirtmek gerekiyor.

Örn:
kullanıcı_adi soft nofile 16384
kullanıcı_adi hard nofile 16384

Ubuntu SSH

SSH ile bağlanmaya çalıştığını makinadan aşağıdaki hatayı alıyorsanız

ssh: connect to host 192.168.15.101 port 22: Connection refused

Not: 192.168.15.101 uzaktan erişmeye çalıştığım makinanın IP si
Bağlanmaya çalıştığınız makinada ssh'ı kurmanız gerekir.
SSH ile bağlanmaya çalıştığınız makinaya gidip, terminalden aşağıdaki komut ile kurulumu yapabilirsiniz.

sudo apt-get install openssh-server

Daha sonra kendi makinanıza geçip:

ssh kullanici_adi@192.168.15.101
komutunuz yazıp uzak makinaya ssh bağlantısı gerçekleştirmiş olursunuz.





10 Ocak 2013 Perşembe

Nutch Crawl Aşamasında Hata


at org.apache.nutch.util.NutchJob.waitForCompletion

Bu durumda son yazdığı logları incelemek lazım. Benim Loglarda dataları atarken size uyumsuzluğu yaşamış mesela. Gidip bunu gora.properties dosyasından düzelttiğimde sorun çözüldü.

Ubuntu 12.04 Task Manager

$ gnome-system-monitor 

Ubuntu12.04-MySQL kurulum problemi



Mysqli kurdum. Ancak hiç bir tepkime yok-->(sudo apt-get install mysql-server mysql-client )
"sudo netstat -tap | grep mysql" komutunu terminalden gönderiyorum ama dönen birşey olmuyor.

Neyapsam derken kaldır kur kaldır kur oyuncak oldu ama yok yok yok...
Başladık webde aramalara ve çözüm:
  • Öncelikle mysqlin makinadan kökünü kazıyoruz:
         sudo aptitude purge mysql-server mysql-common
         sudo rm -R /etc/mysql/* 

  • Daha sonra serverı tekrar kuruyoruz:
         sudo aptitude install mysql-server

ve mutlu son sudo netstat -tap | grep mysql komutunu çalıştırdığımızda sonuç:

tcp        0      0 localhost:mysql         *:*                     LISTEN      20342/mysqld 




8 Ocak 2013 Salı

Nutch 2.1 Eclipse Debug --> "job failed: name=generate"


Nutch 2.1 Eclipse üzerinde derlemeyi başardım.

Store olarak da MYSQL de çalışacak şekilde ekteki linki takip ederek ayarlarını tamamladım.

MYSQ in çaıştığından emin olduktan sonra dedikki hadi bakalım debug edelim.

Ve heyecanlı bekleyişin ardından HOppp hata!!!

"job failed: name=generate"

Debug debug debug derken patlayan satırı bulduk ama nafile hata ortada yok.
Hemen başlıyoruz webi karıştırmaya. Birkaç denemeden sonra doğru atışı yapıyoruz.

Sorun şu ki classpathe src/plugin altındaki tüm klasörlerin altındaki java ve test klasörleri tek tek eklenmesi lazım. aksi taktirde başlıyor bağırmaya ben bunları bulamadım diye. ve şu hata geliyor:

"java.lang.ClassNotFoundException: org.apache.nutch.urlfilter.regex.RegexURLFilter"

Son durumda class pathin görünümü:

Bunlara ek olarak  "src/bin, src/java, src/test & src/testresources " bunlarıda eklemeyi unutmayın.


7 Ocak 2013 Pazartesi

org.apache.hadoop.hbase.ZooKeeperConnectionException:


org.apache.hadoop.hbase.ZooKeeperConnectionException: 
HBase is able to connect to ZooKeeper but the connection closes immediately. This could be a sign that the server has too many connections (30 is the default). Consider inspecting your ZK server logs for that error and then make sure you are reusing HBaseConfiguration as often as you can. See HTable's javadoc for more information.


1-Yukarıdaki hatanın sebebi etc/hosts dosyanızdaki makinanıza ait olan IP nin 127.0.0.1 olarak ayarlı olmamasından vede "ip6" olarka taımlı satırların açık olmasından kaynaklanıyor. Aşağıdaki şekilde dosya değiştirildiğinde artık bu hatayı almayacaksınız.... Makina adı olan bölümde sizin makinanızın ismi yer alacak.


127.0.0.1 localhost
127.0.0.1 Makina_Adı

# The following lines are desirable for IPv6 capable hosts
#::1     ip6-localhost ip6-loopback
#fe00::0 ip6-localnet
#ff00::0 ip6-mcastprefix
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters

2-Hata halen devam ediyor ise diğer bir sebep tüm region serverlardaki hbase ayarlarının aynı olmamasından kaynaklanıyor olabilir. Çözüm için hbase kapatılır, masterdaki hbase klasörü tüm region serverlara kopyalanır. Ve hbase tekrar açılır.

Eclipse ile Nutch Derleme

Öncelikle :

http://wiki.apache.org/nutch/RunNutchInEclipse-->Buradan mümkünse gitmeyin insanı uğraştırıyor. sonuçta alamıyosunuz.

  • Nutch kodlarının son halini(src) sitesinden indirin.
  • Eclipse den yeni bir New-Java Project ile yeni proje oluşturma sayfasına gelelim.
  • Burada "Use set default location" seçeneğini kaldırıp buraya Nutch sourcelarını açtığımız klasörü gösteriyoruz.
  • Sonra starndart adımları takip edip yeni bir proje oluşturuyoruz. Oluşan projede bir süre hata var gibi gözüküyor:)
  • Şimdi projeye sağ tıklayıp "Build Path-->Configure Build Path" şeçeneğini seçiyoruz.
  • Buradan "Source Folder " tabındaki "/src/bin" ve "/src/java" ve plugin dosyaları ekli geliyor.Bunlara ek olarak eğer eksikse, Ve "Add Folder" seçerek "/src/test" ve "/src/testresources" bölümlerinide ekliyoruz.
  • conf/nutch-site.xml dosyasına yok ise aşağıdaki satırı ekliyoruz. Var ise güncelliyoruz.

    <property>
    <name>plugin.folders</name>
    <value>./src/plugin</value>
    <description>Directories where nutch plugins are located. Each
    element may be a relative or absolute path. If absolute, it is used
    as is. If relative, it is searched for on the classpath.
    </description>
    </property>

  • Libraries Tab'ından
    • Add Library > IvyDE Managed Dependencies >  seçip trunk/ivy/ivy.xml dosyasını gösteriyoruz.
  • Son olarak Libraries tab'ından "Add Class Folder" seçeneği ile "conf" klasörünü ekliyoruz. ve "Order and Export" tab'ına geçip son eklediğimiz "conf" klasörünü listeden seçip "Top" ile yukarıya taşıyoruz.

Şimdi sıra derlemede:

  • Ctrl+3 ve "Ant" yazarak Ant görünümüde eçiyoruz. Buraya projenin ana dizinindeki "build.xml" dosyasını sürükleyip bırakıyoruz ve açılan dosyaya sağ tıklayıp "Run As-->Ant Build" ile derleme işlemini başlatıyoruz.
Ve mutlu son... Nutch kullanıma hazırdır.