设为首页 收藏本站
查看: 703|回复: 0

[经验分享] 在eclipse下搭建hadoop开发环境各种问题的解决

[复制链接]

尚未签到

发表于 2016-12-11 09:10:50 | 显示全部楼层 |阅读模式
  这两天折腾在eclipse中写hadoop map-reduce jobs,遇到了以下问题:
  1、无法配置ssh无密码登录
  2、无法启动hadoop守护进程
  3、hadoop-0.20.203.0的eclipse插件有问题
  4、通过eclipse插件连接非本地hadoop伪分布式集群,出现“拒绝连接”
  5、通过eclipse插件连接非本地hadoop成功后,权限不够、无法提交任务
  解决如下:
  环境:
  ubuntu11.10 / centos6.2
  hadoop-0.20.203.0
  eclipse-java-indigo-SR1-linux-gtk-x86_64
  配置过程:
  1、准备
  装好操作系统,安装jdk(参考http://blog.csdn.net/bhq2010/article/details/6839762)、ssh,centos6.2装上之后一般就带有openssh,在Services里面启用即可。
  然后配置ssh无密码登陆,为安装伪分布式hadoop集群做准备,执行命令:

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ ssh localhost
ubuntu很顺利,不用输入密码即可登陆。但
在centos上配置ssh无密码
登陆有点纠结,需要修改/etc/ssh/ssh_config文件和authorized_keys的权限(参考http://www.hackbase.com/tech/2011-07-21/64599.html)修改完最好把系统重启一下。
另外,不要将启动hadoop的用户的主目录加密,否则没法配置ssh无密码登陆(参考http://blog.csdn.net/bhq2010/article/details/7051383)。

  2、安装Hadoop
从hadoop官网下载hadoop-0.20.203.0rc1.tar.gz到某个目录,如/srv,解压之,注意一定要将解压之后的目录及其子目录和文件的所有者改为将要启动hadoop的用户(参考http://blog.csdn.net/bhq2010/article/details/7054913)。

之后设置HADOOP_HOME和PATH环境变量。虽然不是必须的,但为了以后方便,建议设置一下。在/etc/profile文件末尾添加:



export HADOOP_HOME=/srv/hadoop-0.20.203.0
export PATH=$PATH:$HADOOP_HOME/bin
然后对hadoop进行配置,分别修改如下$HADOOP_HOME/conf中的6个文件:
hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、masters、slaves

具体的配置参考hadoop文档。但有一点需要注意:尽管配置的是伪分布式集群,建议不要在配置文件中使用localhost,因为如果使用localhost,以后在其他计算机上通过网络连接本机的hadoop时,会出现“拒绝连接”的情况(参考http://galpha.iyunv.com/blog/1044355),我猜测这是因为hadoop的datanode是直接和用户建立连接的,不通过namenode,所以配置为localhost可能会导致用户试图和'localhost'上的datanode建立连接,故连接失败,猜测而已,目前没有能力去查证,还望指教。

另外,建议在core-site.xml中配置一下hadoop.tmp.dir:



<property>  
<name>hadoop.tmp.dir</name>  
<value>/esta/hadoop</value>  
</property>
这是hdfs存放namenode名空间和datanode数据块的地方,可以设置为任意存在的目录,默认在/tmp/hadoop-username目录下,但是很多情况下,tmp目录不适合存放重要的数据。
之后可以格式化hdfs、启动hadoop集群:


$ hadoop namenode -format
$ start-all.sh
如果遇到namenode启动失败,很可能是配置文件的问题。
如果遇到datanode启动失败,一般是没有成功格式化hdfs,实在无法解决的话,可以尝试将{hadoop.tmp.dir}清空,重新格式化hdfs。

用命令:



$ jps
察看是否启动成功,正常的情况下应该有5个与hadoop有关的项:


NameNode


SecondaryNameNode


DataNode



JobTracker


TaskTracker


通过浏览器打开http://localhost:50030和
http://localhost:50070分别察看jobtracker和namenode的运行情况。





3、配置eclipse插件


hadoop-0.20.203.0的eclipse插件缺少jar包,需要手动修改一下,参考http://hi.baidu.com/wangyucao1989/blog/item/279cef87c4b37c34c75cc315.html


如果连接其他机器上的hadoop失败的话:


1、关闭防火墙

  2、关闭远程机器上hadoop的safemode:
  

$ hadoop dfsadmin -safemode leave
  


3、远程机器上的hadoop配置文件中,将localhost改为ip地址
此外,即使连接上了远程机器也可能会出现:

org.apache.hadoop.security.AccessControlException:Permission denied...

的问题,解决方法是:

在$HADOOP_HOME/conf/hdfs-site.xml中加入:


<property>
<name>dfs.permissions</name>
<value>false</value>
</property>重新启动远程机器上的hadoop,重新链接后即可解决。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-312593-1-1.html 上篇帖子: 基于hadoop的推荐算法-mahout版 下篇帖子: spark取得lzo压缩文件报错 java.lang.ClassNotFoundException: Class com.hadoop.compression
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表