分享

Myeclipse运行MapReduce报错

 IT技术武馆 2014-07-17
环境介绍:
hadoop版本:hadoop2.2
Windows版本:win7

首先我们通过插件远程连接:
具体操作可以参考:
新手指导:Windows上使用Eclipse远程连接Hadoop进行程序开发
达到效果如下

下面我们运行mapreduce程序,具体可以参考
通过实例让你真正明白mapreduce---填空式、分布(分割)编程
 这里重点说一下遇到的问题,及该如何解决?
遇到问题1:java.lang.ArrayIndexOutOfBoundsException: 0
  1. 2014-06-29 01:11:09,816 WARN  [main] util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
  2. 2014-06-29 01:11:09,831 ERROR [main] com.mapreduce (mapreduce.java:run(80)) - 0
  3. java.lang.ArrayIndexOutOfBoundsException: 0
  4.         at .mapreduce.run(mapreduce.java:54)
  5.         at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
  6.         at .mapreduce.main(mapreduce.java:34)
解决:
数组越界,如果有数组,看看是不是超出了范围,最常见的是忘记0元素。
比如args[1],args[2],我们是否忘记了args[0]了那。办法主要是细心

问题2:Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
  1. 2014-06-29 10:16:25,613 WARN  [main] util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
  2. 2014-06-29 10:16:25,791 ERROR [main] util.Shell (Shell.java:getWinUtilsPath(303)) - Failed to locate the winutils binary in the hadoop binary path
  3. java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
  4.         at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:278)
  5.         at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:300)
  6.         at org.apache.hadoop.util.Shell.<clinit>(Shell.java:293)
  7.         at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
  8.         at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.addInputPath(FileInputFormat.java:467)
  9.         at .mapreduce.run(mapreduce.java:56)
  10.         at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
  11.         at .mapreduce.main(mapreduce.java:36)
  12. 2014-06-29 10:16:25,810 INFO  [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(840)) - session.id is deprecated. Instead, use dfs.metrics.session-id
  13. 2014-06-29 10:16:25,811 INFO  [main] jvm.JvmMetrics (JvmMetrics.java:init(76)) - Initializing JVM Metrics with processName=JobTracker, sessionId=
问题3:Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

解决:
上面两个问题是因为缺少组件
winutils.exe下载
winutils.zip (18.14 KB, 下载次数: 8)
hadoop.dll下载
hadoop.zip (32.21 KB, 下载次数: 9, 售价: 1 云币)
hadoop-common-2.2.0-bin-master
hadoop-common-2.2.0-bin-master.zip (273.06 KB, 下载次数: 6, 售价: 2 云币)
步骤:
1.首先将hadoop.dll放到hadoop的bin目录下,如下图所示

2.配置hadoop home及path
 path,这里使用的是绝对路径,path里面配置的是hadoop的bin路径。配置完毕,切忌重启机器
如下图所示




错误4:数据类型错误
  1. 2014-07-01 11:10:46,667 INFO  [Thread-4] mapred.LocalJobRunner (LocalJobRunner.java:run(397)) - Map task executor complete.
  2. 2014-07-01 11:10:46,674 WARN  [Thread-4] mapred.LocalJobRunner (LocalJobRunner.java:run(482)) - job_local772026666_0001
  3. java.lang.Exception: java.io.IOException: Type mismatch in value from map: expected org.apache.hadoop.io.LongWritable, received org.apache.hadoop.io.IntWritable
  4.         at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:403)
  5. Caused by: java.io.IOException: Type mismatch in value from map: expected org.apache.hadoop.io.LongWritable, received org.apache.hadoop.io.IntWritable
  6.         at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.collect(MapTask.java:1055)
  7.         at org.apache.hadoop.mapred.MapTask$NewOutputCollector.write(MapTask.java:691)
  8.         at org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskInputOutputContextImpl.java:89)
  9.         at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.write(WrappedMapper.java:112)
  10.         at .mapreduce$myMapper.map(mapreduce.java:103)
  11.         at .mapreduce$myMapper.map(mapreduce.java:1)
  12.         at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
  13.         at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:763)
  14.         at org.apache.hadoop.mapred.MapTask.run(MapTask.java:339)
  15.         at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:235)
  16.         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
  17.         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
  18.         at java.util.concurrent.FutureTask.run(FutureTask.java:166)
  19.         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  20.         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  21.         at java.lang.Thread.run(Thread.java:722)
  22. 2014-07-01 11:10:46,922 INFO  [main] mapreduce.Job (Job.java:monitorAndPrintJob(1338)) - Job job_local772026666_0001 running in uber mode : false
  23. 2014-07-01 11:10:46,924 INFO  [main] mapreduce.Job (Job.java:monitorAndPrintJob(1345)) -  map 0% reduce 0%
  24. 2014-07-01 11:10:46,926 INFO  [main] mapreduce.Job (Job.java:monitorAndPrintJob(1358)) - Job job_local772026666_0001 failed with state FAILED due to: NA
  25. 2014-07-01 11:10:46,931 INFO  [main] mapreduce.Job (Job.java:monitorAndPrintJob(1363)) - Counters: 0

  26. 解决:
expected org.apache.hadoop.io.LongWritable, received org.apache.hadoop.io.IntWritable,这里传递的参数错误,传递正确的参数就ok了。

错误5:org/apache/commons/io/IOUtils
  1. java.lang.NoClassDefFoundError: org/apache/commons/io/IOUtils
  2.         at org.apache.hadoop.hdfs.DFSInputStream.getBlockReader(DFSInputStream.java:1099)
  3.         at org.apache.hadoop.hdfs.DFSInputStream.blockSeekTo(DFSInputStream.java:533)
  4.         at org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:749)
  5.         at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:793)
  6.         at java.io.DataInputStream.read(DataInputStream.java:149)
  7.         at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
  8.         at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
  9.         at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
  10.         at java.io.InputStreamReader.read(InputStreamReader.java:184)
  11.         at java.io.BufferedReader.fill(BufferedReader.java:154)
  12.         at java.io.BufferedReader.read1(BufferedReader.java:205)
  13.         at java.io.BufferedReader.read(BufferedReader.java:279)
  14.         at java.io.Reader.read(Reader.java:140)
  15.         at org.eclipse.ui.editors.text.StorageDocumentProvider.setDocumentContent(StorageDocumentProvider.java:142)
  16.         at org.eclipse.ui.editors.text.StorageDocumentProvider.setDocumentContent(StorageDocumentProvider.java:194)
  17.         at org.eclipse.ui.editors.text.StorageDocumentProvider.createDocument(StorageDocumentProvider.java:229)
  18.         at org.eclipse.ui.editors.text.StorageDocumentProvider.createElementInfo(StorageDocumentProvider.java:261)
  19.         at org.eclipse.ui.texteditor.AbstractDocumentProvider.connect(AbstractDocumentProvider.java:400)
  20.         at org.eclipse.ui.editors.text.TextFileDocumentProvider.connect(TextFileDocumentProvider.java:480)
  21.         at org.eclipse.ui.texteditor.AbstractTextEditor.doSetInput(AbstractTextEditor.java:4230)
  22.         at org.eclipse.ui.texteditor.StatusTextEditor.doSetInput(StatusTextEditor.java:237)
  23.         at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.doSetInput(AbstractDecoratedTextEditor.java:1480)
  24.         at org.eclipse.ui.editors.text.TextEditor.doSetInput(TextEditor.java:169)
  25.         at org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:3217)
  26.         at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
  27.         at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
  28.         at org.eclipse.ui.internal.WorkbenchWindow$13.run(WorkbenchWindow.java:1818)
  29.         at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
  30.         at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:1815)
  31.         at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3235)
  32.         at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3262)
  33.         at org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:359)
  34.         at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:306)
  35.         at sun.reflect.GeneratedMethodAccessor67.invoke(Unknown Source)
  36.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  37.         at java.lang.reflect.Method.invoke(Method.java:601)
  38.         at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
  39.         at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:877)
  40.         at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:857)
  41.         at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:119)
  42.         at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:333)
  43.         at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:254)
  44.         at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
  45.         at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:102)
  46.         at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:71)
  47.         at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:53)
  48.         at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129)
  49.         at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:949)
  50.         at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:633)
  51.         at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:735)
  52.         at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:706)
  53.         at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:700)
  54.         at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
  55.         at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:685)
  56.         at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1096)
  57.         at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer$1.handleEvent(LazyStackRenderer.java:66)
  58.         at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:41)
  59.         at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:180)
  60.         at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)
  61.         at org.eclipse.swt.widgets.Display.syncExec(Display.java:4688)
  62.         at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:205)
  63.         at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
  64.         at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197)
  65.         at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
  66.         at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
  67.         at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
  68.         at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
  69.         at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
  70.         at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)
  71.         at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)
  72.         at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:80)
  73.         at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:58)
  74.         at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
  75.         at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:171)
  76.         at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:576)
  77.         at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:543)
  78.         at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:610)
  79.         at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:322)
  80.         at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1034)
  81.         at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3112)
  82.         at org.eclipse.ui.internal.WorkbenchPage.access$21(WorkbenchPage.java:3034)
  83.         at org.eclipse.ui.internal.WorkbenchPage$8.run(WorkbenchPage.java:3016)
  84.         at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
  85.         at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3012)
  86.         at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2976)
  87.         at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2959)
  88.         at org.apache.hadoop.eclipse.actions.DFSActionImpl.open(DFSActionImpl.java:351)
  89.         at org.apache.hadoop.eclipse.actions.DFSActionImpl.access$100(DFSActionImpl.java:61)
  90.         at org.apache.hadoop.eclipse.actions.DFSActionImpl$1.run(DFSActionImpl.java:91)
  91.         at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
  92.         at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
  93.         at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4145)
  94.         at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3762)
  95.         at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
  96.         at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
  97.         at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
  98.         at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
  99.         at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)
  100.         at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
  101.         at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
  102.         at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
  103.         at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
  104.         at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
  105.         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
  106.         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
  107.         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
  108.         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
  109.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  110.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  111.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  112.         at java.lang.reflect.Method.invoke(Method.java:601)
  113.         at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
  114.         at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
  115.         at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
解决办法:
其实这不应该说是解决办法,应该是i/o的问题。这里多点击了几次,就ok了。如下图所示







    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多