《大数据实验平台建设方案.doc》由会员分享,可在线阅读,更多相关《大数据实验平台建设方案.doc(83页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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) 高扩展性:在可用的计算机集簇间分配数
24、据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。3) 高效性:能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。4) 高容错性:能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。5) 低成本:与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,Hadoop是开源的,项目的软件成本因此会大大降低。1.1.1.3 主要功能介绍1.1.1.3.1 登录界面大数据实验平台登录首页,输入大数据实验平台访问地址,输入相应账号与密码,点击登录即可。1.1.1.3.2 账号管理系统管理员和教师角色登录后,可以看到用户账
25、户管理界面。系统管理员用户可以在该界面中查看或修改所有的教师和学生用户信息,并可以注册或销毁教师或学生用户账户;教师用户可以在该界面中查看或修改自己建立的所有学生用户信息,并可以注册或销毁自己的学生用户账户。1.1.1.3.3 实验管理此处的集群管理包含“开始实验”和“终止实验”,由于xxxxx据实验平台采用“Docker”技术,因此能够在几乎不占用系统资源情况下,实现大量机器快速创建与销毁,不必担心资源消耗高、启动销毁慢、管理维护难等问题。(1)开始实验当需要开始实验时,直接点击实验界面对应实验面板上的启动按钮即可,后台会快速为用户新建五台能够支撑该实验的预装CentOS 7操作系统的机器,
26、并配置好各自的主机名和IP地址等。(2)终止实验若实验过程中,由于命令敲错等各种原因导致集群无法使用,可在实验页面中随时终止您的实验进程,销毁失效的集群,之后再重新启动该实验,创建新的集群。1.1.1.3.4 资源管理系统具备资源监控管理功能,可实时展示系统内的集群使用情况、人数上限和当前使用量情况,通过对实验平台状态的监控,以实现对资源的不断优化。1.1.1.3.5 学习资料 大数据实验平台提供实验所需的学习资料,学生在做实验的同时可查看和下载每个实验步骤的操作手册及大数据教材配套PPT。1.1.1.3.6 我的报告学生通过我的报告查看自己所做的每个实验过程及最终得分。1.1.1.3.7 相
27、关下载大数据实验平台的相关下载界面提供了实验所需的软件及插件的下载,为避免软件版本不同导致实验环境配置错误,请尽量下载和使用此处指定的软件版本与插件。1.1.1.4 配套资源作为一个可供大量学生完成大数据与云计算实验的集成环境,该平台同步提供了配套的培训服务,对于教学组件的安装、配置,教材、实验手册等具体应用提供一站式服务,有助于高校更好地满足课程设计、课程上机实验、实习实训、科研训练等多方面需求,并在一定程度上缓解大数据师资不足的问题。对于各大高校而言,即使没有任何大数据实验基础,该平台也能助其轻松开展大数据与云计算的教学、实验与科研。具体资源如下:1.1.1.4.1 内容充实的课程体系在实
28、战Hadoop2.0从云计算到大数据和实验手册的指导之下,大数据实验平台解决方案涵盖大数据算法、接口、工具、平台等多方面内容,从大数据监测与收集、大数据存储与处理、大数据分析与挖掘直至大数据创新,帮助高校构建完善的大数据课程体系。课程体系1.1.1.4.2 多元化的大数据资源包 大数据系列教材实战Hadoop2.0 :国内第一本Hadoop编程书籍的升级版实战Hadoop2.0及其配套PPT(国内知名云计算专家、中国信息协会大数据分会副会长刘鹏倾力打造)实战Hadoop2.0在此之前,刘鹏教授带领编著团队,相继出版了云计算、大数据(云计算已经被全国高校采用,其被引用量排名全国计算机图书第一名)
29、,并在教材之外,辅助提供相应的教学计划、课件、实验规划等。同时,xxxx数据团队联合全国各高校老师,为本科和高职院校分别准备了大数据可视化、深度学习、数据挖掘、虚拟化与容器以及R语言、大数据基础、大数据实践、大数据系统运维、数据清洗、数据挖掘基础、云计算基础两个系列教材,目前已经陆续进入定稿出版阶段。 综合85个大数据实验的实验手册及配套高清视频课程:涵盖原理验证、综合应用、自主设计及创新的多层次实验内容,每个实验呈现详细的实验目的、实验内容、实验原理和实验流程指导,配套相应的实验数据和高清视频课程,参照手册即可轻松完成每个实验。实验手册大纲 网站资源:国内专业领域排名第一的网站中国大数据、中
30、国云计算、中国存储、中国物联网、中国智慧城市等提供全线支持,一网打尽各类优质资源。1.1.1.4.3 实验数据提供基于大数据实验需求,与大数据实验平台配套提供的还有各种实验数据,其中不仅包含共用的公有数据,每一套大数据组件也有自己的实验数据,种类丰富,应用性强。实验数据将做打包处理,不同的实验将搭配不同的数据与实验工具,解决实验数据短缺的困扰,在实验环境与实验手册的基础上,做到有设备就能实验,有数据就会实验。1.1.1.5 专业培训1.1.1.5.1 培训简介众所周知,大数据迎来黄金发展期,面对百万级的大数据人才缺口,大数据专业建设早已提上日程。然而,大数据专业的人才培养计划、课程体系直至师资
31、力量等还处于试错阶段,各高校老师对于相关专业的开展仍然处于茫然状态。为此,xx大数据提供以理论+实战的培训形式,为各大高校提供师资力量培训。xxx大数据提供的大数据专业师资力量培训由金陵科技学院与江苏省云计算论坛共同主办,英特尔(中国)公司与电子工业出版社协办,培训由清华大学博士、中国信息协会大数据分会副会长刘鹏教授倾情授课,致力于用高效的办法,在几天内为各大高校免费培养一大批大数据师资力量,帮助全国教师对大数据跨过从理论到实践、从知道到用过的门槛。1.1.1.5.2 往期培训介绍曹骝博士深度学习培训1.1.1.6 平台优势特性1.1.1.6.1 沙箱机制xx数据实验平台采用Docker容器技
32、术,容器之间采用沙箱机制,相互之间没有任何接口,因此通过大数据实验平台创造出的实验环境是相互隔离的,即使由于部分学生的误操作导致实验环境被破坏,也不会影响到其他同学的实验,一键重启就可以拥有新的集群。Docker统一平台示意图1.1.1.6.2 快速部署xx大数据实验平台可快速部署实验环境,支持一键创建和销毁实验集群,可在一瞬间创建出供大量学生同时实验的实验环境,同时实验环境可快速销毁和重建,可供老师简单便捷的进行大数据实验和教学工作,无需花大量时间进行每个学生的实验环境部署工作,大幅度的节省人员管理维护成本。一键创建和销毁实验集群1.1.1.6.3 多机实验环境系统采用分布式集群架构,多节点
33、冗余架构设计,可面向大数据的分布式系统,为每个学生提供多机实验环境,整个系统理论支持用户数量无上限,可为每个学生分配5套实验虚拟集群,可满足大量学生同时进行多个实验,并进行各实验的相互对比学习。1.1.1.6.4 资源最大化利用大数据实验平台通过对Docker容器技术的深度应用,可将服务器资源的利用率发挥到最大,通过几台服务器便可构建出可供上百学生同时实验的实验平台,大幅度的节省了硬件投入成本。1.1.1.6.5 快速高效易扩展大数据实验平台采用分布式架构,支持性能横向扩展,只需增加节点服务器即可实现同时上机人数的扩容,同时也可以通过减少节点服务来减少同时上机人数,以实现设备的最高效利用。1.
34、1.1.6.6 低运维成本xx数据实验平台可实现大数据实验集群的秒级创建、销毁,学生在校期间可独享自己的多个大数据集群;实验环境损坏只需销毁重建即可,无需专人维护,大数据实验平台只需几台服务就可以构建,设备运维成本很低。1.1.1.6.7 教学体系完善xxx数据实验平台不仅提供可供上百学生同时实验的教学平台,还提供了国内第一本Hadoop编程书籍的升级版实战Hadoop2.0及其配套PPT(国内知名云计算专家、中国信息协会大数据分会副会长刘鹏倾力打造),以及实验相关的实验手册,同时可提供实验所需的大数据资源和企业实训项目,帮助高校打造完善的大数据教学体系。1.1.1.7 主要实验介绍1.1.1
35、.7.1 快速搭建大数据实验环境大数据实验平台采用Docker容器技术,通过少量机器虚拟出成百上千的Hadoop、HBase、Spark、Storm、HDFS等实验集群,可快速同时为每个学生提供多套集群进行实验,搭建可供大量学生完成所有大数据实验的集成环境。例如,60个学生同时在线做大数据实验,只需要小规模机器(11台)就可以同时为每个学生提供至少5套集群,每个学生的实验环境不仅相互隔离、彼此互不干扰,即使某个学生的实验环境出现问题,对其他人也没有影响,只需要重启就可以重新拥有一套新集群。因此在我校中心机房部署的大数据实验平台可以快速给全校各个院系的学生进行大数据的实验,同时各学科数据还可根据
36、自己的需要导入实验数据进行实验、分析,大数据实验平台同时可提供外网地址,可提供校外机构使用,满足全校师生的教学需求。1.1.1.7.1.1 HDFS部署实验HDFS是一种可在通用硬件上运行的分布式文件系统,具备高容错性和支持廉价部署等特点,非常适合大规模数据集上的应用,是大数据实验非常重要的一环。通过HDFS部署的实验可以让学生了解和熟悉HDFS,从而实现以下几点目的: 理解HDFS存在的原因 理解HDFS体系架构 理解master/slave架构 理解为何配置文件里只需指定主服务、无需指定从服务 理解为何需要客户端节点 学会逐一启动HDFS和统一启动HDFS 学会在HDFS存储器里新建文件夹
37、,新建文件HDFS相关的实验如下图所示:HDFS实验过程1.1.1.7.1.2 YARN部署实验Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。YARN部署实验,主要分为配置YARN配置文件、统一启动YRAN、验证YARN启动成功和提交简单的任务。通过实验可让学生学会如何搭建YARN分布式集群,并能够使用YARN集群提交一些简单的任务,理解YARN作为H
38、adoop生态中的资源管理器的意义。YARN部署实验过程如下图所示:YARN启动任务提交实验终端过程显示1.1.1.7.2 MapReduce实验MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念Map(映射)和Reduce(归约),是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。M
39、apReduce实验主要分为单词计数、二次排序、计数器、join操作和分布式缓存5个实验,具体如下:1.1.1.7.2.1 单词计数实验通过实验可实现以下目的: 理解MapReduce编程思想 会编写MapReduce版本WordCount 会执行该程序 自行分析执行过程本实验主要分为,确认前期准备,编写MapReduce程序,打包提交代码。查看运行结果这几个步骤,详细如下:启动Hadoop执行命令启动前面实验部署好的Hadoop系统。rootmaster # cd /usr/cstor/hadoop/rootmaster hadoop# sbin/start-all.sh验证HDFS上目前没
40、有生成wordcount的文件夹rootclient # cd /usr/local/hadoop/rootclient hadoop# bin/hadoop fs -ls / #查看HDFS上根目录文件 /此时HDFS上应该是没有wordcount文件夹。上传数据文件到HDFSrootclient # cd /usr/local/hadoop/rootclient hadoop# bin/hadoop fs -put /root/data/5/word /编写MapReduce程序主要编写Map和Reduce类,其中Map过程需要继承org.apache.hadoop.mapreduce包中
41、Mapper类,并重写其map方法;Reduce过程需要继承org.apache.hadoop.mapreduce包中Reduce类,并重写其reduce方法。import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapred
42、uce.Mapper;import org.apache.hadoop.mapreduce.Reducer;import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;使用Eclipse开发工具将该代码打包假定打包后的文件名为hdpAction.jar,主类WordCount位于包njupt下,则可使用如下命令向YARN集群提交本应用。rootclient # ./yarn jar hdpAction.jar njupt.WordCount /word /wordcount其中“yarn”为命令,“jar”为命令参数,后面紧跟打包后
43、的代码地址,“njupt”为包名,“WordCount”为主类名,“/word”为输入文件在HDFS中的位置,/wordcount为输出文件在HDFS中的位置。程序运行成功1.1.1.7.2.2 二次排序通过实验可实现以下目的: 基于MapReduce思想,编写SecondarySort程序。 查看二次排序后结果。MR默认会对键进行排序,然而有的时候我们也有对值进行排序的需求。满足这种需求一是可以在reduce阶段排序收集过来的values,但是,如果有数量巨大的values可能就会导致内存溢出等问题,这就是二次排序应用的场景将对值的排序也安排到MR计算过程之中,而不是单独来做。二次排序就是首
44、先按照第一字段排序,然后再对第一字段相同的行按照第二字段排序,注意不能破坏第一次排序的结果。通过代码编写实验结果如下:输入数据输入数据如下:secsortdata.txt (/t分割)(数据放在/root/data/6目录下)7 4443 99997 3334 223 77777 5553 66666 03 88884 11输出显示在client上执行对hdfs上的文件/user/mapreduce/secsort/out/part-r-00000内容查看的操作rootclient hadoop# bin/hadoop fs -cat /user/mapreduce/secsort/out/p
45、*如果屏幕上显示如下:1.1.1.7.2.3 计数器通过实验可实现以下目的: 基于MapReduce思想,编写计数器程序。 基于MapReduce思想,能执行计数器程序和分析执行过程。通过代码编写和执行实验结果如下:输入数据输入数据如下:counters.txt(/t分割)(数据放在/root/data/7目录下)输出显示屏幕上将会输出如下信息:1.1.1.7.2.4 join操作通过实验可实现以下目的: 基于MapReduce思想,编写两文件join操作的程序。 基于MapReduce思想,能执行join程序和分析执行过程。通过代码编写和执行实验结果如下:输入数据输入数据如下:data.tx
46、t(数据放在/root/data/8目录下):输入数据如下:info.txt(数据放在/root/data/8目录下):输出显示在client上执行对hdfs上的文件/user/mapreduce/MRjoin/out/part-r-00000内容查看的操作:1.1.1.7.2.5 分布式缓存通过实验可实现以下目的: 理解序列号与反序列化 熟悉Configuration类 学会使用Configuration类进行参数传递 传递;学会在Map或Reduce阶段引用Configuration传来的参数; 理解分布式缓存“加载小表、扫描大表”的处理思想通过实验将一个大为100G的大表big.txt和
47、一个大小为1M的小表small.txt,通过MapReduce思想编程实现判断小表中单词在大表中出现次数。准备数据登录client机,使用“vi”命令新建文件“/root/big.txt”,接着在该文件里写入“aaa至zzz”,新建好后,使用cat命令确认文件内容:上传数据接着,使用命令将client机本地文件“/root/big.txt”和“/root/small.txt”上传至HDFS的“/user/root/mr/in”目录:通过编写和执行代码实现以下实验结果:1.1.1.7.3 Hive实验Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapRed