用户登录
用户注册

分享至

执行mapreduce

  • 作者: 妈妈说名字长躲在树后面不会被部落发现
  • 来源: 51数据库
  • 2020-09-24
1.jpg 集群上执行使用Hadoop jar命令具体参考下面hadoop集群,如何运行Java jar包---如何运行mapreduce程序Eclipse运行时这样的:run as application或则run as hadoop详细参考下面hadoop开发方式总结及操作指导搭建Eclipse下运行Mapreduce代码的环境



  1.jpg 完全可以的,只要你打包正确,环境一致没有问题的。经常遇到的问题,比如找不到类,为什么找不到类,是因为环境变了,类不在原先的位置了,所以classpath需要配置,它们之间有些小区别,这个需要经验积累,但是大部分都是一样的。下面一些例子你可以参考一下:hadoop编程:解决eclipse能运行,打包放到集群上ClassNotFoundException:经验总结hadoop运行报错: java.lang.ClassNotFoundException解决方法 cannot find hadoop configurations in classpath



  1.jpg 你想的有点复杂了,mapreduce的本质是Java程序,mapreduce可以看做是Java的一个框架。
就可以把它认为是j2se.




  

理解你说的了,但还有点疑问,比如我们在Eclipse上编写好程序之后,下一步就是需要将这个项目打包,放到真正的Hadoop服务器上执行,但是数据源可能是周期性变化的,Hadoop有实现定时执行任务的解决办法么?不会每次都需要手工去输入hadoop jar xxx 去执行程序吧?



  1.jpg 你会写Linux脚本就可以。参考如下:用crontab每天定时执行mapreduce,结果发现hadoop作业一起无法正常运行,脚本正常执行,如下 vi /etc/crontab30 6 * * * hadoop sh /home/hadoop/test.shtest.sh 内容如下:hadoop fs -rmr output1hadoop jar /home/hadoop/contrib/streaming/hadoop-streaming-0.20.2+737.jar \ -mapper /home/hadoop/map -reducer /home/hadoop/reduce \ -file /home/hadoop/map -file /home/hadoop/reduce \ -input test/*.txt -output output1
软件
前端设计
程序设计
Java相关