gpt4 book ai didi

java - hadoop java.net.URISyntaxException : Relative path in absolute URI: rsrc:hbase-common-0. 98.1-hadoop2.jar

转载 作者:可可西里 更新时间:2023-11-01 14:14:21 25 4
gpt4 key购买 nike

我有一个连接到 HBASE 的 map reduce 作业,但我不知道我在哪里遇到了这个错误:

Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: rsrc:hbase-common-0.98.1-hadoop2.jar
at org.apache.hadoop.fs.Path.initialize(Path.java:206)
at org.apache.hadoop.fs.Path.<init>(Path.java:172)
at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.findOrCreateJar(TableMapReduceUtil.java:703)
at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addDependencyJars(TableMapReduceUtil.java:656)
at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addHBaseDependencyJars(TableMapReduceUtil.java:573)
at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addDependencyJars(TableMapReduceUtil.java:617)
at org.apache.hadoop.hbase.mapreduce.HFileOutputFormat2.configureIncrementalLoad(HFileOutputFormat2.java:398)
at org.apache.hadoop.hbase.mapreduce.HFileOutputFormat2.configureIncrementalLoad(HFileOutputFormat2.java:356)
at com.ancestry.bigtree.hfile.JsonToHFileDriver.run(JsonToHFileDriver.java:117)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at com.ancestry.bigtree.hfile.JsonToHFileDriver.main(JsonToHFileDriver.java:69)
... 10 more
Caused by: java.net.URISyntaxException: Relative path in absolute URI: rsrc:hbase-common-0.98.1-hadoop2.jar
at java.net.URI.checkPath(URI.java:1804)
at java.net.URI.<init>(URI.java:752)
at org.apache.hadoop.fs.Path.initialize(Path.java:203)

如果我没有 Hbase 库,作业运行良好。在哪里生成相对路径?我怎样才能强制生成的路径是绝对的?

在我的代码中有这两行:

TableMapReduceUtil.addHBaseDependencyJars(conf);HFileOutputFormat2.configureIncrementalLoad(job, htable);

如果我删除它们我没问题,但工作没有完成我需要它做的事情。我最终试图创建 HFILE 以与 hbase bulkloader 一起使用。

环境:HBase 0.96.1.2.0.10.0-1-hadoop2Hadoop 2.2.0.2.0.10.0-1

提前感谢您的帮助或指导。

最佳答案

这个异常(exception)有点误导;没有真正的相对路径被解析,这里的问题是 Hadoop“路径”不支持文件名中的“:”。在你的情况下,“rsrc:hbase-common-0.98.1-hadoop2.jar”被解释为“rsrc”是“方案”,而我怀疑你真的打算添加资源文件:///路径/到/your/jarfile/rsrc:hbase-common-0.98.1-hadoop2.jar”。这是一个讨论非法字符的旧 JIRA:

https://issues.apache.org/jira/browse/HADOOP-3257

请注意,您可能也无法使用该绝对路径,因为它的文件名中仍然包含“:”。您可以尝试转义文件名,如“rsrc%3Ahbase-common-0.98.1-hadoop2.jar”,但在使用它的另一端可能无法正确找到它。

解决此问题的最佳方法是解决引入“rsrc:hbase-common-0.98.1-hadoop2.jar”的根本原因——使用 Eclipse 构建可运行的 jar 可能是问题的原因之一。如果可能,请尝试使用 Eclipse 以外的其他工具构建您的 jar,看看是否会出现同样的问题;在 Eclipse 中创建 jar 时,您还可以尝试选择“将所需的库打包到生成的 jar”。

如果 uber-jar 最终变得太大,您还可以尝试将原始依赖项 jar(如 hbase-common-0.98.1-hadoop2.jar)与您可能需要的任何其他依赖项一起放入所有节点的类路径中,然后跳过对“TableMapReduceUtil.addHBaseDependencyJars(conf);”的调用。

这是另一个用户遇到与您所看到的类似问题的旧线程:

http://lucene.472066.n3.nabble.com/Error-while-running-MapR-program-on-multinode-configuration-td4053610.html

关于java - hadoop java.net.URISyntaxException : Relative path in absolute URI: rsrc:hbase-common-0. 98.1-hadoop2.jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25334604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com