如何使用maven构建hadoop作业

1yjd4xko  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(315)

我对maven和hadoop都是新手,想知道更多关于如何设置maven环境的知识,这样我就可以构建一个简单的hadoop wordcount作业。如果wordcount作业由map.java、reduce.java和驱动程序类wordcount.java组成,那么它们应该保存在哪里,以便maven可以将它们编译成.jar?我还有一个pom.xml。如果有人能详细解释如何使用maven运行wordcount作业,我将不胜感激。我现在正在ubuntu终端上的单节点集群hadoop tar上做所有的事情。我发现这些链接给了我一些见解,但我不完全了解整个路径目录方案。具体来说,组id和工件id的名称是任意的,还是与某个路径有关?主目录和src目录是怎么回事?更一般地说,如何在没有ide的情况下构建hadoopjar。
https://azure.microsoft.com/en-us/documentation/articles/hdinsight-develop-deploy-java-mapreduce/
http://www.bogotobogo.com/hadoop/bigdata_hadoop_creating_wordcount_maven_project_eclipse_mapreduce.php

ct3nt3jp

ct3nt3jp1#

要运行mapreduce作业,您只需要一个包含job、mapper和reducer类的jar。现在的重点是如何管理依赖jar。
maven是一种方法。在pom中,您将jar的细节作为依赖项提供。如果在系统中正确设置了maven,那么一旦定义了pom和依赖项的项目,jar就会被引用。您可以运行maven clean install,并且在pom中定义了build plugin(maven jar plugin),您应该在目标文件夹中获得一个jar。
现在,您的jar已经正确构建了。下一步是当你把它带到集群时,它又需要jar了。一种方法是在构建jar时,您可以构建一个fat jar,它也会向jar添加依赖项,您不必担心jar的集群环境。另一种方法是继续使用只有您的类的jar,然后设置hadoop classpath,它指向集群中的所有jar。
最后,通过上面的设置,您就可以使用hadoopjar命令了
回答你的问题
pom有两个主文件夹。src和target。目标通常用于存储构建的输出(可以是jar或war)。您可以创建一个目标文件夹作为构建脚本的一部分,也可以在eclipse开发期间创建。
如何检查maven是否已安装-一旦安装,并设置本地存储库路径,然后运行maven install-这将导致获取pom中定义的jar并将它们存储在本地存储库中。如果发生这种情况,那你就是好人。挑战是从因特网外部资源下载jar时的防火墙问题。
作业是否使用相同的pom—mapreduce作业是用java类定义的。所以那个jar里的所有作业都将使用相同的pom。这是显而易见的。您可以继续阅读构建、jar引用、maven用法、ant比较(传统的构建方式)和maven—以提高您的知识

相关问题