28 Nisan 2014 Pazartesi

Hadoop-Hbase "dfs.datanode.max.xcievers" optimum


hdfs-site.xml dosyasında tanımlanan "dfs.datanode.max.xcievers" parametresi client makinalarda kaç adet thread açılacağını tanımladığımız değer. Hbase in çalışma performası için önemli bir parametre.
Buradaki optimum sayının ne olacağına karar vermek için aşağıdaki formul kullanılabilir:




Bu değer doğru tanımlanmadığında aşağıdaki gibi atalar alınabilmekte:


Java.io.IOException: Could not obtain block: blk_2960332903087986581_94433611 file=/home/hadoop/hadoop-hadoop/mapred/staging/hadoop/.staging/job_201404221200_0002/job.split
at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.chooseDataNode(DFSClient.java:2426) at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.blockSeekTo(DFSClient.java:2218) at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2381) at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2309) at java.io.DataInputStream.readByte(DataInputStream.java:265) at org.apache.hadoop.io.WritableUtils.readVLong(WritableUtils.java:299) at org.apache.hadoop.io.WritableUtils.readVInt(WritableUtils.java:320) at org.apache.hadoop.io.Text.readString(Text.java:400) at org.apache.hadoop.mapred.MapTask.getSplitDetails(MapTask.java:382) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:728) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370) at org.apache.hadoop.mapred.Child$4.run(Child.java:255) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149) at org.apache.hadoop.mapred.Child.main(Child.java:249)

16 Nisan 2014 Çarşamba

Nutch Hata: (Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties

pom.xml dosyasında hem hbase hem de mysql için dependency eklendiğinde myysql kullanılınca ilk önce hbase yüklendi ise onu kullanmaya çalışıyor.

Bu durumda pom.zml de hsql eklenirken aşağıdaki şekilde olmalı:

 <dependency>
            <groupId>org.hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
            <version>2.2.8</version>
            <scope>provided</scope>
        </dependency>


3 Nisan 2014 Perşembe

4 Mart 2014 Salı

Hbase - Zookeeper Exception: java.io.IOException: Packet len 4409012 is out of range!

Hbase tablolarımızda çok fazla region olduğunda hbase açılırken aşağıdaki hata görülmekte:

java.io.IOException: Packet len4409012 is out of range!
at org.apache.zookeeper.ClientCnxnSocket.readLength(ClientCnxnSocket.java:112)
at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:79)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:355)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
2014-03-03 16:50:19,762 FATAL org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown.
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/unassigned
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1468)
at org.apache.hadoop.hbase.zookeeper.ZKUtil.listChildrenNoWatch(ZKUtil.java:389)
at org.apache.hadoop.hbase.zookeeper.ZKUtil.deleteChildrenRecursively(ZKUtil.java:1045)
at org.apache.hadoop.hbase.zookeeper.ZKAssign.deleteAllNodes(ZKAssign.java:476)
at org.apache.hadoop.hbase.master.AssignmentManager.cleanoutUnassigned(AssignmentManager.java:193)

at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:394)
at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:281)

Bu hatanın çözümü için hbase/conf/hbase.env dosyasında "HBASE_OPTS" bölümüne 
"-Djute.maxbuffer=4509012" değeride eklenmeli. Böylelikle zookepperrın yükleyeceği dosya boyutu default 1M dan daha fazla değere arttırılmış olacaktır. Buraad ayarlanan değer hatada belirtilen değerden büyük olmalıdır.

28 Şubat 2014 Cuma

Hbase Enable Disable Problemi

Yanlışlıkla disable ettiğimiz bir tablomuz olsun. İşlemi yerıda kesmiş olalım ve tekrar enable etmeye çalışalım. Tablo çok büyük olduğunda kilitlenip kalıyoruz. Bu durumu aşmak için önce aşağıdaki komutu çalıştırıyoruz. Sonra işlemi tekrarladığımızda olay tamamdır.

$ ./hbase hbck -fix -metaonly

27 Şubat 2014 Perşembe

Intellij idea - Javadoc

Idea ortamında kod dökumantasyonunu hızlı bir şekilde yapabilmek için uygulanacak bir yol:

Plugins bölümünden JavaDoc yüklenir.

Dökumantasyon eklenmek istenilen bölüm seçilip "shift + alt + J" basılır.

Yada

Alt + Insert
JavaDoc
Selected Element / All Element

Tamamdır.

Hbase - Mapreduce- "java.lang.IllegalArgumentException: No columns to insert"


Aşağıdaki gibi bir kod parçasında "Put" nesnesinin içi doldurulmadığında sadece "key" set edildiğinde   java.lang.IllegalArgumentException: No columns to insert" hatası alınmaktadır.       

            Put p = new Put(key.get());
            .....
            .....
            ....
            context.write(key, p);