热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VirtualBox环境下基于多台Ubuntu虚拟机的Hadoop分布式计算环境搭

作者:李磊beginner_Lee完成时间:2011-5-2312:15版本:v2.0摘要:本文介绍了在VirtualBox下安装3台Ubuntu虚拟机,并搭建Hadoop环境的基本步骤,最后运行了Hadoop自带example中的wordcount例程,可以作为初学者的入门教材。环境:主

作者:李磊 beginner_Lee

完成时间:2011-5-23 12:15

版本:v2.0

摘要:本文介绍了在VirtualBox下安装3Ubuntu虚拟机,并搭建Hadoop环境的基本步骤,最后运行了Hadoop自带example中的wordcount例程,可以作为初学者的入门教材。

环境:

主机:Ubuntu 11.04

VirtualBox版本:4.0.6 r71344

Ubuntu虚拟机版本:Ubuntu 11.04

Ubuntu虚拟机jdk版本:jdk-1.6.0_25

Ubuntu虚拟机hadoop版本:hadoop-0.20.2

关键词:Hadoopwordcountssh

 

  • 总体概述
    要在单独的一台计算机上实现Hadoop多节点分布式计算,需要通过虚拟机建立多个主机,鉴于VirtualBox的大小只是VMware的十分之一,我选择了前者。依次完成新建虚拟机、安装ssh、配置密钥实现无密码访问、安装jdk、安装hadoop并配置后,就可以运行wordcount来见识一下了不起的东西了!

  • 详细步骤

  1. 安装虚拟机
    首先要在vbox中建立Ubuntu系统,无论主机的操作系统是windows还是linux都没关系,我们之后进行的所有操作都只在虚拟机的ubuntu中进行。由于是在虚拟机中安装,就没有硬盘安装ubuntu那样麻烦了。上官网把ubuntu10.04LTS.iso下好,放在本地文件夹中,启动vbox,新建一个子os,选项都很简单,网卡设置为host-only,从之前下载的iso镜像启动。启动后的安装步骤在这里不再赘述,如有疑问请参照我之前的一篇文章。当第一个虚拟机建好后,不要使用同样的方法建立第二个ubuntu系统,vbox为我们提供了简便的复制方法,在Terminal中输入
    sudo vboxmanage clonevdi [source.vdi] [destination.vdi];
    就可以完全克隆一个os,之后new一个os,在选择硬盘那里找到刚clonedestination.vdi作为硬盘即可。我们用这种方法建立3台虚拟机,分别命名为UB01UB02UB03,它们的用户名必须一致,这里设置为vbox,为了简单,密码也统一设定为vbox。进行到这里,可以用ifconfig看三台虚拟机的ip地址,正常的话它们的ip各不相同,且相互之间可以ping通,到这里就完成了第一步。

  2. 安装配置ssh
    仅仅能ping通还是不够的,为了完成分布式计算系统,需要三台机器相互之间可以无密码访问(或者是master可以无密码访问2slave)。首先在三台虚拟机上安装
    ssh-openserver
    sudo apt-get install ssh rsync
    完成后,在个人目录/home/vbox/下新建.ssh文件夹,在.ssh中执行

    ssh-keygen -t rsa
    系统会问你一些配置,由于是初次实验,不需要这些内容,点回车继续下去即可。完成后会在.ssh/下生成id_rsaid_isa.pub两个文件,三台机器做同样处理。忘了一件事,需要配置三台机器的别名,这样就不用通过ip互访了,打开/etc/hosts,清空里面的内容,写入
    127.0.0.1 localhost localhost.localdomain localhost
    192.168.56.101 UB01 UB01.localdomain UB01
    192.168.56.102 UB02
    192.168.56.103 UB03
    对于UB01按如上书写,对于UB02如下,UB03则可一并推出(这里的每一个ip地址都应该是ifconfig后看到的,因机而异)
    127.0.0.1 localhost localhost.localdomain localhost
    192.168.56.101 UB01
    192.168.56.102 UB02 UB02.localdomain UB02
    192.168.56.103 UB03
    设置完别名,可以相互ping一下看看是否生效,这里ping的对象就不是ip地址而是别名了。接下来把它们的密钥相互交换,如在UB01中执行
    scp ~/.ssh/id_isa.pub
    vbox@UB02:/home/vbox/.ssh/id_isa.pub.UB01
    scp ~/.ssh/id_isa.pub
    vbox@UB03
    :/home/vbox/.ssh/id_isa.pub.UB01
    这样做的目的是把UB01的密钥交给UB02UB03,对UB02UB03做同样处理,完成后每一个机器的/.ssh/中应该有3个密钥,一个是自己的,另两个是别人的,把自己的密钥连同别人的两个密钥加到授权密钥中(对UB01

    cat id_isa.pub >> authorized_keys;
    cat id_isa.pub.UB02 >> authorized_keys;
    cat id_isa.pub.UB03 >> authorized_keys;
    对其它两台机器做同样处理。接下来检验相互之间是否可以通过ssh实现无密码访问,在终端输入(对UB01
    ssh UB02;
    ssh UB03;
    访问成功会现实欢迎信息,初次访问需要yes,之后就可以不直接访问了。

  3. 安装jdk
    Ubuntu系统中安装jdk的方法我只简述一下,有困难者请google之,网络上资源多多。首先下载对应版本的jdk,下载完成后把.bin包移动到个人目录/home/vbox/,执行

    chmod u+x jdk-a.b.c.bin;
    sudo -s ./jdk-a.b.c.bin;
    等待安装完成,会在当前路径生成jdk目录,接下来设置环境变量,在/etc/profile/中添加JAVA_HOMEJRE_HOMECLASSPATHPATH的值,reboot后在Terminal输入java -version会看到版本信息,证明安装成功。
    为了备忘,环境变量的配置还是写在下边吧
    JAVA_HOME=/home/vbox/jdk1.6.0_25
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    expoet PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

  4. 安装hadoop
    将下载到的hadoop-0.20.2.tar.gz移动到个人目录/home/vbox/,执行安装操作

    tar -xzvf hadoop-0.20.2.tar.gz
    会在当前路径生成hadoop文件夹,接着修改文件夹所有者
    chown vbox:vbox hadoop-0.20.2
    随后把hadoop的环境变量加入到/etc/profile中,添加如下内容
    export HADOOP_HOME=/home/vbox/hadoop-0.20.2
    export PATH=$HADOOP_HOME/bin:$PATH
    接下来需要修改hadoop/conf/目录下的配置文件,共有6个文件需要修改,分别是mastersslavescore-site.xmlmapred-site.xmlhdfs-site.xmlhadoop-env.sh,修改如下
    文件masters
    UB01
    文件
    slaves
    UB02
    UB03
    文件
    core-site.xml


    hadoop.tmp.dir
    /home/vbox/tmp
    As you like




    fs.default.name
    hdfs://UB01:9000


    文件
    mapred-site.xml


    mapred.job.tracker
    UB01:9001


    文件
    hdfs-site.xml


    dfs.replication
    1


    文件hadoop-env.sh在末尾添加

    export JAVA_HOME=/home/vbox/jdk1.6.0_25
    说明几个地方,以上几个文件中具体的版本号、路径与ip地址要根据各自虚拟机信息区别配置,不要把我的ip抄到你的文件里,没用的。注意hdfs-site.xml中设定为1value是最小节点数,之前为3,会出现2slave运行不能的情况,以上配置信息对UB01UB02UB03完全一致。


推荐阅读
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • hadoop1.2.1文档中这样写:Nowcheckthatyoucansshtothelocalhostwithoutapassphrase:$sshlocalhostIfyou ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
author-avatar
人鱼同体
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有