使用hbase创建和运行hadoopmapreducejar文件

rfbsl7qr  于 2021-06-03  发布在  Hadoop
关注(0)|答案(0)|浏览(276)

我有一个mapreduce实现,其中mapper的输入是hbase扫描结果(每行一个map),reduce阶段将输出直接存储在特定的hbase表中。
为了指定mapper和reducer参数,我使用 TableMapReduceUtil 助手类如下所示:

  1. TableMapReduceUtil.initTableMapperJob(
  2. "Simulations_Data", // input HBase table name
  3. scan_job_DMV, // Scan instance to control CF and attribute selection <key, value>
  4. HBaseMapper.class, // mapper
  5. TimestepNode.class, // mapper output key
  6. DoubleArrayWritable.class, // mapper output value
  7. to_return);
  8. TableMapReduceUtil.initTableReducerJob(
  9. "SimulationsResults", // output table
  10. HBaseReducer.class, // reducer class
  11. to_return);

工作环境为hbase-0.98.4-hadoop2和hadoop-2.6.0
如果我使用eclipse(版本:luna service release 2-4.4.2)运行代码,那么一切都可以完美地工作。但是,如果我从eclipse生成一个可运行的jar文件(使用 Package required lib ,并尝试从终端运行,出现以下错误:

  1. Exception in thread "main" java.lang.reflect.InvocationTargetException
  2. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  3. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  4. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  5. at java.lang.reflect.Method.invoke(Method.java:606)
  6. at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
  7. Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: rsrc:hbase-common-0.98.11-hadoop2.jar
  8. at org.apache.hadoop.fs.Path.initialize(Path.java:206)
  9. at org.apache.hadoop.fs.Path.<init>(Path.java:172)
  10. at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.findOrCreateJar(TableMapReduceUtil.java:823)
  11. at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addDependencyJars(TableMapReduceUtil.java:776)
  12. at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addHBaseDependencyJars(TableMapReduceUtil.java:692)
  13. at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addDependencyJars(TableMapReduceUtil.java:737)
  14. at D2C_mapreduce_main.get_DMV_Job(D2C_mapreduce_main.java:130)
  15. at D2C_mapreduce_main.main(D2C_mapreduce_main.java:102)
  16. ... 5 more
  17. Caused by: java.net.URISyntaxException: Relative path in absolute URI: rsrc:hbase-common-0.98.11-hadoop2.jar
  18. at java.net.URI.checkPath(URI.java:1804)
  19. at java.net.URI.<init>(URI.java:752)
  20. at org.apache.hadoop.fs.Path.initialize(Path.java:203)
  21. ... 12 more

这一问题在这里得到了部分解决:
hadoop java.net.urisyntaxexception:绝对uri中的相对路径:rsrc:hbase-common-0.98.1-hadoop2.jar
http://mail-archives.apache.org/mod_mbox/hbase-user/201310.mbox/%3cloom.20131029t195007-578@post.gmane.org%3e
但尽管如此,也许由于缺乏在线资源,我认为这对社区来说是一个公开的问题。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题