问题 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, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d%p [%c] - %m%n
选择上面的代码可以让控制台不输出任何信息,如果需要控制台输出日志信息
log4j.rootLogger=info,console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.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步)