MyEclipse-Maven编写WordCount时问题总结

来源:互联网 发布:女生做春梦 知乎 编辑:程序博客网 时间:2024/06/14 05:40

问题 1 :

关于MyEclipse总是报错缺少jar包:ClassNoFound

解决办法:
一般是Maven仓库不完整
1.

切换Map/Reduce视图
PS:这一点貌似很重要

2.在pom.xml添加

<dependencies>    <dependency>        <groupId>org.apche.hadoop</groupId>        <artifactId>hadoop-common</artifactId>        <version>2.6.1</version>    </dependency>    <dependency>        <groupId>org.apche.hadoop</groupId>        <artifactId>hadoop-hdfs</artifactId>        <version>2.6.1</version>    </dependency>    <dependency>        <groupId>org.apche.hadoop</groupId>        <artifactId>hadoop-mapreduce-client-core</artifactId>        <version>2.6.1</version>    </dependency>    <dependency>            <groupId>org.apache.hadoop</groupId>            <artifactId>hadoop-client</artifactId>            <version>2.6.1</version>        </dependency>  </dependencies>

3.项目右键Maven4Myeclipse–>update
4.再运行时会发现Maven build,而Maven_library中添加了许多架包
这里写图片描述


问题2:


** log4j:WARN No appenders could be foundfor logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4jsystem properly.
log4j:WARN Seehttp://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. **

解决办法:

在src文件夹下创建以log4j.properties命名的文件

注意一定要在src文件夹下,不是你自己定义的package

内容如下:

log4j.rootLogger=WARN, stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d%p [%c] - %m%n

选择上面的代码可以让控制台不输出任何信息,如果需要控制台输出日志信息

log4j.rootLogger=info,consolelog4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.layout=org.apache.log4j.SimpleLayout

问题3:


Java.io.IOException: Could not locateexecutable null/bin/winutils.exe in the Hadoop binaries.

解决办法:
一般是HADOOP_HOME配置出现问题

如果是修改了HADOOP_HOME,可能一时间配置未生效,可以选择电脑重启使配置失效

如果出现的是
Failed to locate the winutils binary in the hadoop binary path
一般是未配置winutils.exe
解决办法:
1.下载winutils的windows版本,最好选择与Hadoop版本相符的,下载的Zip文件,随便解压到一个目录
(我的是Hadoop 2.6.1)Hadoop_2.6.1
2.增加用户变量HADOOP_HOME,值是下载的zip包解压的目录
3. 然后在系统变量path里增加$HADOOP*_HOME\bin 即可


问题4:


**Exceptionin thread

“main”java.lang.UnsatisfiedLinkError:org.apache.hadoop.util.

NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V**

解决方法:
这是由于hadoop.dll 版本问题,2.4之前的和自后的需要的不一样
需要选择正确的版本
并且在 HADOOP_HOME/bin和 C:\windows\system32 上将其替换


问题5:


Exception in thread
“main”java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

atorg.apache.hadoop.io.nativeio.NativeIOWindows.access0(NativeMethod)

atorg.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:557)

解决办法:
现在的网上的版本一般是分两步:
1. 查看是否添加了hadoop.dll 到 C:\windows\system32;如果没有复制过去,重新运行看是否报错
2. 如果仍然不行,则需要修改源码(由于我的错误在第一步完成之后便消失了,未研究2步)

原创粉丝点击