`
iboringyou
  • 浏览: 2810 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

EC2平台上Hadoop集群搭建

阅读更多

    网上中文资料几乎没有关于EC2平台的Hadoop的集群搭建,又碍于英语水平,同时加上关键点说明的也比较分散,所以在这上面花费了不少的时间。现在弄好了,整理下整个配置过程,也当重新巩固下。

一、新建Instance
    在EC2控制台上新建三个instance,具体的可以参照EC2instance的建立。可以分别取名master,slave1和slave2,其中master将作为namenode和jobtracker,slave1和slave2将作为datanode和tasktracker。(这里使用的是free tire elible的ubuntu 12.10服务器)。

 
    选中一个服务器,在页面下半部会出现instantce的外部dns地址,用来远程访问,比如我这里master的地址为:ec2-54-251-208-185.ap-southeast-1.compute.amazonaws.com。

二、SSH的配置
    aws instance之间通信使用RSA加密,在建立instance时会自动下载一个.pem文件,这个就是RSA的私钥,而公钥在建立instance的时候就已经自动设置好了。
    运行cmd,输入ssh 命令连接master,需要用-i参数指明本地私钥的位置,替换红色部分
    ssh -i your/path/to/your.pem ubuntu@your.instance.adress , ubuntu是aws中所有ubuntu instance的默认用户名。例如:    

 
    登陆成功后进入~/.ssh目录,
    cd ~/.ssh
    新建一个id_rsa文件,
    这里用的是winscp(没有的可以上网搜索下载)。如下图: 

 
    登录后,找到/home/ubuntu/.ssh,进入后,在里面新建 id_rsa。然后用记事本之类的工具打开本地的私钥文件,全部复制到id_rsa中,保存关闭。
    将文件权限降低至600。
     chmod 600 id_rsa
    然后设置ssh代理,
     ssh-agent bash
     ssh-add
    若出现Identity added: /home/ubuntu/.ssh/id_rsa (/home/ubuntu/.ssh/id_rsa)则表示设置成功,此时可以试着在master上ssh其他slave看是否成功。
   以上是关键的步骤之一,因为hadoop工作时需要master和slave之间的交互,而在EC2平台上任意instance之间交互都是需要进行RSA验证的。至此,master与slave之间通信可自动完成验证过程。

三、下载hadoop和java运行环境
    这里使用hadoop1.0.4和jdk7
    sudo apt-get update
    sudo apt-get install openjdk-7-jdk
    wget http://www.fayea.com/apache-mirror/hadoop/common/hadoop-1.0.4/hadoop-1.0.4.tar.gz
    (需要说明的是,上面的下载地址不能保证你也能够下载,所以去hadoop官方网站找:hadoop下载地址)。
    解压hadoop
    tar xzf hadoop-1.0.4.tar.gz
    这一步之后很多教程建议将解压之后的文件夹放到/usr/local/目录下,可是如若如此会遇到很多关于用户权限的麻烦,因此这里就将其放在原位(/home/ubuntu/)。
    对所有的slave进行相同操作。

四、配置相关参数。
   此步参阅了熊天翼的博客 
     先将hadoop-1.0.4重命名下:
     sudo mv hadoop-1.0.4 hadoop
     回到master,进入hadoop/conf 目录,
      cd ~/hadoop/conf

     1.设置好三台机器上的/etc/hosts和/etc/hostname
     host这个文件用于定义主机名与IP地址之间的对应关系。图所示为我的配置:    

     原本在第一行和第五行之间是没有内容的,这些内容是加上去的。那么这里要说下如何弄得ip地址了,在/etc/hostname里面。在AWS建立的虚拟机,用的主机名即是ip地址。
    用vim /etc/hostname
    你将可以看到里面内容为:ip-10-130-186-142。这个就是这台虚拟机的ip地址了,记下后,将这个名字改为master或者slave1或者slave2,这样方便。
    使用vim,如果出现无法保存,如图:

    那么输入:w !sudo tee %
    之后强制退出即可。

     2.修改hadoop-env.sh中的JAVA_HOME参数
      vim hadoop-env.sh(当然也可以nano hadoop-env.sh,甚至也可以用之前提到的winscp工具)
     具体vim,nano如何使用,自己网上找操作方法
     将JAVA_HOME那一行去掉注释,后面修改为
      JAVA_HOME = /usr/
     如图:

      此路径(仅)适用于EC2 ubuntu instance

    3.修改core-site.xml
    该配置文件指明了HDFS文件系统的服务器以及服务器内路径位置,加入如下配置:
    nano core-env.xml

 
        这里的master就是在之前/etc/hosts里面定义的主机名与IP地址之间的对应关系。而第二个value中间的路径是hadoop存储数据的位置,这个可以根据个人有所不同,但此文件夹需要手动创建。

    4.修改hdfs-site.xml
    该配置文件指明了文件需要备份的份数。加入如下配置:
    nano hdfs-site.xml    

     
    5.修改mapred-site.xml
    该配置文件指明了jobtracker的地址,以及其他和MapReduce相关的配置。此处只设置jobtracker为master
    加入如下配置:
    nano mapred-site.xml

 
       
    6.masters和slaves两个文件中需要分别申明一下master和slave1,slave2外部dns地址
    可以看到里面只是写了master slave1 slave2。这些在之前/etc/hosts里面已经定义的主机名与IP地址之间的对应关系。

 
      

   7.用scp命令将master的配置推送到slave
    先回到master。确认自己是在/home/ubuntu/hadoop/conf目录下。输入如下命令(红色部分填写slave1,slave2的ip地址):
    scp * your.slave1.ipadress:/home/ubuntu/hadoop/conf/
    scp * your.slave2.ipadress:/home/ubuntu/hadoop/conf/
    如果这一步失败,提示"public key denied"说明ssh代理设置不成功。
    至此,instance配置全部完成。

五、配置EC2 Security Group
    Security Group 起到了instance的分组和防火墙的作用。如下图所示,目前Security Group只开放了22(SSH)端口,Source 0.0.0.0/0 表示允许任意来源访问该端口。    

     还记得之前配置HDFS和JobTracker的时候用到了9000和9001端口吗?这些端口默认没有打开,但却是Hadoop运行所必须的。
    在左侧添加Hadoop所需的端口,并将source设置成instance所在的Security group,点击Apply Rule Changes ,完成后如下图所示。 

    至此,就结束配置了。


六、运行Hadoop
   1.进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作。
     cd /home/ubuntu/hadoop
     bin/hadoop namenode -format
     2.启动bin/start-all.sh
     bin/start-all.sh
     3.检测hadoop是否启动成功
     jps

     如果有Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker五个进程,就说明你的hadoop集群搭建好了!如下图:

 
    也可以用w3m查看下。
    输入:w3m http://master:50030或者w3m http://master:50070查看集群状态。如图:
   


 
七、小结
   集群配置只须记住conf/hadoop-env.sh、conf/core-site.xml、conf/hdfs-site.xml、conf/mapred-site.xml、conf/mapred-queues.xml这5个文件的作用即可。
    作为分布式系统,hadoop需要通过SSH的方式启动处于slave上的程序,因此必需安装和配置SHH。所以说安装hadoop前需要安装JDK和SSH。
    下面两种方法在实际应用中也可能会用到:
    1.重启坏掉的DataNode或JobTracker。
    当hadoop集群的某单个节点出现问题时,一般不必重启整个系统,只须重启这个节点,它会自动连入整个集群。
    在坏死的节点上输入如下命令即可:
    bin/hadoop-daemon.sh start DataNode
    bin/hadoop-daemon.sh start jobtracker

    2.动态加入DataNode或TaskTracker。这个命令允许用户动态将某个节点加入集群中。
    bin/hadoop-daemon.sh --config ./conf start DataNoda
    bin/hadoop-daemon.sh --config ./conf start tasktracker


问题

  如果用PuTTy连接到远程终端,无法用wget下载完整的压缩包。不知道为什么。。。

 

  • 大小: 16.4 KB
  • 大小: 39.3 KB
  • 大小: 20.9 KB
  • 大小: 5.8 KB
  • 大小: 46 KB
  • 大小: 23.8 KB
  • 大小: 21.1 KB
  • 大小: 21.7 KB
  • 大小: 4.6 KB
  • 大小: 4.3 KB
  • 大小: 12.3 KB
  • 大小: 19.4 KB
  • 大小: 15.7 KB
  • 大小: 53.1 KB
  • 大小: 9.7 KB
0
5
分享到:
评论

相关推荐

    CDH集群搭建手册

    CDH集群搭建手册 CDH(Cloudera Distribution of Hadoop)是一种基于 Apache Hadoop 的大数据解决方案,提供了一个功能强大的大数据分析平台。以下是 CDH 三节点基于 CentOS 6.8 的安装和卸载教程。 一、CDH 安装...

    Hadoop The Definitive Guide

    经济性则在于使用商用硬件即可搭建Hadoop集群,而不必依赖昂贵的专用硬件;灵活性则是指Hadoop支持多种数据类型和处理模式,从简单的日志分析到复杂的机器学习算法。 随着大数据时代的来临,Hadoop的影响力持续扩大...

    Hadoop初步了解和在单机环境下的配置

    Hadoop是许多大型科技公司云计算平台的重要组成部分,如雅虎的Pig项目、Amazon的S3和EC2服务,以及IBM的“蓝云”计划。Hadoop的分布式计算能力使其成为处理海量数据的理想选择,特别是在云计算环境中,可以轻松地...

    Hadoop MapReduce Cookbook

    这包括利用云计算服务,如亚马逊的弹性计算云(EC2)或谷歌的计算引擎,来搭建和运行Hadoop集群。 除了上述知识点,书中还包含了一些关于版权和出版的信息。《Hadoop MapReduce Cookbook》一书由Srinath Perera和...

    搭建基于云计算的海量数据挖掘平台-研究实现.doc

    其中,亚马逊的弹性云(Amazon Elastic Cloud, EC2)提供了灵活的计算能力,可以根据业务需求轻松增加或减少服务器数量。 【弹性MapReduce(EMR)】 亚马逊的弹性MapReduce(EMR)是针对大数据处理的云服务,它...

    云存储平台搭建

    - **背景**:利用Hadoop和Amazon Elastic Compute Cloud (EC2)构建了包含20个节点的虚拟集群。 - **应用场景**:将4TB的TIFF图像和相关的文本数据转换为适合网络发布的格式,仅用了36小时就完成了这一大规模的数据...

    word报告及指南1

    在本Hadoop实验报告中,主要涉及了在Amazon Web Services (AWS)的EC2实例上部署和配置Hadoop集群的过程,以及解决遇到的一些问题。以下是关键步骤和知识点的详细说明: 1. **选择操作系统和实例类型**:实验初始...

    基于虚拟化云平台的大数据处理环境设计与实现

    2. 集群部署:如何在云平台上设置Hadoop集群,包括安装、配置和优化各个组件。 3. 资源调度:利用YARN或Mesos等资源管理系统,确保高效地分配和调度计算资源。 4. 容错机制:如何确保在虚拟化环境中,即使硬件故障也...

    Apache Accumulo for Developers

    读者将学习如何将Accumulo与Hadoop和Zookeeper连接,以及如何监控集群的性能,以便发现性能瓶颈,并进一步将其与Amazon EC2、Google Cloud Platform、Rackspace和Windows Azure等云平台集成。集成时,本书特别注重...

    云计算平台比较

    2004年,开源社区以Java为基础,构建了Hadoop框架,这一框架的核心目标是实现MapReduce算法,使其能够将应用分解成微小的任务单元,这些单元可以在集群中的任意节点上执行或重新执行。Hadoop的这一特性极大地提升了...

    spark-Jupyter-AWS:有关如何在具有S3 IO支持的AWS EC2群集上轻松设置带有Pyspark的Jupyter的指南

    总结来说,本文档将指导用户如何在AWS EC2上配置一个支持S3 IO的Spark-Pyspark环境,结合Jupyter Notebook,提供一个强大且灵活的数据处理和分析平台。通过这个平台,数据科学团队可以在云端高效地处理大规模数据,...

    samza-ec2-ansible:Ansible播放器,用于将Zookeeper,Kafka和YARN(不带HDFS)部署到EC2

    这使得开发者可以在本地模拟实际的生产环境进行测试和开发,然后再将配置迁移到EC2上。 在文件名“samza-ec2-ansible-master”中,我们可以推测这是项目的主要代码库,很可能包含Ansible playbook文件和其他辅助...

    第三部分:“大云”平台

    - **2007年7月**:用闲置资源搭建了第一个Hadoop平台。 - **2008年3月**:进行了系统评估。 - **2008年10月**:发布了“大云”0.5版本。 - **2008年12月**:建设了一个256节点的集群和分析工具。 - **2009年8月**:...

    BigAIConfig.zip

    搭建Presto集群涉及的主要步骤包括:选择合适的基础架构,例如EC2实例;配置每个节点,安装Java运行环境;下载Presto服务器二进制包,解压并配置配置文件,如`config.properties`和`jvm.config`;初始化Presto目录...

    Spark快速数据处理 PDF电子书下载 带书签目录 完整版

    对于Spark在云环境中的部署,本章将介绍在EC2(基本环境和EC2MR)上的部署。如果你的机器或者集群中已经部署了Spark,可以跳过本章直接开始使用Spark编程。 不管如何部署Spark,首先得从获得Spark的一个版本,截止到...

    elasticluster:在云上创建VM集群,并使用Ansible配置它们

    Elasticluster是一款开源工具,专门用于在云环境中快速创建虚拟机(VM)集群,它支持多种云平台,包括Amazon EC2、Microsoft Azure和Google Cloud Platform(GCP)。这款工具结合了灵活性和自动化,使得研究人员和...

    中国移动研究院关于云计算的报告

    3. SaaS(软件即服务):通过网络提供给用户的应用程序,用户无需自己搭建基础设施和平台,直接使用即可,例如Google Docs、Salesforce等。 随着云计算技术的不断发展,企业对于云计算的需求日益增长,云计算的应用...

    homebrew-misc:自制论坛

    在Hadoop中集成LZO压缩,可以有效减少数据存储空间,提高数据传输效率,尤其对于I/O密集型任务,能够显著提升Hadoop集群的性能。在使用Hadoop LZO时,需要注意安装相应的编解码器,并配置Hadoop以支持LZO格式。 2. ...

    Java项目经验汇总.rar

    - **AWS云服务**:使用Amazon Web Services(AWS)搭建Java应用,实践EC2、S3、RDS等服务,学习云服务的监控和成本控制。 6. **微服务架构** - **服务注册与发现**:通过Eureka或Consul实现服务的注册与发现,...

Global site tag (gtag.js) - Google Analytics