`
heipark
  • 浏览: 2075321 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

我遇到的hadoop错误和解决方法汇总

阅读更多

 

==================================

windows cygwin环境下,遇到这个错误:org.apache.hadoop.security.AccessControlException: Permission denied: user=cyg_server, access=EXECUTE, inode="job_201010161322_0003":heipark:supergroup:rwx------

 

解决:刚开始还使用“./bin/hadoop dfs -chmod 777 ”,后来发现老是这样设置麻烦。可以取消hadoop hdfs的用户权限检查。打开conf/hdfs-site.xml,找到dfs.permissions属性修改为false(默认为true)OK了。注意生产环境处于安全考虑不要这么搞。

 

==================================

window下使用eclipse开发hadoop程序遇到的问题。

现象一:“DFS Locations”无法浏览DFS中文件,报错

Cannot connect to the Map/Reduce location: heipark
Call to localhost/127.0.0.1:9000 failed on local exception: java.io.EOFException

现象二:启动自己编写的mapred程序报相同错误。

 

原因:Hadoop服务端版本和eclipse插件版本不一致

 

解决:倒腾了好几个版本eclipse和hadoop插件,有的点击没反应,不能浏览文件系统。最后整理了一下有两个办法:

一:自己编译eclipse plugin(自己尝试编译0.21.0版本没有成功。首选遇到包的依赖问题,接着编译成功后,eclipse右键创建还是没有响应)

二:我使用0.21.0自带的eclipse plugin在多个eclipse都不好用,在网上下了一个可以3.3,,3.4,3.5都可以跑的hadoop-0.20.3-dev-eclipse-plugin.jar(http://code.google.com/p/hadoop-eclipse-plugin/downloads/list),但是报上面的错误,有网友说是插件和hadoop版本不一致导致的。最后我下载了一个0.20.2版本hadoop,使用自带的插件在eclipse3.3.2下完美运行

 

==================================

Namenode报错:“jobtracker.info could only be replicated to 0 nodes, instead of 1

DateNode报错java.io.IOException: Incompatible namespaceIDs错误

 

原因:由于DateNode一段时间未启动,再次启动与NameNode数据不同步导致。

 

解决一:修改/dfs/data/current/VERSION文件中namespaceID值,保证NameNode和DateNode一致。修改原则:如果你有多个DateNode需要都需要修改,那就修改NameNode;否则就修改NameNode。总之就是最小化修改原则。这样修改不会删除数据,推荐。

 

解决二:删除有问题datenode的data文件夹,然后format namenode。

参考:http://forum.hadoop.tw/viewtopic.php?f=4&t=43

 

==================================

在windows eclipse开发环境提交job到远处linux hadoop集群,运行mapred报错“IOException: Cannot run program "chmod": CreateProcess error=2

 

原因:安装cygwin,而且需要设置"cygwin\bin"到环境变量PATH中

 

==================================

运行hive0.6.0报如下错误:

Invalid maximum heap size: -Xmx4096m
The specified size exceeds the maximum representable size.
Could not create the Java virtual machine.

修改“hive-0.6.0/bin/ext/util/execHiveCmd.sh”

 

HADOOP_HEAPSIZE=4096

HADOOP_HEAPSIZE=256

 

==================================

使用java client运行hive官方《 Getting Started Guide》中apachelog例子报错:

 

ClassNotFoundException: org.apache.hadoop.hive.contrib.serde2.RegexSerDe

 

hive没有找到hive-contrib-0.7.0.jar吗?这个jar明明在lib下,解决办法如下:

 

    vi hive-default.xml 

 

<property>
<name>hive.aux.jars.path</name>
<value>file:///home/hadoop/hive-0.7.0/lib/hive-contrib-0.7.0.jar</value>
</property>

再次启动Hive Thrift Server,OK了。

 

参考资料:http://web.archiveorange.com/archive/v/S2z2uyzt6K4HGoJJbSUy 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics