hadoop+eclipse运行设置报错
来源:互联网 发布:信鸽查询软件下载 编辑:程序博客网 时间:2024/06/05 00:31
hadoop:2.6.4
eclipse:mars2
1、我想尝试一下zai hadoop上跑分布式缓存文件的测试代码。main方法设置如下(我有提前将hadoop上的主要配置文件hdfs-site.xml、core-site.xml等加入到classpath中,其实也可以直接在代码汇总设置conf.set(key,value)):
Configuration conf=new Configuration(); Job job=Job.getInstance(conf, "mapside"); job.setJarByClass(MapSideJoin.class); job.addCacheFile(new URI("hdfs://mini01:9000/map/cache/pdts.txt")); job.setMapperClass(MapSideJoinMapper.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(NullWritable.class); FileInputFormat.setInputPaths(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); //不需要reducer阶段的话要设置reducer数量为0 job.setNumReduceTasks(0); System.exit(job.waitForCompletion(true)?0:1);
但是这样是不能运行的,报错情况如下:
2017-09-18 17:08:46,111 INFO [main] client.RMProxy (RMProxy.java:createRMProxy(98)) - Connecting to ResourceManager at mini01/192.168.176.61:80322017-09-18 17:08:46,545 WARN [main] mapreduce.JobResourceUploader (JobResourceUploader.java:uploadFiles(64)) - Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.2017-09-18 17:08:46,567 WARN [main] mapreduce.JobResourceUploader (JobResourceUploader.java:uploadFiles(171)) - No job jar file set. User classes may not be found. See Job or Job#setJar(String).2017-09-18 17:08:46,613 INFO [main] input.FileInputFormat (FileInputFormat.java:listStatus(281)) - Total input paths to process : 12017-09-18 17:08:46,868 INFO [main] mapreduce.JobSubmitter (JobSubmitter.java:submitJobInternal(199)) - number of splits:12017-09-18 17:08:46,989 INFO [main] mapreduce.JobSubmitter (JobSubmitter.java:printTokens(288)) - Submitting tokens for job: job_1505719302308_00032017-09-18 17:08:47,126 INFO [main] mapred.YARNRunner (YARNRunner.java:createApplicationSubmissionContext(336)) - Job jar is not present. Not adding any jar to the list of resources.%JAVA_HOME%/bin/java$JAVA_HOME/bin/java2017-09-18 17:08:47,172 INFO [main] impl.YarnClientImpl (YarnClientImpl.java:submitApplication(251)) - Submitted application application_1505719302308_00032017-09-18 17:08:47,204 INFO [main] mapreduce.Job (Job.java:submit(1301)) - The url to track the job: http://mini01:8088/proxy/application_1505719302308_0003/2017-09-18 17:08:47,205 INFO [main] mapreduce.Job (Job.java:monitorAndPrintJob(1346)) - Running job: job_1505719302308_00032017-09-18 17:08:55,368 INFO [main] mapreduce.Job (Job.java:monitorAndPrintJob(1367)) - Job job_1505719302308_0003 running in uber mode : false2017-09-18 17:08:55,371 INFO [main] mapreduce.Job (Job.java:monitorAndPrintJob(1374)) - map 0% reduce 0%2017-09-18 17:09:00,459 INFO [main] mapreduce.Job (Job.java:printTaskEvents(1453)) - Task Id : attempt_1505719302308_0003_m_000000_0, Status : FAILEDError: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.ywj.mr.mapsidejoin.MapSideJoin$MapSideJoinMapper not found at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2154) at org.apache.hadoop.mapreduce.task.JobContextImpl.getMapperClass(JobContextImpl.java:186) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:742) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1656) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)Caused by: java.lang.ClassNotFoundException: Class com.ywj.mr.mapsidejoin.MapSideJoin$MapSideJoinMapper not found at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2060) at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2152) ... 8 more2017-09-18 17:09:05,509 INFO [main] mapreduce.Job (Job.java:printTaskEvents(1453)) - Task Id : attempt_1505719302308_0003_m_000000_1, Status : FAILEDError: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.ywj.mr.mapsidejoin.MapSideJoin$MapSideJoinMapper not found at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2154) at org.apache.hadoop.mapreduce.task.JobContextImpl.getMapperClass(JobContextImpl.java:186) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:742) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1656) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)Caused by: java.lang.ClassNotFoundException: Class com.ywj.mr.mapsidejoin.MapSideJoin$MapSideJoinMapper not found at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2060) at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2152) ... 8 more2017-09-18 17:09:11,549 INFO [main] mapreduce.Job (Job.java:printTaskEvents(1453)) - Task Id : attempt_1505719302308_0003_m_000000_2, Status : FAILEDError: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.ywj.mr.mapsidejoin.MapSideJoin$MapSideJoinMapper not found at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2154) at org.apache.hadoop.mapreduce.task.JobContextImpl.getMapperClass(JobContextImpl.java:186) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:742) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1656) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)Caused by: java.lang.ClassNotFoundException: Class com.ywj.mr.mapsidejoin.MapSideJoin$MapSideJoinMapper not found at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2060) at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2152) ... 8 more2017-09-18 17:09:18,590 INFO [main] mapreduce.Job (Job.java:monitorAndPrintJob(1374)) - map 100% reduce 0%2017-09-18 17:09:18,606 INFO [main] mapreduce.Job (Job.java:monitorAndPrintJob(1387)) - Job job_1505719302308_0003 failed with state FAILED due to: Task failed task_1505719302308_0003_m_000000Job failed as tasks failed. failedMaps:1 failedReduces:02017-09-18 17:09:18,676 INFO [main] mapreduce.Job (Job.java:monitorAndPrintJob(1392)) - Counters: 9 Job Counters Failed map tasks=4 Launched map tasks=4 Other local map tasks=3 Data-local map tasks=1 Total time spent by all maps in occupied slots (ms)=15874 Total time spent by all reduces in occupied slots (ms)=0 Total time spent by all map tasks (ms)=15874 Total vcore-milliseconds taken by all map tasks=15874 Total megabyte-milliseconds taken by all map tasks=16254976
反正就是提醒你找不到XXX类,但是你明明就是有呀,这个时候就得换一个方式运行。提前得将代码打成jar包放在“E:/”,然后将代码替换成下面这样。
job.setJarByClass(MapSideJoin.class); 换成 job.setJar("E:/map.jar");
这样就可以了,跑本地跑集群出现了类似的问题都可以这样解决
祈祷:仙女不会有BUG
阅读全文
0 0
- hadoop+eclipse运行设置报错
- hadoop eclipse 运行报错
- 运行hadoop报错
- eclipse hadoop设置报错 9000 failed on connection exception
- win7使用eclipse连接hadoop集群,运行mapreduce报错之:org.apache.hadoop.security.AccessControlException
- maven eclipse 运行报错
- Win7+Eclipse+Hadoop 运行WordCount报错:java.lang.OutOfMemoryError: Java heap space
- hadoop任务运行报错记录
- Win7 运行Hadoop WordCount 报错
- 运行hadoop wordcount 时候报错解决办法
- hadoop-2.6.0运行woudcount报错
- Hadoop运行MR程序报错
- eclipse 启动报错设置
- eclipse链接hadoop集群报错
- 运行 bin/hadoop jar hadoop-*-examples.jar wordcount报错
- 【Hadoop】12、运行hadoop的时候报错
- win7使用eclipse连接hadoop集群,运行mapreduce报错之Failed to set permissions of path
- eclipse下运行hadoop
- 二分查找
- 阻抗(输入阻抗、输出阻抗)与阻抗匹配(失配)
- uml 时序图
- Win10+VS2012配置OpenGL
- Lintcode两个集合的交集
- hadoop+eclipse运行设置报错
- CSS 元水平直居中的 6种方法
- logstash快速安装插件并打离线包(不改动永远别想装上)
- 反射基础之获取对象信息
- iOS runtime ~ objc_setAssociatedObject方法详解
- 数据结构 堆栈
- Android 上拉刷新 下拉加载 完美无bug
- Jvm内存模型
- 项目 1: 预测波士顿房价