i want export hbase table hdfs filesystem using java. tried using org.apache.hadoop.hbase.mapreduce.export.createsubmittablejob()
method create hbase job. passed 2 arguments, 1-hbase configuration, 2-string array table name , backup.
but, when run code getting weird exception this
caused by:
java.lang.verifyerror: bad type on operand stack|exception details:| location:| org/apache/hadoop/hbase/mapreduce/export.getexportfilter([ljava/lang/string;)lorg/apache/hadoop/hbase/filter/filter; @56: invokespecial| reason:| type 'org/apache/hadoop/hbase/filter/regexstringcomparator' (current frame, stack[3]) not assignable 'org/apache/hadoop/hbase/filter/writablebytearraycomparable'| current frame:| bci: @56| flags: { }| locals: { '[ljava/lang/string;', 'org/apache/hadoop/hbase/filter/filter', 'java/lang/string', 'java/lang/string' }| stack: { uninitialized 41, uninitialized 41, 'org/apache/hadoop/hbase/filter/comparefilter$compareop', 'org/apache/hadoop/hbase/filter/regexstringcomparator' }| bytecode:| 0000000: 014c 2abe 08a4 0009 2a08 32a7 0004 014d| 0000010: 2cc7 0005 01b0 2c12 34b6 0035 9900 232c| 0000020: 042c b600 36b6 0037 4ebb 0038 59b2 0039| 0000030: bb00 3a59 2db7 003b b700 3c4c a700 0fbb| 0000040: 003d 592c b800 26b7 003e 4c2b b0 | stackmap table:| append_frame(@14,object[#133])| same_locals_1_stack_item_frame(@15,object[#138])| append_frame(@22,object[#138])| same_frame(@63)| same_frame(@75)| @ com.sample.client.takebackup(hdfsclient.java:428) @ com.sample.client.backupdata(backuprestoreservice.java:396) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.glassfish.jersey.server.model.internal.resourcemethodinvocationhandlerfactory$1.invoke(resourcemethodinvocationhandlerfactory.java:81) @ org.glassfish.jersey.server.model.internal.abstractjavaresourcemethoddispatcher$1.run(abstractjavaresourcemethoddispatcher.java:144) @ org.glassfish.jersey.server.model.internal.abstractjavaresourcemethoddispatcher.invoke(abstractjavaresourcemethoddispatcher.java:161) @ org.glassfish.jersey.server.model.internal.javaresourcemethoddispatcherprovider$responseoutinvoker.dodispatch(javaresourcemethoddispatcherprovider.java:160) @ org.glassfish.jersey.server.model.internal.abstractjavaresourcemethoddispatcher.dispatch(abstractjavaresourcemethoddispatcher.java:99) @ org.glassfish.jersey.server.model.resourcemethodinvoker.invoke(resourcemethodinvoker.java:389) @ org.glassfish.jersey.server.model.resourcemethodinvoker.apply(resourcemethodinvoker.java:347) @ org.glassfish.jersey.server.model.resourcemethodinvoker.apply(resourcemethodinvoker.java:102) @ org.glassfish.jersey.server.serverruntime$2.run(serverruntime.java:326) @ org.glassfish.jersey.internal.errors$1.call(errors.java:271) @ org.glassfish.jersey.internal.errors$1.call(errors.java:267) @ org.glassfish.jersey.internal.errors.process(errors.java:315) @ org.glassfish.jersey.internal.errors.process(errors.java:297) @ org.glassfish.jersey.internal.errors.process(errors.java:267) @ org.glassfish.jersey.process.internal.requestscope.runinscope(requestscope.java:317) @ org.glassfish.jersey.server.serverruntime.process(serverruntime.java:305) @ org.glassfish.jersey.server.applicationhandler.handle(applicationhandler.java:1154) @ org.glassfish.jersey.servlet.webcomponent.serviceimpl(webcomponent.java:473) @ org.glassfish.jersey.servlet.webcomponent.service(webcomponent.java:427) @ org.glassfish.jersey.servlet.servletcontainer.service(servletcontainer.java:388) @ org.glassfish.jersey.servlet.servletcontainer.service(servletcontainer.java:341) @ org.glassfish.jersey.servlet.servletcontainer.service(servletcontainer.java:228) @ com.eclipsesource.jaxrs.publisher.internal.servletcontainerbridge.service(servletcontainerbridge.java:76) @ org.eclipse.equinox.http.servlet.internal.servletregistration.service(servletregistration.java:61) @ org.eclipse.equinox.http.servlet.internal.proxyservlet.processalias(proxyservlet.java:128) @ org.eclipse.equinox.http.servlet.internal.proxyservlet.service(proxyservlet.java:68) @ javax.servlet.http.httpservlet.service(httpservlet.java:770) @ org.eclipse.equinox.http.jetty.internal.httpservermanager$internalhttpserviceservlet.service(httpservermanager.java:360) @ org.eclipse.jetty.servlet.servletholder.handle(servletholder.java:684) @ org.eclipse.jetty.servlet.servlethandler.dohandle(servlethandler.java:503) @ org.eclipse.jetty.server.session.sessionhandler.dohandle(sessionhandler.java:229) @ org.eclipse.jetty.server.handler.contexthandler.dohandle(contexthandler.java:1086) @ org.eclipse.jetty.servlet.servlethandler.doscope(servlethandler.java:429) @ org.eclipse.jetty.server.session.sessionhandler.doscope(sessionhandler.java:193) @ org.eclipse.jetty.server.handler.contexthandler.doscope(contexthandler.java:1020) @ org.eclipse.jetty.server.handler.scopedhandler.handle(scopedhandler.java:135) @ org.eclipse.jetty.server.handler.handlerwrapper.handle(handlerwrapper.java:116) @ org.eclipse.jetty.server.server.handle(server.java:370) @ org.eclipse.jetty.server.abstracthttpconnection.handlerequest(abstracthttpconnection.java:494) @ org.eclipse.jetty.server.abstracthttpconnection.content(abstracthttpconnection.java:982) @ org.eclipse.jetty.server.abstracthttpconnection$requesthandler.content(abstracthttpconnection.java:1043) @ org.eclipse.jetty.http.httpparser.parsenext(httpparser.java:865) @ org.eclipse.jetty.http.httpparser.parseavailable(httpparser.java:240) @ org.eclipse.jetty.server.asynchttpconnection.handle(asynchttpconnection.java:82) @ org.eclipse.jetty.io.nio.selectchannelendpoint.handle(selectchannelendpoint.java:696) @ org.eclipse.jetty.io.nio.selectchannelendpoint$1.run(selectchannelendpoint.java:53) @ org.eclipse.jetty.util.thread.queuedthreadpool.runjob(queuedthreadpool.java:608) @ org.eclipse.jetty.util.thread.queuedthreadpool$3.run(queuedthreadpool.java:543) @ java.lang.thread.run(thread.java:745)
you must have passed longer array args, otherwise there no such exception. post entire code.
private static filter getexportfilter(string[] args) { filter exportfilter = null; string filtercriteria = (args.length > 5) ? args[5]: null; if (filtercriteria == null) return null; if (filtercriteria.startswith("^")) { string regexpattern = filtercriteria.substring(1, filtercriteria.length()); exportfilter = new rowfilter(compareop.equal, new regexstringcomparator(regexpattern)); } else { exportfilter = new prefixfilter(bytes.tobytesbinary(filtercriteria)); } return exportfilter; }
Comments
Post a Comment