Hadoop集群规划

举报
Smy1121 发表于 2019/06/19 19:48:31 2019/06/19
【摘要】 一、Hadoop集群环境搭建概述 随着互联网,尤其是移动互联网和智能移动设备的高速发展和大面积普及,数据产生的速度以及数据累积的规模已经超过了以往任何时候,所以我们正在或者已经步入了大数据时代。对于企业来说,企业所拥有的大规模数据正逐渐成为一种重要的生产要素,但是如何盘活企业海量数据资产,充分挖掘大数据背后的价值成为新的挑战。同时也带来了很大的机遇,通过对企业海量数据的科学分析,为精益...

一、Hadoop集群环境搭建概述

    随着互联网,尤其是移动互联网和智能移动设备的高速发展和大面积普及,数据产生的速度以及数据累积的规模已经超过了以往任何时候,所以我们正在或者已经步入了大数据时代。对于企业来说,企业所拥有的大规模数据正逐渐成为一种重要的生产要素,但是如何盘活企业海量数据资产,充分挖掘大数据背后的价值成为新的挑战。同时也带来了很大的机遇,通过对企业海量数据的科学分析,为精益化管理企业提供决策依据,为市场和客户的精准化营销提供数据支持,为公司创收提供新的动力,快速扩展市场业务,重塑企业核心竞争力,不断地把企业打造成拥有数据驱动核心竞争力的创新型企业。


(一)如何实现上述目标呢?

    首先,企业大数据平台的建设和运营无疑是重中之重,这也正成为企业信息化建设的核心任务和目标。通过构建企业大数据平台,对企业大规模数据进行科学高效的管理、分析、挖掘、监控、可视化,为公司内部产品的策划、运营、营销、财务、决策等提供科学精确的数据支撑,提高企业运营效率、最大化释放数据价值。


(二)如何构建企业大数据平台呢?

    当然这是一个比较大的话题,也是一个比较复杂的事情,但是核心内容是不变的,无非就是对企业大规模数据的管理、分析和结果可视化呗。现在企业有了这么多的数据,怎么办?就像生孩子一样,你不能只管生不管养呀。你还想靠他给你养老送终呢?所以说数据也一样,有了这么多数据,你又想从数据里获取对企业有用的价值,怎么办?总得先存储起来吧,先养着。OK,那么现在就带来了一个问题,怎么存?也就是如何解决大规模数据的存储问题?


(1)如何解决大规模数据的存储问题?

    这是很大的一块内容,我们先长话短说,化繁为简。我们最终要解决的是大规模数据的存储,数据规模小的话很好解决,假设数据规模特别大,大到超过单台机器的存储空间,如果还要存储那么该怎么办?


常见有两种方法:


1)增加本机的磁盘空间。


    但是不可能一直增加,本机存储空间总会有一个极限。加到一定程度就会超过限制。


2)增加机器数量,用共享目录的方式提供远程网络化的存储。


    这种方式就可以理解为分布式文件系统的雏形,就是把同一文件切分之后放入不同的机器中,空间不足了还可继续增加机器,突破本机存储空间的限制。Hadoop目前最多可以支持到上万台机器规模组成的集群,总之,足够你用了。这个不用担心。但是这种方式还是有很多问题的。比如:数据怎么切分,数据切分之后如何存储,又怎么高效的管理存储在多台机器上的数据等等复杂问题,肯定不能靠人工去维护吧,那就有点傻了。那么怎么办呢?就要通过系统来解决,即通过分布式文件系统来管理存储在多台机器上的大规模数据。也就是后面会提到的HDFS(Hadoop分布式文件系统)。


    我们不是为了存储数据而存储数据,我们最终的目的是想通过对大规模数据的多维分析挖掘出数据背后对企业运营决策有价值的信息。


(2)如何对大规模数据进行分析?也就是如何解决大规模数据的计算的问题?

    大规模数据存储通过分布式存储解决存储容量局限的问题。


    大规模数据计算重点考虑的是计算速度的问题。就是怎么能够加快大规模数据的处理速度。


    一台机器资源有限,计算大规模数据可能时间很长,那么怎么加快处理速度呢?整多台,一台不够多台来凑,每个任务处理一部分数据,多台机器的多个任务分别处理一部分数据,这样速度肯定会比之前快。


    总之,不管是大数据的存储还是计算,都是通过分布式系统来解决的,不再通过比较昂贵的小型机,因为小型机成本太高。那么分布式系统在哪运行呢,就需要构建分布式集群。所以说我们接下来的重点就是如何构建分布式集群。


(三)什么叫构建Hadoop分布式集群?

    构建Hadoop分布式集群实际上就是在一组通过网络连接的物理计算机组成的集群上安装部署Hadoop相关的软件。


所以接下来我们的任务就是:


    1)首先准备物理集群


    2)实现物理集群的网络互联,就是通过网络把集群内所有机器连接起来


    3)在实现网络互联的集群上安装部署大数据相关的软件


(四)那么准备多少台机器的物理集群呢?首先要明白机器的数量和哪些因素有关?

    1)数据量(要考虑用多少台机器组成的集群能够存储这么大的数据)


        <1>规划时间内的数据而不是现有数据


        注意:这个数据量是公司一定规划时间内(比如两年)的数据量,不是现有的数据量,因为你不可能随着数据量的增加每月或每周都往集群里增加节点,这样每天绝大部分时间就都花在集群维护上了,虽然说我们的确可以随着数据量的动态变化通过动态的增减节点的个数来调整集群的存储和计算能力,但是最好还是要有一个1-2年左右的中长期规划。


        <2>多副本


        因为Hadoop致力于构建在廉价的商用服务器上的,廉价的就更容易出现故障,出现故障就容易导致数据丢失,数据丢失是绝对不允许的。所以说怎么保证数据安全性呢?一份不够,存多份就得了呗,难道你们还能同时丢到,虽然说有可能,但是可能性是不是就小很多了。当然你也不可能买特别垃圾的服务器。我们需要在采购成本和维护成本之间做好权衡。


        <3>中间数据、临时数据和日志数据需要占用20-30%左右的空间。


        这个应该很好理解,因为数据不只是需要分析处理的业务数据。

    2)每台机器的性能配置


        假设有100T的数据,每台机器2T硬盘,至少需要50台,每台机器4T硬盘,至少需要25台,所以说机器性能配置的不同也会影响集群规模的大小。后边我们会单独讲机器选型及配置选择。


    3)平台的功能性和非功能性需求


        平台实现基本的功能之外还需要实现非功能性需求:


         <1>性能需求:


        比如对100G—1T左右的数据进行简单的查询分析,能够在2分-10分钟之内完成,复杂作业(比如多表连接)能够在20-1小时内完成,业务数据的增量导入和数据清洗在1小时之内完成。


         <2>可靠性需求:


        比如系统每月宕机次数不能超过1次。


         <3>可用性需求:


        系统每次宕机的时间不能超过两小时,还有就是系统内任何一台计算机每月不可用的时间不能超过总时间的2%。


         <4>容错性需求:


        机器宕机、服务停止、硬件损坏的情况下数据不会出现丢失,不同情况下的恢复时间也有要求,比如宕机或服务器停止,恢复时间10分钟之内,如果NameNode硬件损坏,2小时之内恢复。


    所以接下来我们的任务就是:


        1)先确定选择什么样的机器,也就是机器选型,当然包括机器的资源配置了。


        2)再确定集群的规模,也就是集群包含多少台机器


         注意:在机器选型时并不是每台机器的配置必须都是一样的,因为不管是Hadoop中的HDFS还是YARN都是分布式系统,采用的是主从的架构,建议主节点的配置要高于从节点,从节点的配置建议一样,不同组件的安装部署配置可以不同。具体根据不同的业务场景进行不同的配置选择。


(五)机器选型

    目前主流的机器选型有以下几种方式。


    1)小型机


        配置高、性能高、速度快,但是成本比较高,价格一般在百万级别左右。违背了Hadoop的初衷,Hadoop致力于运行在廉价的机器之上。所以不推荐使用。


    2)PC Server


        高配置的PC服务器,几万、十几万、几十万不等,性价比最高,也是企业部署大数据平台的首选。


    3)云服务平台


        比如阿里云、百度云、腾讯云等云服务平台,成本适中,比如最低配置搭建3节点集群使用5个月,需要2000~6000元左右。但是依赖于第三方平台,不能对系统做更多的控制,所以比较适合初创型企业,因为初创型企业刚开始资金不足,数据量也不大。


    4)普通PC


        利用公司现有的多台普通电脑部署分布式集群,成本比较低,内存不足可以通过增加内存条的方式解决,费用在1000元以下。但是最大的不足是稳定性不好,所以可用于实验环境。


    5)Linux虚拟机


        直接在自己的一台电脑上安装多台Linux虚拟机的方式来模拟分布式集群,成本最低,内存不足可以通过增加内存条的方式解决,费用在几百元左右。从成本和学习的角度来讲,是第一选择。


(六)机器资源配置的选择

    机器资源配置主要指的就是内存、CPU、硬盘、网络等。下面具体说明各种资源在选择时应该考虑哪些关键因素。


    1)内存


        在成本允许的情况下一般选择大内存,比如32GB、64GB、128GB,具体看业务而定,哪个服务对内存要求高,就可以配置的大一点(比如存文件系统元数据的NameNode对内存要求就比较高),从节点DataNode内存就没必要那么大,它更需要的是磁盘和CPU。所以这个需要大家根据每个组件的特点,有针对性的去选择配置。


    2)CPU


         一般选择多路多核的CPU,比如2 路8核,2路10核,2路12核的CPU,主频至少2-2.5GHz。


    3)硬盘


         一般选择大硬盘,因为我们要存储的是大规模的数据,比如可以配置1-20块1-6TB的硬盘。


    4)网络


        一般都是选择万兆网 ,因为数据量越大,对网络吞吐率的要求就越高。


    以上是实际开发过程中在机器资源配置方面重点考虑的因素,那么学习环境中资源该如何选择呢?


    学习环境资源配置方面目前主要先考虑内存的配置。因为其他几种资源几乎都能满足。


    1)内存

        建议计算机的内存至少为8GB,最好为16GB及以上。主节点内存至少4GB,从节点内存至少2GB。


    2)CPU

        由于我们会先使用少量数据进行测试,暂时对CPU要求不高,目前电脑CPU核数都在2核或者4核以上,暂时可以满足学习使用。


    3)磁盘

        每个节点磁盘分配至少20G。


    4)网络

        目前先保证能联网且网络稳定就行。


    所以,Hadoop集群环境的搭建首先要解决物理集群的搭建,然后再考虑Hadoop相关软件的安装部署。那么Hadoop物理集群如何部署呢?我们继续分析。


二、Hadoop物理集群部署

(一)Hadoop物理集群机器的选择

        首先要做一个说明,Hadoop是为了在Linux平台上使用而开发的,但是在其他主流的操作系统(比如UNIX、Windows、Mac 等操作系统)上也能够运行,然而,在Windows操作系统上运行Hadoop稍显复杂,需要首先安装Cygwin来模拟Linux环境,然后才能安装Hadoop。在Mac系统上也需要首先安装一种软件包管理器Homebrew,然后利用它自动的下载和安装相关的Hadoop安装包。


        实际上,除了安装使用复杂之外,最主要的是这两种方式非常消耗资源且不稳定,所以不管是实验环境还是生产环境都不推荐使用这两种方式。从学习成本的角度考虑,本课程采用的方式是通过搭建一个虚拟机,然后再在这个虚拟机上直接安装部署Linux操作系统来实现Linux运行环境的部署。后边我们再详细讲解企业实际开发过程中是如何进行机器选型、软件选型、集群规划等等。所以说Hadoop物理集群的部署接下来就转化为Linux虚拟机的安装部署。首先来看一下如何安装部署虚拟机。(当然在实际开发过程中会有专门的Linux服务器)


(二)虚拟机概述

        1.虚拟机是什么?

             简单地说,你可以把虚拟机理解为虚拟的机器,这个虚拟的机器和真实的机器在功能实现上几乎完全一样,只是说虚拟机的硬盘是在一个文件中虚拟 出来的。


        2.如何搭建虚拟机?

             虚拟机的搭建实际上就是通过安装虚拟化的软件来实现的。即在你的真实电脑上通过安装一个虚拟化软件就可以实现虚拟机的搭建。


        3.虚拟化软件有哪些以及该如何选择?

             常见的虚拟化软件有VMware workstation和Virtualbox。

             简单使用的话,两者其实差不多,只是在某些功能的支持上Virtualbox比VMware workstation要差一点,所以这里我们就选择使用VMware workstation。


        具体选择哪个版本的VMware workstation呢?其实版本9,10,11,12都可以,但是需要注意的是,由于该软件试用期只有30天,所以当试用期到期后,如果大家还想使用,只需要在网上搜索对应版本的序列号并按提示输入即可。


(三)VMware虚拟机安装部署

1、VMware下载

        前面我们介绍了什么是VMware,接下来开始下载安装VMware虚拟机软件。VMware虚拟机软件由以下三种方式下载:


        (1)可以到官网下载付费版或者试用版

        (2)可以百度搜索破解免费版即可。

        (3)可以点击此链接进行下载,对应的序列号秘钥是1F04Z-6D111-7Z029-AV0Q4-3AEH8


         这里提供的是64位的VMware 11,大家也可以选择其他版本,具体安装步骤都是一样的。


2、VMware安装

        VMware安装比较简单,这个小讲就不细说了,不会的同学请看免费视频:VMWare 虚拟机的安装,具体步骤如下所示。


(1)将VMware11下载到本地之后,点击运行安装。

image.png

(2)VMware点击运行后,出现安装类型包括:典型和自定义。这里选择“自定义”。

image.png


(3)选择自定义安装之后,可以选择要安装的功能和修改安装位置。

image.png

(4)共享虚拟机的位置也进行修改.

image.png

(5)将启动时检查产品更新选项去掉,防止软件更新。

image.png


然后点击下一步,直到安装完成。


(四)Hadoop运行模式的选择

    到目前为止,我们已经准备好了安装有Linux操作系统的虚拟机,接下来我们就可以在该虚拟机上安装部署Hadoop集群了。但是在Hadoop集群部署之前,首先要选择Hadoop的运行模式。


    Hadoop有3种常见的运行模式,分别是单机模式、伪分布式模式和分布式模式。


    (1)单机模式

    这是Hadoop的默认模式,这种模式在使用时只需要下载解压Hadoop安装包并配置环境变量,而不需要进行其他Hadoop相关配置文件的配置。单机模式下NameNode、DataNode、ResourceManager等都变成一个Java进程。一般情况下,单机模式不被选择使用,只需要记着默认模式是单机模式就行。


    (2)伪分布模式

    在这种模式下,所有的守护进程都运行在一个节点上(也就是一台计算机上),由于是在一个节点上模拟一个具有Hadoop完整功能的微型集群,所以称为伪分布式集群,由于是在一个节点上部署所以也叫做单节点集群。我们接下来要搭建的就是伪分布式模式的Hadoop集群。


    (3)分布式模式

    又称完全分布式模式,在这种模式下,Hadoop守护进程会运行在多个节点上,形成一个真正意义上的分布式集群。由于完全分布式集群的安装部署涉及的问题更多,对于初学者还是有些难度的,所以会在后面为大家详细讲解。由易到难,一步一步来实现,我们前期先把Hadoop伪分布式集群环境搭建起来,把MapReduce编程模型好好练习一下,能够实现简单的大数据开发,先能达到这个要求就行。


    通过前边的分析,Hadoop的运行模式我们确定为伪分布式模式。所以接下来我们重点就放在伪分布式模式的Hadoop集群的搭建。


(五)Hadoop网络连接方式的选择

    常见有3种网络选择的方式,分别是:


    (1) NAT模式:网络地址转换模式

           使用NAT模式,就是让虚拟机借助NAT功能,通过Host机器所在的网络来访问外网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP(动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议)服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网的其他真实主机进行通信。采用NAT模式的最大优势就是虚拟机接入网络特别简单,不需要进行任何其他配置,只需要Host机器能访问互联网就行。


    (2) 桥接模式

          Bridge就是 “桥 ”的意思,说起桥接,就不能不说局域网。比如我们有两个局域网络,他们的ip网段都处于192.168.0.*,同时,我们希望把这两个网络连接起来,这种情况下,我们就可以采用桥接。这个时候, “桥 ”就相当于一个主机,这个机器拥有两块网卡,分别处于两个局域网中,同时在 “桥 ”上,运行着程序,让局域网 A中的所有数据包原封不动的流入 B,反之亦然。这样, 局域网 A和 B就无缝的在链路层连接起来了(当然要保证两个局域网没有冲突的 IP)。这就是桥的作用,在链路层无缝的沟通两个局域网。


           而VMWare的桥也是同样的道理,只不过,本来作为硬件的一块网卡,现在由 VMWare软件虚拟而来罢了!当采用桥接时, VMWare会虚拟一块网卡和真正的物理网卡进行桥接,这样,发到物理网卡的所有数据包就到了 VMWare虚拟机,而由 VMWare发出的数据包也会通过桥从物理网卡的那端发出,这样,如果物理网卡可以上网,那么桥接的软网卡也没有问题了,这就是桥接上网的原理了。 在桥接时, VMWare网卡和物理网卡应该处于同一ip网段,虚拟机就像是局域网中的一台自主独立的主机,它可以访问网内的任何一台机器。


    (3) 仅主机模式

               就是主机和虚拟机之间可以实现网络互访,而不是虚拟机访问Internet。

          无论在什么条件下,只要主机能上网,用 NAT技术,都可以使虚拟机访问 Internet;只有和主机网卡处在一个可以访问 internet的局域网中的时候,虚拟机才能通过 Bridge访问 Internet; Host-only模式只用于主机和虚拟机互访,与访问 Internet无关。OK,简单了解之后,这里我们选用的是NAT模式。这样能够更容易的实现虚拟机和外部网络的连通性。


        OK,机器选型我们选择了虚拟机,而且实现了虚拟机的安装,Hadoop运行模式我们选择了伪分布式集群模式,网络我们选择了NAT模式,那么接下来我们就可以在虚拟机上进行Linux操作系统的安装部署了。





【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。