Support Questions

Find answers, ask questions, and share your expertise

NiFi HBase Service Controller failing in NiFi 1.0

avatar
Master Guru

I am trying to enable hbase service controller on NiFi 1.0. The hbase cluster is non kerberized. i have provided full path to core-site.xml and hbase-site.xml

9561-nifi-hbase.jpg

9c-4fe4-1b84-ffff-ffff852f4d04] Simple Authentication
2016-11-17 17:15:36,522 ERROR [StandardProcessScheduler Thread-7] o.a.n.c.s.StandardControllerServiceNode HBase_1_1_2_ClientService[id=9f99699c-4fe4-1b84-ffff-ffff852f4d04] Failed to invoke @OnEnabled method due to java.io.IOException: java.lang.reflect.InvocationTargetException
2016-11-17 17:15:36,527 ERROR [StandardProcessScheduler Thread-7] o.a.n.c.s.StandardControllerServiceNode
java.io.IOException: java.lang.reflect.InvocationTargetException
        at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:240) ~[hbase-client-1.1.2.jar:1.1.2]
        at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:218) ~[hbase-client-1.1.2.jar:1.1.2]
        at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:119) ~[hbase-client-1.1.2.jar:1.1.2]
        at org.apache.nifi.hbase.HBase_1_1_2_ClientService.createConnection(HBase_1_1_2_ClientService.java:238) ~[nifi-hbase_1_1_2-client-service-1.0.0.2.0.0.0-579.jar:1.0.0.2.0.0.0-579]
        at org.apache.nifi.hbase.HBase_1_1_2_ClientService.onEnabled(HBase_1_1_2_ClientService.java:178) ~[nifi-hbase_1_1_2-client-service-1.0.0.2.0.0.0-579.jar:1.0.0.2.0.0.0-579]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_77]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_77]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_77]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_77]
        at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:137) ~[na:na]
        at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:125) ~[na:na]
        at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:70) ~[na:na]
        at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotation(ReflectionUtils.java:47) ~[na:na]
        at org.apache.nifi.controller.service.StandardControllerServiceNode$2.run(StandardControllerServiceNode.java:348) ~[na:na]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_77]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_77]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_77]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_77]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_77]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_77]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77]
Caused by: java.lang.reflect.InvocationTargetException: null
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_77]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_77]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_77]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_77]
        at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:238) ~[hbase-client-1.1.2.jar:1.1.2]
        ... 20 common frames omitted
Caused by: java.lang.UnsupportedOperationException: Unable to find org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory
        at org.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:36) ~[hbase-common-1.1.2.jar:1.1.2]
        at org.apache.hadoop.hbase.ipc.RpcControllerFactory.instantiate(RpcControllerFactory.java:58) ~[hbase-client-1.1.2.jar:1.1.2]
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.createAsyncProcess(ConnectionManager.java:2242) ~[hbase-client-1.1.2.jar:1.1.2]
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:690) ~[hbase-client-1.1.2.jar:1.1.2]
        at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:630) ~[hbase-client-1.1.2.jar:1.1.2]
        ... 25 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_77]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_77]
       at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_77]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_77]
        at java.lang.Class.forName0(Native Method) ~[na:1.8.0_77]
        at java.lang.Class.forName(Class.java:264) ~[na:1.8.0_77]
        at org.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:32) ~[hbase-common-1.1.2.jar:1.1.2]
        ... 29 common frames omitted

I phoenix and Phoenix query server enabled on the cluster.

Any insights or feedback appreciated.

1 ACCEPTED SOLUTION

avatar
Master Guru

This is a known problem when Phoenix is enabled, see similar posts here:

https://community.hortonworks.com/questions/57874/error-unable-to-find-orgapachehadoophbaseipccontro...

That class is actually from Phoenix:

https://github.com/apache/phoenix/blob/master/phoenix-core/src/main/java/org/apache/hadoop/hbase/ipc...

It will be fixed in Apache NiFi 1.1 by allowing users to specify the path to the phoenix client JAR.

For now you can copy phoenix-client.jar to nifi_home/work/nar/extensions/nifi-hbase_1_1_2-client-service-nar-1.1.0-SNAPSHOT.nar-unpacked/META-INF/bundled-dependencies/ obviously adjusting the directories for your version.

View solution in original post

1 REPLY 1

avatar
Master Guru

This is a known problem when Phoenix is enabled, see similar posts here:

https://community.hortonworks.com/questions/57874/error-unable-to-find-orgapachehadoophbaseipccontro...

That class is actually from Phoenix:

https://github.com/apache/phoenix/blob/master/phoenix-core/src/main/java/org/apache/hadoop/hbase/ipc...

It will be fixed in Apache NiFi 1.1 by allowing users to specify the path to the phoenix client JAR.

For now you can copy phoenix-client.jar to nifi_home/work/nar/extensions/nifi-hbase_1_1_2-client-service-nar-1.1.0-SNAPSHOT.nar-unpacked/META-INF/bundled-dependencies/ obviously adjusting the directories for your version.