hadoop - Apache Phoenix 4.7 csvBulkLoad.run() throws ClassNotFoundException -
we running spark streaming job read kafka, convert csv , write hbase. using api csvbulkload run bulk load job. spark job starts fine , converts csv csvbulkload.run() starts new mr job fails exception
error: java.lang.classnotfoundexception: org.apache.commons.csv.csvformat @ java.net.urlclassloader.findclass(urlclassloader.java:381) @ java.lang.classloader.loadclass(classloader.java:424) @ sun.misc.launcher$appclassloader.loadclass(launcher.java:331) @ java.lang.classloader.loadclass(classloader.java:357) @ org.apache.phoenix.mapreduce.csvtokeyvaluemapper$csvlineparser.<init>(csvtokeyvaluemapper.java:96) @ org.apache.phoenix.mapreduce.csvtokeyvaluemapper.setup(csvtokeyvaluemapper.java:69) @ org.apache.hadoop.mapreduce.mapper.run(mapper.java:143) @ org.apache.hadoop.mapred.maptask.runnewmapper(maptask.java:787) @ org.apache.hadoop.mapred.maptask.run(maptask.java:341) @ org.apache.hadoop.mapred.yarnchild$2.run(yarnchild.java:170) @ java.security.accesscontroller.doprivileged(native method) @ javax.security.auth.subject.doas(subject.java:422) @ org.apache.hadoop.security.usergroupinformation.doas(usergroupinformation.java:1865) @ org.apache.hadoop.mapred.yarnchild.main(yarnchild.java:164) this spark job command
spark-submit --jars $(echo lib/*.jar | tr ' ' ',') --class "com.lam.app.driver" --name "mybulkloader" --master yarn --deploy-mode cluster --driver-class-path $(echo lib/*.jar | tr ' ' ',') --driver-memory 4g --executor-memory 1g --num-executors 2 --executor-cores 2 --files conf.properties pipeline-1.0.jar earlier used error missing class (java.lang.noclassdeffounderror: com/yammer/metrics/core/metricsregistry) got resolved after including "--driver-class-path $(echo lib/*.jar | tr ' ' ',') ". getting error missing csvformat class.
my lib directory has jar files needed including commons-csv jar still getting error. use maven build project. below code snippet running csvbulkload
csvbulkloadtool csvbulkloadtool = new csvbulkloadtool(); final org.apache.hadoop.conf.configuration conf = hbaseconfiguration.create(); system.out.println("zkquorum " + this.zkquorum); conf.set(hconstants.zookeeper_quorum, this.zkquorum); conf.set("hbase.zookeeper.property.clientport", string.valueof(2181)); conf.set("zookeeper.znode.parent", "/hbase-unsecure"); csvbulkloadtool.setconf(conf); int exitcode = csvbulkloadtool.run(new string[] { "--input", "\"" + this.hdfsinputfile + "\"", "--table", this.tablename, "--zookeeper", this.zkquorum + ":2181:/hbase-unsecure" }); system.out.println("return code of wdl bulk load execution " + exitcode); my exitcode -1 always. please let me know if missing in class path
i resolved finally. had missed adding phoenix client jar , issue got resolved after that. hope tip helps come across similar issue
Comments
Post a Comment