热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

hadoop下跑mapreduce程序报错

mapreduce真的是门学问,遇到的问题逼着我把它从MRv1摸索到MRv2,从年前就牵挂在心里,连过年回家的旅途上都是心情凝重,今天终于在eclipse控制台看到了jobcompletedsuc

mapreduce真的是门学问,遇到的问题逼着我把它从MRv1摸索到MRv2,从年前就牵挂在心里,连过年回家的旅途上都是心情凝重,今天终于在eclipse控制台看到了job completed successfully,当时的兴奋难以形容,都有些不敢相信自己的眼睛,压抑住激动的心情再试了一遍,特么真的跑通了,喜极而泣。 

总结起来就是两处 

1.报错Class not found 或者 No job jar file set 

这是由于及集群中没有我们提交的jar包,所以namenode不知道怎么执行我们的job任务,所以就会报空指针异常错误,所以要自己打jar提交给集群。

解决方法: 所以先给自己的mapreduce程序打成jar包,然后放到工程的根目录下,然后在代码中添加JobConf cOnf=new JobConf();conf.setJar("hope.jar");这样就可以了。

引用参考资料4里面的解释:

虽然网上各种说是job.setJarByClass("WordCount.class")既可以解决,但实际上job.setJarByClass(WordCountTest.class)这个语句设置作业Jar包并没有成功。这是为什么呢?因为这个方法使用了WordCount.class的类加载器来寻找包含该类的Jar包,然后设置该Jar包为作业所用的Jar包。但是我们的作业 Jar包是在程序运行时才打包的,而WordCount.class的类加载器是AppClassLoader,运行后我们无法改变它的搜索路径,所以使用setJarByClass是无法设置作业Jar包的。我们必须使用JobConf里的setJar来直接设置作业Jar包。 

2.cannot init cluster,无法启动集群

 由于我们环境用的是CDH4.5.0所以包含了MRv1和MRv2,而我程序用的是MRv2的写法,MRv2引入Resource Manager就没有了job tracker的概念,所以在mapred-site.xml的文件里把如下配置注释掉 

  mapred.job.tracker

  master:8021

  mapred.job.tracker.http.address

  0.0.0.0:50030

 

如果你的程序没有问题,基本你就要从MRv1和MRv2的区别上入手去解决问题了,由于本人技术水平有限,还是个菜鸟,虽然二者的区别,理论我学习了很多,可是实际中eclipse一跑起来,我还真不知道到底能从哪里看出来当前跑的环境是1还是2。本人程序是继承新接口的MRv2,所以在mapred-site.xml的文件里添加如下配置 

  mapreduce.framework.name

  yarn

 

设置mapreduce程序跑在Yarn上。

此时不仅Mapreduce程序能跑,sqoop程序也能跑了,欢喜之至。

sqoop程序当时报错,cannot  init cluster

如果你也遇到这样的问题,请查看你的mapreduce跑的框架配置。 

3.上面搞完了之后mapreduce倒是能跑了,但是之前好好的hive不能跑了,shell下hive语句都还能正常执行,但是java程序里面的hive调用就不能跑了。

修改hive/conf下hive-site.xml文件,在底部添加如下内容: 

 

    hive.aux.jars.pathfile:///opt/cloudera/parcels/CDH/lib/hive/lib/hive-hbase-handler-0.10.0-cdh4.5.0.jar,file:///opt/cloudera/parcels/CDH/lib/hbase/hbase-0.94.6-cdh4.5.0-security.jar,file:///opt/cloudera/parcels/CDH/lib/zookeeper/zookeeper-3.4.5-cdh4.5.0.jar

   

此处切记, 中间的内容一定不能加换行或者空格,就因为犯此弱智问题,在后,前手欠加了换行,就报找不到jar包的问题,还以为我把hive环境搞坏了,害我苦苦查找了两天。 

参考资料: 

1. 新旧hadoop MapReduce实例解析  http://blog.csdn.net/liuxiaochen123/article/details/8786715

2. ClassNotFoundException: Job$Mapper问题及解决  http://hi.baidu.com/yangls06/item/a17251b6a447d77f244b0928

3. MapReduce提交作业常见问题 http://yu06206.iteye.com/blog/1402084

4. Hadoop作业提交分析(五)http://www.cnblogs.com/spork/archive/2010/04/21/1717592.html


推荐阅读
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 本文总结了Java中日期格式化的常用方法,并给出了示例代码。通过使用SimpleDateFormat类和jstl fmt标签库,可以实现日期的格式化和显示。在页面中添加相应的标签库引用后,可以使用不同的日期格式化样式来显示当前年份和月份。该文提供了详细的代码示例和说明。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 项目运行环境配置及可行性分析
    本文介绍了项目运行环境配置的要求,包括Jdk1.8、Tomcat7.0、Mysql、HBuilderX等工具的使用。同时对项目的技术可行性、操作可行性、经济可行性、时间可行性和法律可行性进行了分析。通过对数据库的设计和功能模块的设计,确保系统的完整性和安全性。在系统登录、系统功能模块、管理员功能模块等方面进行了详细的介绍和展示。最后提供了JAVA毕设帮助、指导、源码分享和调试部署的服务。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • Android 常用工具类源码大全
    Android常用工具类源码大全 ... [详细]
  • 我将SpringMVC升级到Spring3.2.5.我的一些剩余调用即使存在,也会返回无法识别的字段异常.这是错误.Resolvingexceptionfrom ... [详细]
  • MR程序的几种提交运行模式本地模型运行1在windows的eclipse里面直接运行main方法,就会将job提交给本地执行器localjobrunner执行-- ... [详细]
  • 刚开始crousera上学习<algorithmspart1>但对JAVA实在是不熟。******************************************** ... [详细]
  • 前言折腾了一段时间hadoop的部署管理,写下此系列博客记录一下。为了避免各位做部署这种重复性的劳动,我已经把部署的步骤写成脚本,各位只需要按着本文把脚本执行完,整个环境基本就部署 ... [详细]
author-avatar
何处逐梦_273
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有