【前言】前面几天一直在单机的伪分布式上测试一个pagerank算法,因为数据量不大,所以还将就跑着挺顺利的,算法运行稳定,但是项目要处理的是新浪微博的数据,从抓取的数据来看,微博网络纯文本数据3.7G,经过处理,数据最终达到5.6G,这在单机的伪份分布式上肯定是没法跑的,毕竟我当时装伪分布式就是为了学习的,也没为处理大数据准备。昨天晚上到机房准备测试前面写的pagerank算法的,因为前面在机房部署的三台机子的hadoop平台还没有配置eclipse的hadoop开发环境,所以从开始配eclipse的开发环境到最终的运行,出了很多问题,昨天晚上在hadoop集群上只是简单的把3.7G的数据处理好了,今天开始正式计算。这里记录下这个过程中出现的各种问题。
一、环境介绍:
hadoop:hadoop1.1.2
linux:centos6.5 64位
结点数:3台机器(各自的配置:2G内存,200G硬盘)
二、问题记录:
问题一:eclipse配置hadoop开发环境中出现的问题
昨晚在配置eclipse环境的时候,出现了一个很怪异的问题,这里简单的描述一下:
我把我虚拟机上的eclipse和对应的插件通过工具传到我在实验室部署的hadoop集群的主节点上,然后解压,把插件放到eclipse的plungein里面,过程看似一点问题都没有的,刚开始也的确是没问题,都是常规的配置,但是视图始终都没有像预期的那样显示出来,我开始以为是插件可能有问题,我又在网上到处找插件,找了两三个,一个个试,试的最后我打开eclipse,连插件都识别不出来,我又在网上查各种办法,结果还是不显示。真的是想哭的心都有了,这时候,我尝试了一种新的办法,我前面没有提,我使用的是grid用户登录的主节点的linux系统,这次我切换了下登陆用户,改成root用户登录,然后按照上面的步骤又做了一次,这次插件是显示出来了的,但是视图中hdfs的目录还是没显示出来,差点绝望了,我想还是算了,我接着测试我的程序吧,大不了我打包放到hadoop集群中运行,不用简单的方法了。就在这个时候,我发现我创建mapreduce项目后,弹出了个对话框,提示我要不要显示hdfs的视图。。。
问题二:namenode无法启动的又一个奇怪的原因——java hatspot(tm) 64-bit server vm warning
起namenode时,hadoop报错:
JavaHotSpot(TM) 64-Bit Server VM warning: Insufficient space for sharedmemory file:
Try using the-Djava.io.tmpdir= option to select an alternate temp location
/tmp/hsperfdata_work/23408
这是个纠结的问题,从未遇见过,没办法,还得向度娘低头,经过查百度发现:
大意是没有空间在/tmp下面建立JVM的pid文件
解决方法之一就是取消文件的自动创建(使用的命令参数见这个链接http://stackoverflow.com/questions/76327/how-can-i-prevent-java-from-creating-hsperfdata-files,或者修改一个创建目录,但是磁盘有一个是满的,也创建不了。没办法用第二种方式,找出哪个磁盘是满的,解决点就好了。
这里使用命令df + 目录查看各个目录的使用情况,最后发现了问题所在。
为题出在,我将微博的数据上传到主节点中了,然后又将数据上传到hdfs中,但是我没有删除源文件,导致那个庞大的文件还在那里,其实还是我当时在实验室搭环境的时候没有考虑太多,硬盘数量给的有点少了,这是主要的问题,如果企业中肯定是不会出现这样的类似问题的。
本文分享了在三节点Hadoop集群上配置Eclipse开发环境及运行PageRank算法的实战经验,包括解决eclipse插件显示问题、namenode启动错误等挑战。
1169

被折叠的 条评论
为什么被折叠?



