why 发表于 2018-10-29 12:44:39

Hadoop第一个样例Wordcount运行笔记

错误笔记
  1. 启动时发现莫名其妙的datanode没有启动。
  从logs日志中看到Incompatible namespaceIDs in /home/hadoop/tmp/hadoop_tmp,
想起来这个文件夹是自己新建的,是不是伪分布式时在里面产生了垃圾?于是sudo rm -rf然后sudo
mkdir重来了一次,想想不安全我再把其他的之前新建的文件夹全部重新按照这个方法操作了一次;最后-format然后./start-all.sh,
搞定啦。Datanode、JobTracker、SecondaryNameNode、Jps、TaskTracker、NameNode全部启动。
  2. 遇到sudo重定向权限不够的问题。
  众所周知,使用 echo 并配合命令重定向是实现向文件中写入信息的快捷方式。比如要向 test.asc 文件中随便写入点内容,可以:
echo "信息" > test.asc  
echo "信息" >> test.asc
  
/*以上两种写法都可以*/
  下面,如果将 test.asc 权限设置为只有 root 用户才有权限进行写操作,则:
sudo chown root.root test.asc  然后,我们使用 sudo 并配合 echo 命令再次向修改权限之后的 test.asc 文件中写入信息:
sudo echo "又一行信息" >> test.asc  
-bash: test.asc: Permission denied
  这时,可以看到 bash 拒绝这么做,说是权限不够。这是因为重定向符号 “>” 和 “>>” 也是 bash
的命令。我们使用 sudo 只是让 echo 命令具有了 root 权限,但是没有让 “>” 和 “>>” 命令也具有
root 权限,所以 bash 会认为这两个命令都没有像 test.asc 文件写入信息的权限。
  解决办法如下:
sudo sh -c 'echo "又一行信息" >> test.asc'  
echo "第三条信息" | sudo tee -a test.asc
  
/*以上两行任选一行即可实现*/
  3. snappy native library not loaded
  出现这种情况可能是你core-site.xml中文件路径写的不一致造成的,比如我的hadoop一致路径是/tmp/hadoop_tmp,但是在里面错写成了/temp,修改保存,重新格式化重启即可解决。
  4. org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException
  报错样式类似如下:
2014-02-18 23:36:22,717 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:hadoop cause:java.io.IOException: File /usr/hadoop_dir/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1  

  
2014-02-18 23:36:22,718 INFO org.apache.hadoop.ipc.Server: IPC Server handler 4 on 49000, call addBlock(/usr/hadoop_dir/tmp/mapred/system/jobtracker.info, DFSClient_NONMAPREDUCE_1570390041_1, null) from 10.1.151.168:56700: error: java.io.IOException: File /usr/hadoop_dir/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1
  从网上搜了一下这个问题,解决方案可以试试如下几个:

[*]  将masters与slaves中的主机配置为IP地址。
[*]  网上也有说防火墙没有关,也请检查一下。
[*]  重新格式化namenode hadoop namenode -format,并检查version文件中的ID
[*]  检查core-stite.xml mapred-site.xml 文件地址换成IP
[*]  检查相关日志,查看错误信息
[*]  注意datanode目录权限一定是 755
[*]  也有可能是java的bug引起的
  5. 其他N多错误
  我在运行中也出现过其他很多方面的错误,最有效且最快找到出错的方法就是查看log文件了,哪个地方没有正常开启,就去对应进程的.log文件查看。比较烦人的是.log文件内容是按照日期递增顺序进行写入内容的,意思就是你每次要查看最新的运行信息必须要往下翻翻翻。


页: [1]
查看完整版本: Hadoop第一个样例Wordcount运行笔记