现在的位置: 首页 > 综合 > 正文

Hadoop2.4+Eclipse出现的问题

2018年01月26日 ⁄ 综合 ⁄ 共 3111字 ⁄ 字号 评论关闭

1.WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable.

          相关网址:http://blog.csdn.net/wulantian/article/details/38112193

          问题描述:32位的hadoop,安装在了64位的linux系统上。lib包编译环境不一样,所以不能使用。

          问题解决: 经查看Ubuntu为32位,忽略上述解释,但是lib包可能需要手工编译,待解决。

2.Hadoop:could
only be replicated to 0 nodes, instead of 1

             相关网址:http://blog.csdn.net/zuiaituantuan/article/details/6533867(主要)

                            http://blog.sina.com.cn/s/blog_4c248c5801014nd1.html

          问题描述:Jps查看结果

                            root@finds-virtual-machine:/usr/local/hadoop# jps

                           11463                                (空白是怎么回事)(没有DataNode)
                           16103 SecondaryNameNode
                           16472 NodeManager
                           15643 NameNode
                           16267 ResourceManager
                           18059 Jps

                           运行wordcount实例之前执行上传文件的命令:

                           [root@localhost hadoop-0.20.0]# bin/hadoop fs -put input in           此命令不会成功,提示上述错误。

          问题解决:从日志中可以看出,原因是因为datanode的clusterID 和 namenode的clusterID 不匹配。
                            打开hdfs-site.xml里配置的datanode和namenode对应的目录,分别打开current文件夹里的VERSION,可以看到clusterID项正如日                               志里记录的一样,确实不一致,
修改datanode里VERSION文件的clusterID 与namenode里的一致,再重新启动dfs(执行start-
                                    dfs.sh)再执行jps命令可以看到datanode已正常启动。(这个问题一般是由于两次或两次以上的格式化NameNode造成的,有两种                               方法可以解决,第一种方法是删除DataNode的所有资料(及将集群中每个datanode的/hdfs/data/current中的VERSION删掉,然后                              执行hadoop namenode
-format重启集群,错误消失。<推荐>);第二种方法是修改每个DataNode的namespaceID(位                                               于/hdfs/data/current/VERSION文件中)<优先>或修改NameNode的namespaceID(位于/hdfs/name/current/VERSION文件中),                               使其一致。)
出现该问题的原因:在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs
namenode -                             format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变。

3.Eclipse运行WordCount无法找到Input 路径

相关网址:http://blog.sina.com.cn/s/blog_7deb436e0101kh0d.html(解决关键)

                  http://blog.csdn.net/xw13106209/article/details/6855523

                  http://blog.sina.com.cn/s/blog_7deb436e0101kh0d.html

问题解决:http://blog.sina.com.cn/s/blog_7deb436e0101kh0d.html中的路径配置是正确的。

                  改正后路径:hdfs://localhost:9000/user/root/input hdfs://localhost:9000/user/root/output

4.

是输入的问题,但是改过后那三个log4j:WARN还在
回答
log4j:warn可以不管
警告是提示你没有配置log4j,所有的日志只会输出在控制台。
要去掉这个警告也可以,配置一下log4j就行,参考如下:

http://blog.csdn.net/azheng270/article/details/2173430/

5. ubuntu12.10系统下通过eclipse运行hadoop2.4.0的wordcount程序,出现这种情况,run之后过了几秒钟,报了几个警告,但是没有任何统计,也没有出现对应的output文件,有没有人遇到过这样的问题??
终端输入指令可以运行wordcount程序。
报了三个警告,我觉得没关系的:
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.  

改好log4j后,出现如下问题,org.apache.hadoop.security.AccessControlException: Permission denied: user=think, access=WRITE, inode="/user/root":root:supergroup:drwxr-xr-x

相关网址:http://bbs.csdn.net/topics/390924666 (感谢wuzhongfei88的帖子

                 http://www.cnblogs.com/acmy/archive/2011/10/28/2227901.html(感谢十年一贱提供的解决方案)

                  

问题描述:如上。

问题解决:因为Eclipse使用hadoop插件提交作业时,会默认以 DrWho 身份去将作业写入hdfs文件系统中,对应的也就是 HDFS 上的/user/xxx , 我的                    为/user/hadoop ,   由于 DrWho 用户对hadoop目录并没有写入权限,所以导致异常的发生。提供的解决方法为:放开 hadoop 目录的权                      限 , 命令如下 :$ hadoop fs -chmod 777 /user/hadoop    
        

             

抱歉!评论已关闭.