大数据实验平台建设方案.doc
《大数据实验平台建设方案.doc》由会员分享,可在线阅读,更多相关《大数据实验平台建设方案.doc(83页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、大数据实验平台建设方案1.1.1.1 平台简介大数据实验平台通过应用容器技术,以少量机器虚拟大量实验集群,可供大量学生同时拥有多套集群进行Hadoop相关试验,而每个学生的实验环境不仅相互隔离,方便高效地完成实验,而且实验彼此不干扰,即使某个实验环境被破坏,对其他人也没有影响,一键重启就可以拥有一套新集群,大幅度节省了硬件和人员管理的投入成本。大数据实验平台秉承“产、学、研、用”一体化的思路和模式,从教学、实践、科研和使用多方面注重专业人才和特色人才的培养。从理论与实践双管齐下,提升高校信息化管理水平和实验项目研究水平,真正在产业、学校、科研及实践项目中相互配合,发展优势,形成生产、学习、科学
2、研究、实践运用的系统运作模式,从而建设大数据特色专业。大数据实验平台实物图硬件方面大数据实验平台采用cServer机架式服务器,其英特尔至强处理器E5产品家族的性能比上一代提升多至80%,并具备更出色的能源效率。通过英特尔E5家族系列CPU及英特尔服务器组件,可满足扩展I/O灵活度、最大化内存容量、大容量存储和冗余计算等需求。整机一体化交付,系统根据学校的专业人数规模进行不同规格的配置,可进行同时满足30人、60人、150人实验规模的选择。软件层面有Hadoop、HBase、Ambari、HDFS、YARN、MapReduce、ZooKeeper、Spark、Storm、Hive、Pig、Oo
3、zie、Mahout、R语言等不同的大数据应用组件供各大高校根据具体应用进行选择实验部署。此外,作为一个可供大量学生完成大数据与云计算实验的集成环境,大数据实验平台同步提供了配套的培训服务,对于教学组件的安装、配置,教材、实验手册等具体应用提供一站式服务,有助于高校更好地满足课程设计、课程上机实验、实习实训、科研训练等多方面需求,并在一定程度上缓解大数据师资不足的问题。对于各大高校而言,即使没有任何大数据实验基础,该平台也能助其轻松开展大数据与云计算的教学、实验与科研。1.1.1.2 架构设计1.1.1.2.1 产品架构大数据实验平台架构大数据实验平台从软硬件、客户端及实验配套教材培训等方面考
4、虑,针对大数据专业建设的课程体系不完善、基础实验环境薄弱、缺乏实训项目三大难题,为各大高校量身定制的大数据软硬件一体化的教学科研解决方案。大数据实验平台整体设计是基于Docker容器集群技术搭建的Hadoop实验平台,并针对大数据实验的需求提供了完善的使用环境,可一键创造随时运行的实验环境,其中采用Mesos+ZooKeeper+Mrathon架构管理Docker集群,Docker平台架构如下图所示:Docker容器设计架构其中,Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核;ZooKeeper用来做主节点的容错和数据同步;Marathon则是一个Mesos框架
5、,为部署提供REST API服务,实现服务发现等功能。实验时,系统预先针对大数据实验内容构建一系列基于CentOS7的特定容器镜像,通过Docker在集群主机内构建容器,充分利用容器资源利用率高的特点,为每个使用平台的用户开辟属于自己完全隔离的Hadoop实验环境。容器内部,用户完全可以像使用linux操作系统一样的使用容器,并且不会被其他用户的集群造成任何影响,仅仅使用几台机器,就可能虚拟出能够支持几十个甚至上百个用户同时使用的隔离集群环境。1.1.1.2.2 Docker容器技术大数据实验平台最核心的部分采用Docker容器技术,Docker 是一个开源的应用容器引擎,可以让开发者可以打包
6、他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。大数据实验平台通过Docker在容器内部快速自动化部署应用,并通过内核虚拟化技术来提供容器的资源隔离与安全保障等,以此来为大量的学生虚拟创造出多个互相隔离的实验环境,及时实验环境破坏也不影响其他人的使用。同时由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率,并且提升诸如IO等方面的性能,使得大数据实验平台可以通过少量服务器即可构建出供大量学生进行实验的实验环境。1
7、.1.1.2.2.1 Docker平台架构Docker平台架构图如下:Docker使用客户端-服务器(client-server)架构模式,Docker客户端会与Docker守护进程进行通信。Docker守护进程会处理复杂繁重的任务,例如建立、运行、发布Docker容器。Docker客户端和守护进程可以运行在同一个系统上,当然也可以使用 Docker客户端去连接一个远程的Docker守护进程。Docker客户端和守护进程之间通过socket或者RESTful API进行通信。如下图所示:l Docker守护进程Docker守护进程运行在一台主机上,用户并不直接和守护进程进行交互,而是通过Doc
8、ker客户端间接和其通信,从来带来安全性和隔离性。l Docker客户端Docker客户端,实际上是docker的二进制程序,是主要的用户与Docker交互方式。它接收用户指令并且与背后的Docker守护进程通信,如此来回往复。l Docker内部Docker内部分为三大部件:Docker镜像 (Docker images)、Docker仓库 (Docker registeries)、Docker容器(Docker containers)。Docker镜像是一个只读的模板,镜像是用来创建容器,Docker提供了简单的放来来建立新的镜像或者升级现有的镜像一个镜像可以包含一个运行在Apache上的
9、Web应用和其使用的Ubuntu操作系统。Docker仓库用来保存镜像,可以理解为代码控制中的代码仓库,分为公有和私有两种,提供了庞大的镜像集合供使用,这些镜像可以是自己创造的也可以在别人的镜像基础上进行创造。Docker容器和文件夹很类似,一个Docker容器包含了所有的某个应用运行所需要的环境。每一个Docker容器都是从Docker镜像创建的。Docker容器可以运行、开始、停止、移动和删除。每一个Docker容器都是独立和安全的应用平台,Docker容器是Docker的运行部分。l 工作模式1) 构建镜像Docker Image是一个构建容器的只读模板,它包含了容器启动所需的所有信息,
10、包括运行哪些进程和配置数据。 所有的镜像都会基于一个基本镜像构建,紧接着会根据Dockerfile中的指令创建 模板,对于每个指令,在镜像上创建一个新的层。2) 运行容器运行容器源于我们在第一步中创建的镜像。当一个容器被启动后,一个读写层会被 添加到镜像的顶层;当分配合适的网络和IP地址后,最应用程序就可以在容器中运行了。1.1.1.2.2.2 网络环境的搭建Docker的原生态网络通信是通过NAT和Docker proxy来实现的;利用端口映射和修改宿主机的iptables规则实现了不同容器间、容器与外界的互相访问。然而,这样的NAT方式(SNAT和DNAT)不仅影响效率,同时还使得容器内所
11、看的自己的IP地址和外部所见的该容器IP地址不一致,阻碍了很多集群化功能的实现(如Redis集群、Elastic Search集群的自动组播发现需要基于默认端口规则),使得一些现有的工具无法正常工作。例如,在一些自动服务注册和发现的应用中,容器中的应用在进行自动注册时只能看到自己内部的IP并将此IP注册,但是其他外部的模块却无法通过此IP来访问该容器应用。然而,大数据系统由于数据量大、计算量大的特性,必然需要由多个主机组成的一个集群来完成计算分析任务。因此,基于Docker来搭建一个大数据分析系统的必要前提就是保证多个Docker的跨主机通信能够畅通无阻、保持高效。为了解决Docker原生态网
12、络通信的上述问题,在云计算生态圈里涌现了一些优秀的分布式Docker网络配置和管理工具,如flannel、weave、socketplane等,其总体思想是基于物理网络在容器间构造一个overlay网络。从Docker的1.9版本开始,Docker的网络部分自成一块(libnetwork),并支持复杂的Overlay模式。Overlay网络的总体思想是对原生态的网络数据包进行封装,这里又可分为在用户层进行封装(如weave、flannel)和在内核层进行封装(如sockplane)。下面分别以flannel为例稍做讲解。l Flannel的Overlay设计镜像构建Flannel在每个节点(主
13、机)上运行一个守护进程(flanneld)。这个守护进程负责为每一个节点分配一个子网段。该分配信息存储在etcd中(一种分布式存储方案)。同时,每个节点上的Docker daemon会从该子网段中为主机上运行的容器分配一个IP地址,如图12-3所示。因此,在容器中的应用所看到的IP地址和外部所看到的该容器的IP地址是一致的。在转发报文时,Flannel支持不同的后端策略,例如,主机网管模式、UDP模式等。以UDP模式为例,flannel形成了一个Overlay网络,通过TUN设备对每个IP fragment进行UDP包头封装,流程如图12-3所示。l 容器Overlay网络系统设计原理容器运行
14、介绍了Flannel工具后,我们透过现象看本质,讨论下设计一个Overlay网络系统的原理和要点。Flannel的Overlay网络实现模式ARP:在经典的物理网络中,当一个主机S访问另一个主机D的时候,S发出的第一个报文就是一个ARP请求的广播报文,交换机会在同一个子网内广播这个报文给所有的子网内节点。如果D在同一个子网内,它会接收到这个请求并将做出回复,使得S和D可以后续进行通信。在容器环境下,可以如实地把报文广播出去,并通过spanning tree等算法来避免广播回路。此外,还可以通过IP组播的功能来处理ARP请求和响应。最后,还可以基于SDN对全局的网络拓扑信息的把握,通过SDN控制
15、器来实现ARP协议。IP层互通:在解决了二层网络的通信问题后,还需要解决的就是容器与容器之间、容器与外网的互通。对于容器内的应用可以访问容器外的外网,一般可以采用NAT方式,使得容器最终使用物理宿主机的网关。为了保证容器能够对外提供服务,可以采用类似Docker的端口映射方式实现DNAT,并通过将容器连接到负载均衡设备从而对外提供服务。1.1.1.2.2.3 Docker容器优势 运行速度快系统运行时的性能可以获取极大提升,其管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的,可以在一瞬间创建随时运行的实验环境。 部署简单将应用和系统“容器化”,不添加额外的操作系统,和虚拟机一样部
16、署非常简单,支持一键创造和销毁实验集群,同时实验环境互不干扰,如果实验环境破坏,一键重启即可建立新集群 安全隔离采用Mesos+ZooKeeper+Mrathon架构管理集群,实验集群完全隔离。 轻量拥有足够的“操作系统”,仅需添加或减小镜像即可。在几台服务器上就可以虚拟出大量的实验环境,供上百师生进行教学实验工作。 成本低以容器化应用作为交付的标准,立足于云,为开发者和企业提供了一个快速构建、集成、部署、运行容器化应用的平台,帮助高校和企业提高应用开发的迭代效率,简化运维环节,降低运维成本。 云支持可以为不计其数的云服务提供创建和管理Linux容器框架。1.1.1.2.3 Hadoop实验平
17、台1.1.1.2.3.1 Hadoop架构Hadoop可以在大数据处理应用中广泛应用,得益于其自身在数据提取、变形和加载(ETL)方面上的天然优势。Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像ETL这样的批处理操作相对合适,因为类似这样操作的批处理结果可以直接走向存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。Hadoop架构图通过上图我们可以看出,Hadoop 由许多元素构成。其最底部是 Hadoop Distributed File System(HDF
18、S),它存储 Hadoop 集群中所有存储节点上的文件。HDFS(对于本文)的上一层是MapReduce引擎,该引擎由JobTrackers和TaskTrackers组成。通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。1.1.1.2.3.2 Hadoop关键技术下面我们将从HDFS、MapReduce、HBase三大部分详细介绍Hadoop的关键指数:1. HDFSHDFS架构图对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除
19、、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的(参见图 1),这是由它自身的特点决定的。这些节点包括NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个NameNode,因此这是 HDFS 的一个缺点(单点失败)。存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议
20、。2. MapReduceMapReduce架构图MapReduce主要功能如下: 数据划分和计算任务调度系统自动将一个作业(Job)待处理的大数据划分为很多个数据块,每个数据块对应于一个计算任务(Task),并自动调度计算节点来处理相应的数据块。作业和任务调度功能主要负责分配和调度计算节点(Map节点或Reduce节点),同时负责监控这些节点的执行状态,并负责Map节点执行的同步控制。 数据/代码互定位为了减少数据通信,一个基本原则是本地化数据处理,即一个计算节点尽可能处理其本地磁盘上所分布存储的数据,这实现了代码向数据的迁移;当无法进行这种本地化数据处理时,再寻找其他可用节点并将数据从网络
21、上传送给该节点(数据向代码迁移),但将尽可能从数据所在的本地机架上寻找可用节点以减少通信延迟。 系统优化为了减少数据通信开销,中间结果数据进入Reduce节点前会进行一定的合并处理;一个Reduce节点所处理的数据可能会来自多个 Map节点,为了避免Reduce计算阶段发生数据相关性,Map节点输出的中间结果需使用一定的策略进行适当的划分处理,保证相关性数据发送到同一个 Reduce节点;此外,系统还进行一些计算性能优化处理,如对最慢的计算任务采用多备份执行、选最快完成者作为结果。 出错检测和恢复以低端商用服务器构成的大规模MapReduce计算集群中,节点硬件(主机、磁盘、内存等)出错和软件
22、出错是常态,因此MapReduce需要能检测并隔离出错节点,并调度分配新的节点接管出错节点的计算任务。同时,系统还将维护数据存储的可靠性,用多备份冗余存储机制提高数据存储的可靠性,并能及时检测和恢复出错的数据。3. HBaseHBace架构图HBase即Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。上图描述Hadoop EcoSystem中的各层系统。其中,HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce
23、为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。1.1.1.2.3.3 Hadoop优势Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:1) 高可靠性:按位存储和处理数据的能力值得人们信赖。2) 高扩展性:在可用的计算机集簇间分配数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 实验 平台 建设 方案
限制150内