如何在 aws emr 上使用 -libjars?

2023-12-05

Stack Overflow 上有类似的问题,但没有一个回答这个问题。当按照以下链接时出现问题http://grepalex.com/2013/02/25/hadoop-libjars/,我们需要使用 export HADOOP_CLASSPATH=/path/jar1:/path/jar2 才能使其正常工作。那么如何执行 export HADOOP_CLASSPATH=/path/jar1:/path/jar2 以使 -libjars 选项起作用。

我已经实现了一个 Tool Runner 。它在 hadoop 和 HDFS 上完美运行。

我尝试在使用自定义 jar 时执行此操作,但它给出了异常java.lang.NoClassDefFoundError: org/json/simple/parser/JSONParser:

这就是我在 EMR 中运行的内容,其中我使用 MultipleInputs 和一个要解析的文件,以便您可以看到多个路径作为参数,这在 hadoop 中运行时有效。

Alert -libjars s3n://akshayhazari/jars/json-simple-1.1.1.jar -D mapred.output.compress=true -D mapred.output.compression.type=BLOCK -D io.seqfile.compression.type=BLOCK -D mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec s3n://akshayhazari/rule/rule1.json s3n://akshayhazari/Alert/input/data.txt.gz s3n://akshayhazari/Alert/input/data1.txt.gz s3n://akshayhazari/Alert/output

任何帮助表示赞赏。


您可以尝试创建 FatJar 并运行。尝试创建一个添加了依赖项的 jar,然后使用 EMR 运行。它会起作用的。

在 ant build 中你可以使用如下

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 aws emr 上使用 -libjars? 的相关文章

随机推荐