Open IT Experts for Enterprise

Zylk empresa de desarrollo de ecommerce

Interprete de zeppelin para hbase

Gustavo Fernández
Gustavo Fernández
zeppelin

Configurando el intérprete de zeppelin para hbase en hdp 2.4

Dentro de un proyecto de bigdata que estamos haciendo hemos usado
como notebook del proyecto, zeppelin de apache. El
ecosistema completo incluye ambari 2.2 y el HDP-2.4.
La cuestión es que justo este intérprete parece que tiene un bug para
esta versión y que no funciona correctamente. Para hacelo funcionar
hemos tenido que modificar dos cosas

  • Cambiar las librerías de hbase que incluye el interprete por las
    de la versión de HDP-2.4
  • Añadir la siguiente variable de entorno al scritp de arranque de
    zeppelin HBASE_CONF_DIR apuntando a /usr/hdp/current/etc/hbase/conf

Con estos dos cambios hemos conseguido que funcione el interprete de
hbase desde zeppelin. Los errores que nos pueden dar la pista de que
esto es lo que está pasando en nuestro entorno son

org.apache.zeppelin.interpreter.InterpreterException: org.jruby.embed.EvalFailedException: (NameError) cannot load Java class org.apache.hadoop.hbase.quotas.ThrottleType
        at org.apache.zeppelin.interpreter.ClassloaderInterpreter.open(ClassloaderInterpreter.java:76)
        at org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:68)
        at org.apache.zeppelin.interpreter.LazyOpenInterpreter.getProgress(LazyOpenInterpreter.java:109)

Y el siguiente

ERROR [2017-02-02 13:52:43,126] ({pool-2-thread-2} ZooKeeperWatcher.java[keeperException]:648) - hconnection-0x3f389c0f0x0, quorum=localhost:2181, baseZNode=/hbase Received unexpected KeeperException, re-throwing exception
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
        at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1045)
        at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:221)
        at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:541)
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.checkIfBaseNodeAvailable(ConnectionManager.java:895)
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.access$400(ConnectionManager.java:545)
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$StubMaker.makeStubNoRetries(ConnectionManager.java:1483)
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$StubMaker.makeStub(ConnectionManager.java:1524)
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$MasterServiceStubMaker.makeStub(ConnectionManager.java:1553)
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.getKeepAliveMasterService(ConnectionManager.java:1704)
        at org.apache.hadoop.hbase.client.MasterCallable.prepare(MasterCallable.java:38)

que nos indica que la versión de hbase no es la correcta , y

ERROR [2017-02-02 13:52:43,125] ({pool-2-thread-2} RecoverableZooKeeper.java[retryOrThrow]:277) - ZooKeeper exists failed after 4 attempts
ERROR [2017-02-02 13:52:43,126] ({pool-2-thread-2} ZooKeeperWatcher.java[keeperException]:648) - hconnection-0x3f389c0f0x0, quorum=localhost:2181, baseZNode=/hbase Received unexpected KeeperException, re-throwing exception
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
        at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1045)
        at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:221)
        at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:541)
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.checkIfBaseNodeAvailable(ConnectionManager.java:895)
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.access$400(ConnectionManager.java:545)
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$StubMaker.makeStubNoRetries(ConnectionManager.java:1483)
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$StubMaker.makeStub(ConnectionManager.java:1524)
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$MasterServiceStubMaker.makeStub(ConnectionManager.java:1553)
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.getKeepAliveMasterService(ConnectionManager.java:1704)
        at org.apache.hadoop.hbase.client.MasterCallable.prepare(MasterCallable.java:38)
        at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:124)
        at org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3917)
        at org.apache.hadoop.hbase.client.HBaseAdmin.listTableNames(HBaseAdmin.java:413)
        at org.apache.hadoop.hbase.client.HBaseAdmin.listTableNames(HBaseAdmin.java:407)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43

 

para detectar que la configuración no es la correcta porque no está
apuntando a /hbase-unsecure en el zookeeper.

 

Con estos dos cambios y reiniciando zeppelin desde ambiar ya podemos
usar %hbase desde el notebook

Espero que si a alguien le sucede lo mismo esto le pueda sevir. No he
hecho más que un list desde hbase así que igual puede que más cosas
estén mal configuradas.

Interprete de zeppelin para hbase

Si te ha parecido interesante comparte este post en RRS

Facebook
LinkedIn
Telegram
Email

Leer más sobre temas relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *