使用apache hadoop jar文件还是特定于供应商?

nhaq1z21  于 2021-06-02  发布在  Hadoop
关注(0)|答案(4)|浏览(291)

我正在为hadoop创建一个应用程序,它应该运行在不同供应商提供的hadoop的所有发行版上,比如:cloudera、mapr、hortonworks、pivotal等等。我的应用程序可以部署在weblogic、jboss等应用服务器上,也可以部署在tomcat上。所以我的问题是:-假设所有这些供应商的某个版本都使用相同的基础hadoop版本,比如hadoop2.0,那么我应该使用这些供应商提供的jar文件还是使用apachehadoop提供的jar文件?
我是说jar文件与apachehadoop有相同的类,但是它们的名字像 blablaCDH5.2blabla.jar ,那么我应该用这个还是apache的?因此,我可以为hadoop2.0构建一个单一版本,并将其用于所有供应商。这是可以做到的,或者我必须为所有供应商发行版构建不同风格的应用程序。
提前谢谢

3duebb1j

3duebb1j1#

一种方法可能会因版本控制和构建系统的不同而略有不同,那就是使用不同发行版的依赖项来创建单独的构建脚本。
如果给定发行版的测试用例失败,您可以为该发行版提供一个分支/分支,或者,可能不太理想,使用一个特定的构建,为该发行版提供一些预构建魔法。
通过这种方式,您应该能够维护一致的 Backbone.js ,同时能够跟踪和处理供应商/版本特定发行版中出现的问题。对于git和大多数构建系统(如gradle、maven或ant),这绝对是可能的。

bsxbgnwa

bsxbgnwa2#

您可以创建一个允许应用程序与任何hadoop发行版一起运行的填隙片层。由于大多数发行版都有不同的hadoop版本,因此很难处理此问题。因此,大多数供应商现在都在创建可以与任何hadoop发行版一起使用的填隙片层。填隙片层现在已在许多应用程序中实现应用如pentaho、hive、gora等。

rdlzhqv9

rdlzhqv93#

这取决于你对hadoopapi的理解有多深。
如果您的应用程序只向集群提交作业,那么只要您坚持使用一个特定的版本,就可以使用vanilla库。如果您正在做高级工作并使用hadoop内部构件,那么可能需要包含特定于供应商的内容。

avwztpqn

avwztpqn4#

dennis您可以使用apachehadoop提供的jar构建应用程序,因为它们都是apachehadoop的修改形式。所有这些发行版都有相同的基线结构,所以使用apachehadoop提供的jar不会产生任何问题。事实上,我为您提供了cloudera的链接,其中他们使用的是apachehadoop本身提供的jar。

相关问题