共计 2681 个字符,预计需要花费 7 分钟才能阅读完成。
最近在需诶 Hadoop 的,尝试着将环境搭起来,真是不搭不知道,一搭下一跳啊,几乎步步都出错啊。网上不少人的回答也是灰常的坑人啊比(如最典型的就是命令的大小写问题,如 hadoop 命令是小写的,很多人写出 Hadoop, 所以大家在遇到 Command not found 这类错误时,先看看是不是大小写的问题),总之过程很痛苦,好在终于搭建起来了。
我不打算重述搭建的步骤,在别的文章我也简单的介绍下,这样步骤在网络上有太多了,只是记录下自己搭建遇到的问题,备忘。
本人几乎没有在 Linux 环境下编过程,对于 Linux 也不熟悉,所以会有很多地方不对,后续慢慢更正。
相关阅读 :
- Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
- Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
- Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
- Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
- 单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
- 搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm
环境:RedHat6(企业版)
Hadoop 版本:1.04
Eclipse:3.4
模式:hadoop 有三种模式,本地模式、伪分布模式、分布模式。由于只是用于学习,(条件也不允许搭建分布模式),只搭建了伪分布模式下的环境。
今天暂时把问题 mark 下,后续补上。
1:hadoop 版本选择问题
2:ssh 免密码登陆问题
3:Windows 与 Linux 互 ping
4:hadoop 服务启动问题(start-all.sh)
5:Eclipse 连接 Hadoop 问题(防火墙)
先 mark 到这吧,Linux 相关的知识急需恶补~~~
问题 1:版本选择问题
第一次打环境的时候用的是 hadoop 0.22.0 版本,后来发现这个版本少了部分 jar 包(不知道为何?)于是又去 Apache 官网上下了 1.04 版本,官网上介绍的时候,也提到了此版本是稳定版本。
问题 2:SSH 免密码登陆问题
对于这个问题,我至今也没搞定,我在同事的机器上试验了,没有问题,可是自己的机器死活还是要密码,也上网查了一些资料,大致的步骤如下,
root@localhost hadoop]# ssh-keygen -t rsa 一直按 enter,就会按默认的选项将生成的密钥对保存在.ssh/id_rsa 文件中
Generating public/private dsa key pair.
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
74:79:98:eb:fa:e0:53:aa:e3:1b:e4:a4:16:7a:6b:31 root@localhost
执行以下命令
[root@localhost hadoop]# cp id_rsa.pub authorized_keys
然后执行 ssh localhost,可以实现用 ssh 连接并且不需要密码连接
如果还是需要密码,那就是权限问题,将权限设置如下:
chmod 700 /.ssh/(对应自己安装的 ssh 路径)
chmod 600 /.ssh/authorized_keys
一般情况下,如上操作就可以实现本机的 ssh 免密码登陆了(还是不行,我也不知道了,因为我自己至今还是要密码,郁闷中)
我写 ssh 的目的不是为了说如何设置 SSH 免密码登陆,而是为了说明这一步在单机模式或者伪分布模式下并不是非得必要的,因为这里没有大量集群,即使连接的时候需要密码,也只要输入几次(我在伪分布模式下只需要输入 3 次即可)。很多人说这个必须要需设置免密码,个人觉得这话有点误导人,至少误导了我,我在 ssh 设置上花了大概一天的时候,还没搞定。其实如果只是出于学习 Hadoop 的需要,如果在这一步上卡壳了,那就先别管他了吧,后续自己看看能不能再解决。(当然,如果能成功的设置的 ssh 免密码登陆那是最好的了)
问题 3:Windows 与 Linux 互 ping
如果你跟我一样,习惯在 Windows 下进行开发,想在 Windows-Eclipse 下开发程序,那么这一步是必须的,至少要保证在 Windows 下 ping 通 Linux。我也不敢细说这部分内容,怕误导了人,下面这个步骤是我在网上找到的,暂时这么用的,但是我不能保证合理性
请大家参考这个链接:http://www.linuxidc.com/Linux/2014-04/100450.htm
4:hadoop 服务启动问题(start-all.sh)
在 hadoop1.0 后,已经不建议使用 start-all.s 和 stop-all.sh 命令了,而是用 start-dfs.sh start-mapred.sh 和 stop-dfs.sh stop-mpared.sh 这两组命令来实现服务的启动和关闭。
提示:在 hadoop 第一次启动之前,需要格式化 namenode。(只有安装好环境第一次使用才进行此操作,如果后续又格式化了,那么会出现 datanode 于 namenode 命名空间不一致的错误,解决的方法也很简单,只需要手动的修改其中的任何一个使其一致就可以了,如何修改,也请看网上吧,很多的)
5:Eclipse 连接 Hadoop 问题(防火墙)
使用 Eclipse(Windows 环境下)连接到 Linux 时,本人遇到了两个问题,导致连不上,一个是由于 Linux 的防火墙设置导致的,我参照(http://www.linuxidc.com/Linux/2014-04/100450.htm)第三步的防火墙设置可以解决问题,但是显然不太好,有更好的处理方式,就用更好的吧。
更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13