最近重新捡起了Hadoop,所以博客重新开张~
首先描述一下我的问题:这次我使用eclipse在Ubuntu上运行hadoop程序。首先,按照厦门大学数据库实验室的eclipse下运行hadoop程序的教程配置好了eclipse,然后在命令行启动Hadoop。在eclipse界面中,有input文件夹,右键这个文件家有一个Upload files to DFS,通过这个上传之后,发现上传的文件大小为0.0。
解决方法:
首先提一句真是粗心毛病一定要改。。。。在命令行的启动hadoop的时候没有仔细看各个节点是否都启动,结果后来才发现是DataNode节点未启动;
下面说一下DataNode无法启动可能出现的情况:
注:下面讲的情况都可以根据/usr/local/hadoop/logs/hadoop-hadoop-datanode-king-Lenovo.log(king-lenovo是我的计算机名称)中查看到
1. 在日志中报错: 2015-06-11 16:11:06,822 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid dfs.datanode.data.dir /usr/local/hadoop/dfs/data
这个错误通常是/usr/local/hadoop/dfs/data这个文件夹有锁,即访问权限不够。
解决方法是修改文件夹权限:chomd g-w /usr/local/hadoop/dfs/data
2. 日志中报错:java.io.IOException: Incompatible clusterIDs in /usr/local/hadoop/dfs/data: namenode clusterID = CID-c1bf781c-d589-46d7-a246-7f64a6f24bc1; datanode clusterID = CID-b1ee6a5b-aa39-4e9e-b849-ee7c4650989b
这个错误的意思是namenode的clusterID与datanode的clusterID不一致,这通常是多次格式化节点造成的。
解决方法是将两处ID改成一致的。namenode clusterID在/usr/local/hadoop/dfs/name/current/VERSON中,datanode clusterID在/usr/local/hadoop/dfs/data/current/VERSON中,将其中一处修改为和另一个一致即可。
之后重启hadoop即可。