hadoop mapreduce jar
- 作者: 亖呉?盀
- 来源: 51数据库
- 2020-10-02
主要有4个方式:
1、把引用的所有的第三方jar包打到一个jar包内,形成一个超大包。
优点:简单,执行相对比较简单
缺点:一些版本升级较为麻烦,需要重新升级包
例如在maven可以添加以下配置项:
org.apache.maven.plugins
maven-shade-plugin
2.4.2
false
${project.build.directory}/shaded/examples-${project.version}-shaded.jar
package
shade
2、把引用到所有第三方包放到Hadoop的lib目录下
优点:执行运行即可。
缺点:需要重新启动集群,不容易维护
不推荐
3、把引用到所有第三方包放到集群中固定的一台机器上,使用libjars命令加载第三方jar
优点:只需要维护hadoop集群中的一台机器上的lib库,易于系统的维护;
缺点:只能在存放jar的机器上去执行hadoop jar 命令执行程序,且执行命令较复杂;
个人对这种方式还可以接受,不过并不是我最喜欢的方式。
在这里,我进行了测试,WordCount的代码不变,打成WordCount_libjarscmd.jar,注意在打包的过程中不要选择lib中的jar文件,然后把OperateHDFS.jar放到集群中的一台机器上面,执行的命令如下所示:
hadoop jar WordCount_libjarscmd.jar com.hadoop.examples.WordCount -libjars OperateHDFS.jar input libjarscmdoutput
4、把jar包放在HDFS或者OSS上,动态加载第三方jar包
优点:程序可以方便的在集群上的任何一个节点运行,且执行命令的机器没有限制;
执行命令:
jar ossref://yourBucket/yourPath/wordcoun
去官网下一个hadoop-0.20.203.0rc1.tar.gz包,然后解压一下,
在解压出来的hadoop-core-0.20.203.0.jar里有org.apache.hadoop.mapreduce 包
~如果你认可我的回答,请及时点击【采纳为满意回答】按钮
~~手机提问的朋友在客户端右上角评价点【满意】即可。
~你的采纳是我前进的动力
~~o(∩_∩)o,记得好评和采纳,互相帮助,谢谢。
1、把引用的所有的第三方jar包打到一个jar包内,形成一个超大包。
优点:简单,执行相对比较简单
缺点:一些版本升级较为麻烦,需要重新升级包
例如在maven可以添加以下配置项:
maven-shade-plugin
2、把引用到所有第三方包放到Hadoop的lib目录下
优点:执行运行即可。
缺点:需要重新启动集群,不容易维护
不推荐
3、把引用到所有第三方包放到集群中固定的一台机器上,使用libjars命令加载第三方jar
优点:只需要维护hadoop集群中的一台机器上的lib库,易于系统的维护;
缺点:只能在存放jar的机器上去执行hadoop jar 命令执行程序,且执行命令较复杂;
个人对这种方式还可以接受,不过并不是我最喜欢的方式。
在这里,我进行了测试,WordCount的代码不变,打成WordCount_libjarscmd.jar,注意在打包的过程中不要选择lib中的jar文件,然后把OperateHDFS.jar放到集群中的一台机器上面,执行的命令如下所示:
hadoop jar WordCount_libjarscmd.jar com.hadoop.examples.WordCount -libjars OperateHDFS.jar input libjarscmdoutput
4、把jar包放在HDFS或者OSS上,动态加载第三方jar包
优点:程序可以方便的在集群上的任何一个节点运行,且执行命令的机器没有限制;
执行命令:
jar ossref://yourBucket/yourPath/wordcoun
去官网下一个hadoop-0.20.203.0rc1.tar.gz包,然后解压一下,
在解压出来的hadoop-core-0.20.203.0.jar里有org.apache.hadoop.mapreduce 包
~如果你认可我的回答,请及时点击【采纳为满意回答】按钮
~~手机提问的朋友在客户端右上角评价点【满意】即可。
~你的采纳是我前进的动力
~~o(∩_∩)o,记得好评和采纳,互相帮助,谢谢。
推荐阅读
