在Windows 7中搭建Hadoop的开发环境需要注意以下几点:
1、因为我用的是64位操作系统,由于选择JDK版本的问题,出现了很多难以预测的问题,最终我选择的是jdk1.7.0_75,64Bit。
2、org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray 异常
hadoop2.6版本的dll,网上比较多的是2.2的dll,如果2.6版本用2.2的dll,会报hadoop 2.6 UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArra 错误,因为2.2的dll中NativeCrc32只nativeVerifyChunkedSums,没有nativeComputeChunkedSums和nativeComputeChunkedSumsByteArray,所以会报错,至于网上说的建同名包,拷贝NativeCrc32.java是没有用的,至少对于2.6.0来说是没有用的
3、UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
将NativeIO中 access(String path, AccessRight desiredAccess) 方法修改成:
public static boolean access(String path, AccessRight desiredAccess)
throws IOException {
return true;
//return access0(path, desiredAccess.accessRight());
}
4、在Eclipse中创建日志文件,方便调试:
log4j.rootLogger=debug,stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=mapreduce_test.log
log4j.appender.R.MaxFileSize=1MB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.logger.com.codefutures=DEBUG
5、将Administrator管理员账户修改称root,我在Centos中用root安装hadoop 2.6.0的。
6、
hadoop Windows下privilegedActionException解决方法
修改hadoop源代码,去除权限认证,修改FileUtil.java的checkReturnValue方法,如下:
private staticvoid checkReturnValue(boolean rv, File p,
FsPermissionpermission
) throws IOException {
// if (!rv){
// throw newIOException("Failed to set permissions of path: " + p +
// " to" +
//String.format("%04o", permission.toShort()));
// }
}
方法2:改为linux环境 不用cywin
方法3:换成0.20以前的版本
方法4:hadoop dfs -chmod -R 777 报错目录