【MapReduce】程序打成jar包上传集群运行



一、生成jar包


① 通过maven自动生成

  • 直接找到maven工具,点击package即可~
    在这里插入图片描述

② 手动打jar包

  • 找到project structure -> artifacts -> + ->jar -> empty,然后选择需要打包的项目(注意这里是按照Driver类来选的)
    在这里插入图片描述
  • ok后,找到build -> build artifacts
    在这里插入图片描述
  • 选择需要打的程序jar,点击build
    在这里插入图片描述
  • 过一会儿就会自动生成jar包
    在这里插入图片描述
    返回顶部

二、集群运行_路径问题

既然是集群运行,一般就是在虚拟机系统环境下,所以无论那种配置路径形式,所需要的资源文件都要在虚拟机系统中存在,所以在运行jar包之前要将资源文件从本地机上传至虚拟机中!!!

① 内置路径

这种方式就是将所需要的资源文件,在程序内配置好,直接打包后运行jar包,然后运行时,自动去搜索资源文件。
在这里插入图片描述
如上图,在Driver类中进行配置。这里有一点值得注意 “file://” 原本是指本地文件路径,由于这里是在虚拟机中运行,所以虚拟机就成了“本地机”,那么相应的资源文件路径,就应当是虚拟机中的某个路径。(这也就是为什么要将资源文件上传至虚拟机中)
在这里插入图片描述
在这里插入图片描述
另外,当没有了前缀 “file://” 的时候默认的路径是hdfs的文件路径!并且在Driver配置输出路径时,尾部文件夹不能存在,否则会报文件已存在的错误~
在这里插入图片描述

在这里插入图片描述
配置好之后,就开始运行jar包:

hadoop jar  自己打的jar包名称/路径  运行程序的主类(Driver类)路径

在这里插入图片描述

返回顶部


② 参数形式输入路径

这种方式就是将所需要的资源文件,在运行jar包的时候以参数的形式输入资源文件路径,然后运行时去搜索指定的资源文件。
在这里插入图片描述
如上图所示,在Driver类中配置时,以 args[m] 数组形式传参设定路径,打好jar包,上传。
在这里插入图片描述
在集群中运行jar包,指定参数——资源文件路径:

hadoop jar  自己打的jar包名称/路径  运行程序的主类(Driver类)路径 参数1 参数2 参数3 参数4 ...

在这里插入图片描述

注意:这里可能会报错,留心以下几点!

  1. FileInputFormat.setInputPaths(job,new Path(args[2]));
    FileOutputFormat.setOutputPath(job,new Path(args[3])); 注意这里输入输出类的正确书写
  2. 所有路径参数按args[m]数组形式,m从1开始;在运行jar包指定参数路径的时候要与程序内的数组顺序一致

参见jar包集群运行:FileAlreadyExistsException: Output directory … already exists

返回顶部


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑着蜗牛ひ追导弹'

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值