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

[经验分享] hadoop学习(五)Hadoop2.2.0完全分布式安装详解(1)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-3-21 14:39:38 | 显示全部楼层 |阅读模式
本帖最后由 322e 于 2014-3-21 14:40 编辑

  和同伴一起搭建hadoop集群中遇到的各种问题,整理如下:
前言        在寒假前的一段时间,开始调研Hadoop2.2.0搭建过程,当时苦于没有机器,只是在3台笔记本上,简单跑通一些数据。一转眼一两个月过去了,有些东西对已经忘了。现在学校这边实验室申请下来了,分了10台机器(4G+500G),这足够我们玩的了。开始搭建Hadoop2.2.0分布式集群,也趁着这个机会把整个流程梳理一下。
        在很多博客中有关于Hadoop2.2.0版本的安装过程,有的很全,但是按照去做,还是会出现一些问题卡在那里。有的时候需要结合几篇文档去搭建平台。在这篇博客汇总会把我们遇到的问题,以及搭建过程中发生的一些事情总结一下。有关于hadoop具体的安装过程和配置相应的文件,我们后续也会给出来。
        如果你决定花点时间去读这篇文章了,请大家仔细读一下,因为每一个点,我们都在上面耽误了一些时间,梳理一下,大家如果遇到相应的问题,也算给大家提供了一个解决方案。
1、系统环境-配置静态IP:        Ubuntu环境,这里我们采用的是32位12.04.2版本。我们原先在老版本10.04中搭建,在安装ssh的时候,出现了问题。后来为了集群统一管理,我们把ubuntu整个版本升级到12.04(重装ubuntu)。
        简单说一下ubuntu安装过程,在windows系统中,利用wubi安装是最简单的,点击自己安装,然后按照步骤执行。结束后,遇到一个棘手的问题:新装的ubuntu不能上网。而这是搭建hadoop环境的前提,保证可以上网。
解决方法:配置静态IP。
        在ubuntu12.04版本中,右上角,有个上下图标,点击编辑连接,手动设置静态IP、网关、子网掩码、DNS。这样做的目的:是能保证ubuntu上网,是第一步。




        上述是图形化配置静态IP,我们也可以通过如下步骤手动配置。
执行:
   sudo gedit /etc/network/interfaces
输入:auto eth0  iface eth0 inet static   address 172.16.128.136  netmask 255.255.255.0  gateway 172.16.128.1  保存:重启网关
     sudo /etc/init.d/networking restart
2、安装jdk        这里会遇到一些问题。原因是,如果你是新装的ubuntu基本上不会遇到这种问题,你可以按照下面(1)的步骤就可以配置好环境变量,通过Java -version就可以查看jdk版本。如果你是在操作别人的电脑,由于原来jdk版本不一致。要重新安装jdk,但不能影响别人用户下的jdk版本。
        解决的办法就是,把自己要安装的jdk解压到本地用户如:/home/zz/jvm/jdk1.7.0_45,然后配置.bashrc环境变量。结束保存,source .bashrc后,java -version查看jdk版本号。
       如果,我们把解压好的jdk放到桌面上了。我们: cd  桌面。
执行:
       sudo cp -r jvm  /usr/lib  
       问题:一般我们移植jdk在不同机器之间互相拷贝,就会存在一个权限问题。这会导致即使我们按照正常的步骤配置好环境变量,在执行java  -version后,如果遇到权限问题,执行下面语句。
执行:jvm文件夹中放着jdk
     sudo  chmod  -R  777  jvm    把所有权限付给jvm
     sudo  chown -R  zz:zz  jvm       把jvm权限付给本用户,zz是当前用户。
2.1、JDK 安装:下载路径        http://www.oracle.com/technetwor ... nloads-1880260.html
       选择:jdk-7u45-linux-i586.tar.gz
       解压:tar  -zxvf  jdk-7u45-linux-i586.tar.gz
       解压文件为:jdk1.7.0_45,可以指定路径解压或解压后把文件复制到指定路径。
       配置环境变量:
       执行:cd 进入根目录。
       sudo gedit .bashrc
       添加:export JAVA_HOME=/home/zz/jvm/jdk1.7.0_45   export JRE_HOME=/home/zz/jvm/jdk1.7.0_45/jre   export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib  export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin         保存,关闭,执行
      source .bashrc
      java -version   查看版本
2.2、如果上面没有正常显示         sudo  gedit  /etc/profile:
         添加,上面在.bashrc 中的内容。保存,执行。
        上述的过程,适用于所有的过程。当你在公司里的时候,给你分配虚拟机的账号,你的所有操作不能影响别人的性能。比如:你要按章jdk1.7,而服务器的版本的jdk是1.6,这就要求,你只能把jdk解压到你用户的目录,在配置环境变量的时候,就指定你解压的目录中,这就使得,在不同的用户中,显示的jdk的版本可以是不一样的。如果你是新装的ubuntu,上述问题可能你不会遇到,也错过了一个学习的机会。
2.3 覆盖原有jdk(直接了当,我是这么干的)         为了集群管理方面,选在同一的安装路径。选择不是在本用户中,解压到/usr/lib/jvm/jdk1.7..
         配置环境变量,如果在/etc/profile 文件中,配置完,执行source profile后依然jdk版本没有出来。在此当前用户 .bashrc 文件中,添加刚才的的export 路径名称。关闭,执行source .bashrc。Java -version 就会出现jdk的版本。
        为什么我们采用这个路径:因为,先前在笔记本中搭建的hadoop集群中jdk路径就是此路径,也是为了兼容,方面。
       分别添加:export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45  export JRE_HOME=/usr/lib/jvm/jdk1.7.0_45/jre  export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib  export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin  3、更改ubuntu主机名       sudo  gedit  /etc/hostname
       添加:cluster1
      各个主机都要执行这一步,不同的就是cluster1-10。这里我们有10个节点。
      重新启动,终端显示由原先的:zz@ubuntu~& 变成zz@cluster1-10~$  
      这是为了以后安装ssh,各主机之间可用通过ssh互联方面。
4、配置hosts文件      sudo gedit /etc/hosts
      添加内容,如下:IP地址和名称是根据,你主机机器数来定的。127.0.0.1 localhost  # The following lines are desirable for IPv6 capable hosts  ::1     ip6-localhost ip6-loopback  fe00::0 ip6-localnet  ff00::0 ip6-mcastprefix  ff02::1 ip6-allnodes  ff02::2 ip6-allrouters  172.16.128.135  cluster1  172.16.128.136  cluster2  172.16.128.123  cluster3  172.16.128.124  cluster4  172.16.128.134  cluster5  172.16.128.133  cluster6  5、安装ssh        新安装完ubuntu后。
        先执行:sudo apt-get update  更新一下最新的文件。
        然后安装ssh:sudo apt-get install openssh-server
        下面要做的事情是,ssh生成秘钥,各主机之间可以互相ping通。
        进入根目录执行:
        ssh-keygen -t rsa
        cp id_rsa.pub authorized_keys
        所有的机器都执行上面的步骤:然后,gedit  authorized_keys 把每一台机器上的 authorized_keys中的内容拷贝到一个文件中,然后通过scp复制到每一台机器中。例如你有6台机器,把6台中的authorized_keys 的内容复制在写入authorized_keys 中。
       例如:下面cluster1、cluster2、cluster3等内容都复制到authorized_keys,目的就是为了各主机之间互相ping通。
     ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDnTV1H/ldg5njT3+jJlS6SGcidiS9tQ0cesLcN0LONZno/  NVaVNW79MKNj0LWUoDv/OZz7AQ0dDsbos9We8in9WQvVO2t2eoAuWExU5pqcv1tsRjXj43rKFCBJJedlXt+  4sirgQrlrwOCMloSOakncISLxSQ2a7MXUq+NJyVynyjfyykjC+p7Nl0rrnHllzfy28Etf3JzYGKoOhdiDqi  dA8O6xF8VsJOUTaqIc/g0RlHuHPzgaPEmRo+HWJHYda4uERmNSAlhuhBrq2PCNz0WDeHJtF2psDXVIhZeNms+  yJGh501mJCEnKwyediQHeFWc9J3JEGk0UaZdkzbYZ+VoR zz@cluster2     ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqqbQXmsAIccKCY6VWKhujvyGB88UGfi/v7i407VT9Mnd  CeP2yRUyn+HlZuZPxmCvqXSYDQUswUID8FYXZi3A6uKu2b7k+7juwZFj8tO5l3R4nAWxn1zqBk8sg0ubfBwc  xphoa/KrZq3h4TdfvhDivTdpG5chtWNlu3/JchmLDNYPcOcNYfndI6d/iDArP/cI4RDGbV4xDDOr65eX47KG  7i4zXlYeAJqOQ9IbbsIGkXRve1cfBp79dCNCPElmdWkCnRI3xa0rh3o5a7MLiIDuLHQCN8KPKORy55farme3  5K1bLV7rDmLdZVIY5GKdR7GgR/56wGZXw3CZPVlfDBFDZ zz@cluster1          最后在一台主机中authorized_keys拥有所有主机authorized_keys中的内容。
       进入当前路径,执行:
       scp authorized_keys cluster1:/home/zz/.ssh
       然后不断的变化cluster后面的数字,就可以把文件复制到不同的主机上。
       执行:
       ssh cluster1或2或3等等。 就可以免密码登录。
总结:        如果,通过配置ssh免密码登录,可以通过ssh cluster1等之间免密码互联。就说明整个工作进展顺利。到了这一步,也说明我们移植工作进展的顺利。下面我们就可以把以前搭建的hadoop整个目录移植到当前用户下,然后通过配置,master和solve节点就可以启动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-16021-1-1.html 上篇帖子: hadoop2.3.0单点伪分布与多点分布的配置 下篇帖子: Hadoop2.2.0动态添加,删除datanode,tasktracker
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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