带有第三方api的mapreduce

wpcxdonn  于 2021-06-02  发布在  Hadoop
关注(0)|答案(0)|浏览(348)

我在map reduce代码中使用了一些第三方api。我尝试了几件事,但没有成功(我正在使用cloudera 5.9版本)
1) 我尝试了fatjar方法(构建包含所有依赖项的jar),我的代码对我很有用,但这不是一个好的使用方法(我的jar大小非常大)。
所以我想分离第三方jar并使用分布式缓存共享它们。
2) 我试着使用下面的一些选项。
i) 我曾经 hadoop jar <jar_file_name> <main_class_name> <arguments> -libjars <list of jar files> 命令。->不起作用,得到classnotfoundexception
i、 a)我将第三方jar保存在本地文件夹中,并使用-libjars选项中的路径。-->不起作用,得到classnotfoundexception
i、 b)我将第三方jar保存在hdfs中,并使用-libjars选项中的路径。-->不起作用,得到classnotfoundexception
ii)我更新了代码以使用 DistributedCache.addFileToClassPath() -->不起作用,得到classnotfoundexception
iii)我更新了代码以使用 job.addCacheFile() -->不起作用,得到classnotfoundexception
iv)我更新了 /etc/hadoop/conf/hadoop-env.sh 又加了一行 export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/mani/test/lib/* 然后重新启动了集群,但仍然不起作用。
v) 我试着像这样运行命令 hadoop jar <jar_file_name> <main_class_name> <arguments> -D mapred.child.env="LD_LIBRARY_PATH=path/to/my/lib/*" -->不起作用,得到同样的异常。
vi)我也试过了 -Dyarn.application.classpath 但还是一样的问题。
我浏览了一些论坛和cloudera博客,以及其他一些网站。每个人都在讲同样的故事,但我不能得到输出后,即使正确地遵循他们的职位,我在这里错过了什么。
有人能帮我找出解决办法吗。
谢谢你,曼宁达。

暂无答案!

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

相关问题