Hadoop学习遇到的常见错误以及解决方法

问题1
由于多次format namenode节点导致  namdenode 的 namespaceID 与  datanode的namespaceID 不一致,从而导致namenode和 datanode的断连。

解决:
1、先将Hadoop所有服务停止,stop-all.sh
2、在自己设置的临时文件夹(tmp/dfs/)中将data文件夹删除
3、重新启动Hadoop服务就可以了,start-dfs.sh,用jps查看。

问题2
window下的eclipse,远程连接虚拟机上的ubantu上的Hadoop伪分布式,遇到的问题如下截图:

解决:
1、没有理解好伪分布式与完全分布式
2、自己配置的只是一个用于本地测试的伪分布式环境。

问题3

解决:
在相应的路径下增添winutils.exe,即可。

问题4

-Dmaven.multiModuleProjectDirectory system property is not set.

解决:
添加M2_HOME的环境变量。在myEclipse中,Preference->Java->Installed JREs->Edit 选择一个jdk,添加这句话 ”-Dmaven.multiModuleProjectDirectory=$M2_HOME“ 如图:


问题5

从windows本地使用Hadoop上传或删除文件失败,出现如下问题:

解决方法:
为了安全,HDFS的权限检测机制默认是打开的,关闭之后,才能使用Eclipse插件上传文件到HDFS或者从HDFS中删除文件。为了能在Windows上直接操作Hadoop集群中的HDFS,需要做一些配置,有两种可行方法:

1、如果只在测试环境下,直接把Hadoop集群中的HDFS的权限检测关闭,可在hdfs-site.xml中添加如下变量,重启Hadoop集群即可。
< property > < name > dfs.permissions </ name > < value > false </ value > </ property >

2、 修改Windows本地主机名。首先,“右击”桌面上图标“我的电脑”,选择“管理”,接着选择“本地用户和组”,展开“用户”,找到当前系统用户,修改其为“hadoop”。最后,把电脑进行“注销”或者“重启电脑”,这样修改的用户名才有效。
(一般学习用,第一种方法就好了。)

问题6
window下eclipse运行Map/Reduce 项目,出现的错误,截图如下:


原因:当前用的Hadoop版本与hadoop.dll文件的版本不匹配。我用的是Hadoop2.9.0,而hadoop.dll不是这个版本。

解决方法:
1、上网下载2.9.0的hadoop.dll文件放到 C:\Windows\System32下;
2、还有记得更改本地hadoop\bin下的hadoop.dll。
问题7
hadoop连接mysql并将数据存储到hdfs中。

解决方法:
1、 把jar包传到集群上,命令如下
     hadoop fs -put mysql-connector-java-5.1.31.jar /hdfspath
2、 在mr程序提交job前,添加一下语句:
job.addArchiveToClassPath(new Path("hdfs://IP:9000/hadfpath/mysql-connector-java-5.1.31.jar"));


问题8
跑同样的算法,只不过数据源变大了,就出现这个报错:

原因:
虚拟机ubuntu磁盘空间满了,系统为了安全自动进入安全状态,从而任何修改操作将不能操作。

解决:
1. 给虚拟机扩容
2. 删除没用的缓存或数据
问题10
eclipse连接虚拟机搭建的局域网Hadoop集群,出现如下报错;
org.apache.hadoop.fs.FileSystem: Provider org.apache.hadoop.hdfs.DistributedFileSystem could not be instantiated

还没有解决,怀疑是Hadoop版本与hadoop-eclipse-plugin-2.7.3.jar版本不一致,试过了还是同样的错误。(最后解决了,是因为版本的问题)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值