大数据平台技术复习别依梦雨轩

本文由本人学习过程中总结,难免有纰漏,欢迎交流学习

云计算使计算机系统资源,特别是存储和计算能力,在不需要用户直接主动管理的情况下随需应变。这个术语通常用于描述Internet上许多用户可用的数据中心。

同时使用多种计算资源解决计算问题的过程

将需要巨大计算能力的问题分成许多小部分进行处理,最后综合结果

在动态、多机构参与的虚拟组织中协同共享资源和求解问题

混合云公有云私有云

IaaS基础设施层基础设施即服务PaaS平台层平台即服务SaaS应用层软件即服务

物联网(IoT)是关于设备的网络(例如车辆和家用电子设备等),其中包含电子产品、软件、传感器、执行器,以及提供设备连接、交互和交换数据的网络连接。

Volume:体量大Variety:样式多Velocity:速度快Valueless:价值密度低

人工智能:系统能够正确地解释外部数据,从这些数据中学习,并通过灵活的适应利用这些学习来实现特定的目标和任务。

发展阶段计算智能感知智能认知智能

云计算为大数据提供了技术基础

大数据为云计算提供用武之地

大数据技术为物联网数据分析提供支撑

云计算为物联网提供海量数据存储能力

物联网为云计算技术提供了广阔的应用空间

简单总结:通过物联网产生、收集海量的数据存储于云平台,再通过大数据分析,甚至更高形式的人工智能为人类的生产活动,生活所需提供更好的服务。

大数据平台构建的前提条件过程集成管理基础分析智能分析功能模块设计数据可视化子系统数据分析与服务子系统数据存储与管理子系统数据交互子系统技术架构设计架构图数据交互技术架构数据存储技术架构数据计算技术架构主要问题不同场景下的技术框架选型

Hadoop集群的节点类型

Hadoop框架中最核心的设计是为海量数据提供存储的HDFS和对数据进行计算的MapReduce

MapReduce的作业主要包括:(1)从磁盘或从网络读取数据,即IO密集工作;(2)计算数据,即CPU密集工作

Hadoop集群的整体性能取决于CPU、内存、网络以及存储之间的性能平衡。因此运营团队在选择机器配置时要针对不同的工作节点选择合适硬件类型

基本的Hadoop集群中的节点主要有

NameNode:负责协调集群中的数据存储DataNode:存储被拆分的数据块JobTracker:协调数据计算任务TaskTracker:负责执行由JobTracker指派的任务SecondaryNameNode:帮助NameNode收集文件系统运行的状态信息

Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:

⒈高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。

⒉高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

⒊高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

⒋高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常理想的。Hadoop上的应用程序也可以使用其他语言编写,比如C++。

ApplicationMaster

为应用程序申请资源,并分配给内部任务

任务调度、监控与容错

ResourceManagerSchedulerApplicationsManager

NodeManager资源管理单元Container工作流程Zookeeper集群管理的基本作用架构ZNodeKafka功能组件ProducerBrokerTopicConsumerGroupConsumer

MapReduce1.0的缺陷

(1)存在单点故障

(2)JobTracker“大包大揽”导致任务过重(任务多时内存开销大,上限4000节点)

(3)容易出现内存溢出(分配资源只考虑MapReduce任务数,不考虑CPU、内存)

(4)资源划分不合理(强制划分为slot,包括Mapslot和Reduceslot)

纯粹的资源管理调度框架

被剥离了资源管理调度功能的MapReduce框架就变成了MapReduce2.0,它是运行在YARN之上的一个纯粹的计算框架,不再自己负责资源调度管理服务,而是由YARN为其提供资源管理调度服务

YARN的优势:

大大减少了承担中心服务功能的ResourceManager的资源消耗

YARN中的资源管理比MapReduce1.0更加高效

YARN为这些计算框架提供统一的资源调度管理服务,并且能够根据各种计算框架的负载需求调整各自占用的资源,实现集群资源共享和资源弹性收缩;可以实现一个集群上的不同应用负载混搭,有效提高了集群的利用率;不同计算框架可以共享底层存储,避免了数据集跨集群移动

安装方式安装流程与主要命令分布式模式单机模式伪分布式模式core-site.xml配置hdfs-site.xml配置

HDFS是一种典型的主从式的分布式文件系统

分布式文件系统概述

在获取了海量的数据之后,采用何种方式进行高效存储是进行大数据分析的基础

基于分布式硬件集群,并采用特定的分布式文件系统对海量数据(尤其是原生数据)进行存储

分布式文件系统把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群

①支持大规模文件存储:一个大规模文件可被分拆成若干个文件块,不同的文件块可以被分发到不同的节点上。因此,一个文件的大小不会受到单个节点的存储容量的限制。②简化系统设计:元数据无需和文件块一起存储。③适合数据备份:每个文件块都可冗余存储到多个节点上,大大提高了系统的容错性和可用性。

NameNode负责管理分布式文件系统的命名空间(Namespace),保存了两个核心的数据结构,即FsImage和EditLog

在名称节点启动时,它会将FsImage文件中的内容加载到内存中,之后再执行EditLog文件中的各项操作,使得内存中的元数据和实际的同步,存在内存中的元数据支持客户端的读操作。

一旦在内存中成功建立文件系统元数据的映射,则创建一个新的FsImage文件和一个空的EditLog文件

名称节点启动之后,HDFS中的更新操作会重新写到EditLog文件中,因为FsImage文件一般都很大(GB级别的很常见),如果所有的更新操作都往FsImage文件中添加,这样会导致系统运行的十分缓慢,但是,如果往EditLog文件里面写就不会这样,因为EditLog要小很多。每次执行写操作之后,且在向客户端发送成功代码之前,edits文件都需要同步更新

EditlogFsImage

存储元数据

元数据保存在内存中

保存文件,block,datanode这间的映射关系

HDFSBlock64MB128MB

功能:存储文件内容文件内容保存在磁盘维护了blockid到datanode本地文件的映射关系特性:支持大规模文件存储简化系统设计适合数据备份

克服:

数据存储

第一个副本:放置在上传文件的数据节点;如果是集群外提交,则随机挑选一台磁盘不太满、CPU不太忙的节点

第二个副本:放置在与第一个副本不同的机架的节点上第三个副本:与第一个副本相同机架的其他节点上

更多副本:随机节点

被存放在数据节点A和B上。这种多副本方式具有以下几个优点:

(1)加快数据传输速度(2)容易检查数据错误(3)保证数据可靠性

数据读取

HDFS提供了一个API可以确定一个数据节点所属的机架ID,客户端也可以调用API获取自己所属的机架ID

当客户端读取数据时,从名称节点获得数据块不同副本的存放位置列表,列表中包含了副本所在的数据节点,可以调用API来确定客户端和这些数据节点所属的机架ID,当发现某个数据块副本对应的机架ID和客户端对应的机架ID相同时,就优先选择该副本读取数据,如果没有发现,就随机选择一个副本读取数据

优点支持流数据读写支持廉价设备支持大数据集文件模型简单跨平台支持局限性不适合低延迟数据访问无法高效存储小文件不支持多用户写入及任意文件修改命名空间限制数据隔离问题性能瓶颈集群的可用性单点故障

键值数据库、列族数据库、文档数据库、图形数据库

CAP、BASE和最终一致性

存储、索引并管理面向文档的数据或者类似的半结构化数据比如,用于后台具有大量读写操作的网站、使用JSON数据结构的应用、使用嵌套结构等非规范化数据的应用程序

优点

性能好(高并发),灵活性高,复杂性低,数据结构灵活提供嵌入式文档功能,将经常查询的数据存储在同一个文档中既可以根据键来构建索引,也可以根据内容构建索引

缺点

缺乏统一的查询语法

MongoDBCouchDB...

专门用于处理具有高度相互关联关系的数据,比较适合于社交网络、模式识别、依赖分析、推荐系统以及路径寻找等问题

灵活性高,支持复杂的图算法,可用于构建复杂的关系图谱

复杂性高,只能支持一定的数据规模

Neo4jInfiniteGraph

典型应用

分布式数据存储与管理数据在地理上分布于多个数据中心的应用程序可以容忍副本中存在短期不一致情况的应用程序拥有动态字段的应用程序拥有潜在大量数据的应用程序,大到几百TB的数据

查找速度快,可扩展性强,容易进行分布式扩展,复杂性低

功能较少,大都不支持强事务一致性

BigTableHBaseCassandra...

键是一个字符串对象值可以是任意类型的数据,比如整型、字符型、数组、列表、集合等

涉及频繁读写、拥有简单数据模型的应用

内容缓存,比如会话、配置文件、参数、购物车等

存储配置和用户数据信息的移动应用

扩展性好,灵活性好,大量写操作时性能高

无法存储结构化信息,条件查询效率较低

RedisMemcached...

关系数据库的优劣势

优势:以完善的关系代数理论作为基础,有严格的标准,支持事务ACID四性,借助索引机制可以实现高效的查询,技术成熟,有专业公司的技术支持

劣势:可扩展性较差,无法较好支持海量数据存储,数据模过于死板、无法较好支持Web2.0应用,事务机制影响了系统的整体性能等

NoSQL数据库的优劣势

优势:可以支持超大规模数据存储,灵活的数据模型可以很好地支持Web2.0应用,具有强大的横向扩展能力等

劣势:缺乏数学理论基础,复杂查询性能不高,大都不能实现事务强一致性,很难实现数据完整性,技术尚不成熟,缺乏专业团队的技术支持,维护较困难等

关系数据库和NoSQL数据库各有优缺点,彼此无法取代关系数据库应用场景:电信、银行等领域的关键业务系统,需要保证强事务一致性NoSQL数据库应用场景:互联网企业、传统企业的非关键业务(比如数据分析)关系数据库和NoSQL数据库各有优缺点,彼此无法取代关系数据库应用场景:电信、银行等领域的关键业务系统,需要保证强事务一致性NoSQL数据库应用场景:互联网企业、传统企业的非关键业务(比如数据分析)

(1)客户端:包含访问HBase的接口,同时在缓存中维护着已访问过的Region位置信息,以加快后续数据访问过程。(2)Zookeeper服务器①Zookeeper是一个很好的集群管理工具,被大量用于分布式计算,提供配置维护、域名服务、分布式同步、组服务等。②Zookeeper可以帮助选举出一个Master作为集群的总管,并保证在任何时刻总有唯一一个Master在运行,这就避免了Master的“单点失效”问题。③Master通过Zookeeper随时感知各个Region服务器的工作状态。④每个Region服务器都需要到Zookeeper中进行注册,Zookeeper实时监控每个Region服务器的状态并通知给Master。⑤Zookeeper保存了-ROOT-表的地址;客户端通过访问Zookeeper获得-ROOT-表的地址,通过“三级寻址”找到所需要的数据。(3)主服务器Master主要负责表和Region的管理工作(4)Region服务器是Hbase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求。

①Region服务器内部管理了一系列Region对象和一个HLog文件(存储在磁盘上,记录所有的更新操作)②每个Region对象由多个Store组成③每个Store对应表中的一个列族的存储④每个Store又包含一个MemStore和多个StoreFile⑤MemStore是内存中的缓存,保存最近更新的数据⑥StoreFile是磁盘文件,B树结构,方便快速读取⑦StoreFile在底层的实现方式是HDFS文件系统的HFile(HFile数据块采用压缩方式存储)

集群部署与启动创建表create全表数据查询scan表单元数据查询get已创建表信息查询list数据添加put删除表enable/disabledrop

Ganglia是UCBerkeley发起的一个开源集群监视项目,用于监控系统性能

OpenTSDB可以从大规模的集群(包括集群中的网络设备、操作系统、应用程序)中获取相应的metrics并进行存储、索引以及服务,从而使得这些数据更容易让人理解,如web化,图形化等

Ambari的作用就是创建、管理、监视Hadoop的集群

为什么需要MapReduce:

计算问题简单,但求解困难

待处理数据量巨大(TB/PB级),只有分布在分布式集群节

传统并行计算框架

共享式(共享内存/共享存储),容错性差

刀片服务器、高速网、SAN,价格贵,扩展性差

实时、细粒度计算、计算密集型

MapReduce

非共享式,容错性好

普通PC机,便宜,扩展性好

简单

批处理、非实时、数据密

集型

MapReduce设计的一个理念就是“计算向数据靠拢”,而

不是“数据向计算靠拢”

MapReduce采用“分而治之”策略,一个存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理

开发者需编写两个主要函数

Map:(in_key,in_value)→{(keyj,valuej)|j=1...k}

Reduce:(key,[value1,...,valuem])→(key,final_value)

Map输入参数:in_key和in_value,它指明了Map需要处理的原始数据

Map输出结果:一组对,这是经过Map操作后所产生的中间结果

Reduce输入参数:(key,[value1,...,valuem])

Reduce工作:对这些对应相同key的value值进行归并处理

Reduce输出结果:(key,final_value),所有Reduce的结果并在一起就是最终结果

JobTrackerTaskTrackerClientTask

input---->map-----reduce------output

input:

会文件按行分割形成

这一步由Mapreduce框架自动完成,其中key是偏移量,包含了回车所占的字符数,value是这一行的数据

map:

将分割好的对交给用户定义的map方法处理,形成新的

得到map方法输出的对后,Mapper会将他们按照key值进行排序,得到Mapper的最终输出结果

reduce:

Reducer先对从Mapper接受的对进行shuffle处理

然后再交给用户自定义的reduce方法进行合并处理,再得到新的

最后将这个对作为wordcount的结果输出

(1)第1个MapReducemap找出每个用户都是谁的好友,例如:读一行A:B,C,D,F,E,O(A的好友有这些,反过来拆开,这些人中的每一个都是A的好友)输出再读一行B:A,C,E,K输出……reducekey相同的会分到一组,例如:…Key:Cvalue:[A,B,E,F,G]意义是:C是这些用户的好友。遍历value就可以得到:AB有共同好友CAE有共同好友C…BE有共同好友CBF有共同好友C输出:…(2)第2个MapReduce对上一步的输出结果进行计算。map读出上一步的结果数据,组织成keyvalue直接输出例如:读入一行直接输出reduce读入数据,key相同的在一组…输出:A-BC,F,G,…这样就得出了两个用户间的共同好友列表

Shuffle是指对Map输出结果进行分区、排序、合并等处理并交给Reduce的过程,因此,Shuffle过程又分为Map端的操作和Reduce端的操作(1)Map端的Shuffle过程①输入数据可以是文档,也可以是二进制格式的。Map任务接受输入,映射转换为输出(输入数据和执行Map任务)②Map的输出结果首先被写入缓存,当缓存满时,就启动溢写操作,把缓存中的数据写入磁盘文件,并清空缓存(写入缓存)③当启动溢写操作时,首先需要把缓存中的数据进行分区,然后对每个分区的数据进行排序(Sort)和合并(Combine),之后再写入磁盘文件。每次溢写操作会生成一个新的磁盘文件,随着Map任务的执行,磁盘中就会生成多个溢写文件(溢写(分区、排序和合并))④在Map任务全部结束之前,这些溢写文件会被归并(Merge)成一个大的磁盘文件,然后通知相应的Reduce任务来领取属于自己处理的数据(文件归并)

Reduce任务从Map端的不同Map机器领回属于自己处理的那部分数据,然后对数据进行归并(Merge)后交给Reduce处理①“领取”数据②归并数据③把数据输入给Reduce任务

b.MapReduce执行过程包括哪些(1)MapReduce框架使用InputFormat模块做Map前的预处理,比如验证输入的格式是否符合输入定义;然后,将输入文件切分为逻辑上的多个InputSplit(逻辑概念,并没有实际切割)(2)RecorderReader(RR)处理InputSplit中的具体记录,加载数据并转换为合适的键值对,输入给Map任务(3)Map任务根据用户自定义映射规则,输出一系列的作为中间结果(4)Shuffle(洗牌),通过排序(Sort)、合并(Combine)、归并(Merge)等操作,将无序的转换为有序的(5)Reduce以一系列中间结果作为输入,执行用户定义的逻辑,输出结果给OutputFormat模块(6)OutputFormat模块会验证输出目录是否已经存在以及输出类型结果类型是否符合配置文件中的配置类型,如果都满足,就输出Reduce的结果到分布式文件系统

运行速度快:使用DAG执行引擎以支持循环数据流与内存计算

容易使用:支持使用Scala、Java、Python和R语言进行编程,可以通过SparkShell进行交互式编程

通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件

运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于AmazonEC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源

RDD:是ResillientDistributedDataset(弹性分布式数据集)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型

RDD中的依赖关系分为窄依赖与宽依赖。

RDD操作的惰性机制即在RDD的执行过程中,真正的计算发生在RDD的“行动”操作,对于“行动”之前的所有“转换”操作,Spark只是记录下“转换”操作应用的一些基础数据集以及RDD生成的轨迹,即相互之间的依赖关系,而不会触发真正的计算

ShuffleMapStage:不是最终的Stage,在它之后还有其他Stage,所以,它的输出一定需要经过Shuffle过程,并作为后续Stage的输入;这种Stage是以Shuffle为输出边界,其输入边界可以是从外部获取数据,也可以是另一个ShuffleMapStage的输出,其输出可以是另一个Stage的开始;在一个Job里可能有该类型的Stage,也可能没有该类型Stage;

ResultStage:最终的Stage,没有输出,而是直接产生结果或存储。这种Stage是直接输出结果,其输入边界可以是从外部获取数据,也可以是另一个ShuffleMapStage的输出。在一个Job里必定有该类型Stage。因此,一个Job含有一个或多个Stage,其中至少含有一个ResultStage。

类似于MapReduce1.0,slot为资源分配单位

和Spark有血缘关系,更好支持Mesos

SparkSQLSparkStreamingMllib(machinelearning)Graphx

Spark

YARN

HDFS

HadoopMapReduce存在如下一些缺点

表达能力有限仅存在Map和Reduce两个算子,难以描述复杂计算过程

磁盘IO开销大每次作业均需要从磁盘读取数据,中间结果同样写入磁盘

延迟高MapReduce各个任务间涉及IO开销,

存在延迟前一个任务完成前,其它任务无法开展

相比于HadoopMapReduce,Spark主要具有如下优点:Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比HadoopMapReduce更灵活Spark提供了内存计算,可将中间结果放到内存中,对于迭代运算效率更高Spark基于DAG的任务调度执行机制,要优于HadoopMapReduce的迭代执行机制

Spark的算子的分类

(1)Transformation变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理。

Transformation操作是延迟计算的,也就是说从一个RDD转换生成另一个RDD的转换操作不是马上执行,需要等到有Action操作的时候才会真正触发运算。

reduceByKey,filter,groupByKey,map,flatmap

(2)Action行动算子:这类算子会触发SparkContext提交Job作业。

Action算子会触发Spark提交作业(Job),并将数据输出Spark系统。

reduce,collect,take,

(1)Value数据类型的Transformation算子,这种变换并不触发提交作业,针对处理的数据项是Value型的数据。(2)Key-Value数据类型的Transfromation算子,这种变换并不触发提交作业,针对处理的数据项是Key-Value型的数据对。

(3)Action算子,这类算子会触发SparkContext提交Job作业。

智能交通个性化推荐系统信贷风险监控与金融反欺诈

实时分析、在线机器学习、不停顿的计算、分布式RPC

1、Flume用于收集日志信息;2、结合数据传输功能可以把收集到的日志信息实时传输到kafka集群,或保存到Hadoophdfs中保存。这里之所以选择kafka集群是因为kafka集群具备缓冲功能,可以防止数据采集速度和数据处理速度不匹配导致数据丢失,这样做可以提高可靠性。3、使用storm实时处理数据;4、保存storm处理的结果数据,当数据量不是特别巨大时,可以使用MySQL存储;当数据量特别巨大时,可以选择hdfs存储。

5、用于实时展示处理结果。

(1)用于告知Topology如何在两个组件间(如Spout和Bolt之间,或者不同的Bolt之间)进行Tuple的传送。(2)每一个Spout和Bolt都可有多个分布式任务,一个任务在什么时候、以什么方式发送Tuple是由StormGroupings来决定的。

目前主要有以下六种方式:ShuffleGrouping:随机分组FieldsGrouping:按照字段分组AllGrouping:广播发送GlobalGrouping:全局分组NonGrouping:不分组DirectGrouping:直接分组

整合性:Storm可方便地与队列系统和数据库系统进行整合简易的API:Storm的API在使用上即简单又方便可扩展性:Storm的并行特性使其可以运行在分布式集群中容错性:Storm自动进行故障节点的重启、任务的重新分配可靠的消息处理:Storm保证每个消息都能完整处理支持各种编程语言:Storm支持使用各种编程语言定义任务快速部署:Storm可以快速进行部署和使用免费、开源:Storm是一款开源框架,可以免费使用

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。Kafka的目的是通过并行加载机制来统一线上和离线的消息处理,也是为了通过集群机来提供实时的消费

主要应用场景是:日志收集系统和消息系统。

流式数据计算的特点及典型应用场景流式数据计算主要阶段数据实时采集数据实时计算数据实时查询流式数据计算、交互式计算、批处理计算的异同Storm作业运行封装TopologyStorm数据封装模型TupleStorm计算模型架构ZookeeperNimbusSupervisorWorker组件SpoutBolt

大数据分析主要依靠机器学习和大规模计算。机器学习包括监督学习、非监督学习、强化学习等,而监督学习又包括分类学习、回归学习、排序学习、匹配学习等。

分类是最常见的机器学习应用问题,比如垃圾邮件过滤、人脸检测、用户画像、文本情感分析、网页归类等,本质上都是分类问题。分类学习也是机器学习领域,研究最彻底、使用最广泛的一个分支。

编程工具JupyterNotebookPycharm机器学习算法包NumpyMatplotlibPandasSklearnPytorchTensorflow

大数据处理的第二个步骤就是数据分析。数据分析是大数据处理流程的核心步骤,通过数据抽取和集成环节,我们已经从异构的数据源中获得了用于大数据处理的原始数据,用户可以根据自己的需求对这些数据进行分析处理,比如数据挖掘、机器学习、数据统计等,数据分析可以用于决策支持、商业智能、推荐系统、预测系统等。通过数据分析我们能够掌握数据中的信息。

大数据处理的第三个步骤就是数据解释。大数据处理流程中用户最关心的是数据处理的结果,正确的数据处理结果只有通过合适的展示方式才能被终端用户正确理解,因此数据处理结果的展示非常重要,可视化和人机交互是数据解释的主要技术。这个步骤能够让我们知道我们分析数据的结果。

解决方案:

1)数据平台复制数据需要支持异构数据库、大数据量、实时性、模块化。

可以考虑初始化数据全量同步到hdfs,增量数据同步到kafka。

2)复制数据放在备份库上。一定要减轻生产库的压力。

3)为了节约网络资源,需要和备份数据库放在同一个机房。、

4)需要建立数据控制流,方便数据校验。暂定校验数据条数、数据数量合计。

目的是支持后续业务进行数据操作回查,实现数据校验。特别是财务数据,可能需要下钻

抽取凭证级的数据。

5)需要配置多个同步通道。可以快速将数据同步到数据库,并支持增量同步的方式。

需要选取复制效率最高的产品。如可以支持多线程、多并发、特定数据格式、数据压缩技术,

以及快速数据抽取和装载技术。

MapReduce并行计算框架是一个并行化程序执行系统。它提供了一个包含Map和Reduce两阶段的并行处理模型和过程,提供一个并行化编程模型和接口,让程序员可以方便快速地编写出大数据并行处理程序。MapReduce以键值对数据输入方式来处理数据,并能自动完成数据的划分和调度管理。在程序执行时,MapReduce并行计算框架将负责调度和分配计算资源,划分和输入输出数据,调度程序的执行,监控程序的执行状态,并负责程序执行时各计算节点的同步以及中间结果的收集整理。MapReduce框架提供了一组完整的供程序员开发MapReduce应用程序的编程接口。

HDFS(HadoopDistributedFileSystem)是一个类似于GoogleGFS的开源的分布式文件系统。它提供了一个可扩展、高可靠、高可用的大规模数据分布式存储管理系统,基于物理上分布在各个数据存储节点的本地Linux系统的文件系统,为上层应用程序提供了一个逻辑上成为整体的大规模数据存储文件系统。与GFS类似,HDFS采用多副本(默认为3个副本)数据冗余存储机制,并提供了有效的数据出错检测和数据恢复机制,大大提高了数据存储的可靠性。

Common是一套为整个Hadoop系统提供底层支撑服务和常用工具的类库和API编程接口,这些底层服务包括Hadoop抽象文件系统FileSystem、远程过程调用RPC、系统配置工具Configuration以及序列化机制。在0.20及以前的版本中,Common包含HDFS、MapReduce和其他公共的项目内容;从0.21版本开始,HDFS和MapReduce被分离为独立的子项目,其余部分内容构成HadoopCommon。

Avro是一个数据序列化系统,用于将数据结构或数据对象转换成便于数据存储和网络传输的格式。Avro提供了丰富的数据结构类型,快速可压缩的二进制数据格式,存储持久性数据的文件集,远程调用RPC和简单动态语言集成等功能。

Zookeeper是一个分布式协调服务框架,主要用于解决分布式环境中的一致性问题。Zookeeper主要用于提供分布式应用中经常需要的系统可靠性维护、数据状态同步、统一命名服务、分布式应用配置项管理等功能。Zookeeper可用来在分布式环境下维护系统运行管理中的一些数据量不大的重要状态数据,并提供监测数据状态变化的机制,以此配合其他Hadoop子系统(如HBase、Hama等)或者用户开发的应用系统,解决分布式环境下系统可靠性管理和数据状态维护等问题。

Hive是一个建立在Hadoop之上的数据仓库,用于管理存储于HDFS或HBase中的结构化/半结构化数据。它最早由Facebook开发并用于处理并分析大量的用户及日志数据,2008年Facebook将其贡献给Apache成为Hadoop开源项目。为了便于熟悉SQL的传统数据库使用者使用Hadoop系统进行数据查询分析,Hive允许直接用类似SQL的HiveQL查询语言作为编程接口编写数据查询分析程序,并提供数据仓库所需要的数据抽取转换、存储管理和查询分析功能,而HiveQL语句在底层实现时被转换为相应的MapReduce程序加以执行。

Pig是一个用来处理大规模数据集的平台,由Yahoo!贡献给Apache成为开源项目。它简化了使用Hadoop进行数据分析处理的难度,提供一个面向领域的高层抽象语言PigLatin,通过该语言,程序员可以将复杂的数据分析任务实现为Pig操作上的数据流脚本,这些脚本最终执行时将被系统自动转换为MapReduce任务链,在Hadoop上加以执行。Yahoo!有大量的MapReduce作业是通过Pig实现的。

Chukwa是一个由Yahoo!贡献的开源的数据收集系统,主要用于日志的收集和数据的监控,并与MapReduce协同处理数据。Chukwa是一个基于Hadoop的大规模集群监控系统,继承了Hadoop系统的可靠性,具有良好的适应性和扩展性。它使用HDFS来存储数据,使用MapReduce来处理数据,同时还提供灵活强大的辅助工具用以分析、显示、监视数据结果。

Hama是一个基于BSP并行计算模型(BulkSynchronousParallel,大同步并行模型)的计算框架,主要提供一套支撑框架和工具,支持大规模科学计算或者具有复杂数据关联性的图计算。Hama类似Google公司开发的Pregel,Google利用Pregel来实现图遍历(BFS)、最短路径(SSSP)、PageRank等计算。Hama可以与Hadoop的HDSF进行完美的整合,利用HDFS对需要运行的任务和数据进行持久化存储。由于BSP在并行化计算模型上的灵活性,Hama框架可在大规模科学计算和图计算方面得到较多应用,完成矩阵计算、排序计算、PageRank、BFS等不同的大数据计算和处理任务。

Sqoop是SQL-to-Hadoop的缩写,是一个在关系数据库与Hadoop平台间进行快速批量数据交换的工具。它可以将一个关系数据库中的数据批量导入Hadoop的HDFS、HBase、Hive中,也可以反过来将Hadoop平台中的数据导入关系数据库中。Sqoop充分利用了HadoopMapReduce的并行化优点,整个数据交换过程基于MapReduce实现并行化的快速处理。

Flume是由Cloudera开发维护的一个分布式、高可靠、高可用、适合复杂环境下大规模日志数据采集的系统。它将数据从产生、传输、处理、输出的过程抽象为数据流,并允许在数据源中定义数据发送方,从而支持收集基于各种不同传输协议的数据,并提供对日志数据进行简单的数据过滤、格式转换等处理能力。输出时,Flume可支持将日志数据写往用户定制的输出目标。

THE END
1.SSM+在线学习平台毕业设计附源码211707论文主要是对在线学习系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对在线学习系统进行了一些具体测试。 本文以SSM框架为开发技术,实现了一个在线学习系统。在线学习系统的主要使用者分为管理员https://blog.csdn.net/weixin_BYSJ1987/article/details/126927243
2.在线教育系统在线教育系统,分为前台网站系统和后台运营平台,B2C模式 开发。项目前后端分离开发,后端采用SpringCloud微服务架构,持久层用的是MyBatis-Plus,微服务分库设计,使用Swagger生成接口文档。前台用户系统包括:首页、课程、讲师、问答、文章等几大部分。后台管理系统包括:https://mm.edrawsoft.cn/template/365000
3.智慧校园物联网平台系统架构图流程图模板智慧校园物联网平台系统架构图 智慧校园 智能家居 智能宿舍 物联网平台 系统架构图 作者其他创作 大纲/内容 数据平台 视频识别 业务平台 可视化大屏 接入层 其它 移动APP 智能窗帘 标准协议 校方自有产品 告警系统 智能车场 楼宇对讲 IC卡门禁 AI平台 智慧校园技术规范与保障体系 业务 设备直连 自助货柜 物https://www.processon.com/view/6571717d48d5be22be161b09
4.在线教育平台产品架构图在线教育平台功能模块在线教育平台 产品架构图 在线教育平台功能模块 近年来因为疫情原因,越来越多的教育机构开通了线上教育平台,在线教学由于是通过互联网进行,那么只要家长或孩子有时间就都可以打开手机或者电脑进行学习,也因此,线上教育彻底打破了地域差距和时间限制,无论身处何地,只要有网络,孩子就可以随时随地上课,不受地区和时间的https://blog.51cto.com/u_16099283/9080371
5.干货携程商旅订单系统架构设计和优化实践干货| 携程商旅订单系统架构设计和优化实践 作者简介 Gavin, 携程技术专家, 致力于系统优化、重构和开发效率提升。 概述 携程商旅是一站式互联网差旅服务平台,为客户提供差旅管控、预订、出行、结算、成本、风控等服务的在线TMC(Travel Management Companies)。主要产线有:机票、酒店、火车票、打车、接送机、包车、租车https://cloud.tencent.com/developer/article/1900477
6.屏南县公安局信息化采购项目附件13.可基于账号、IP地址、访问权限、客户端工具等维度对行为模型做钻取分析、变更分析,对学习的安全基线以外的行为自动智能的进行告警。 14.支持用户界面告警、Syslog、SNMP、邮件、短信、ftp六种方式告警;采用B/S架构管理,支持中英文两种管理界面; 15.系统内置独立的故障排错系统,支持一键导出系统调试日志,一键检测服务http://zfcg.czj.ningde.gov.cn/upload/document/20200807/9d142b566de140818484e071d457a4c2.html
7.思科网络技术学院教程(第6版):网络简介第1章“探索网络”:介绍网络的概念并概述各种不同的网络。探讨网络对我们的工作、学习和娱乐方式的影响,讨论新的网络趋势,如视频、云计算和BYOD,以及如何确保支持这些趋势的网络健壮、可靠而安全。 第2章“配置网络操作系统”:简要地介绍大多数思科设备使用的操作系统—Cisco IOS。描述IOS的基本用途和功能以及访问IOShttps://www.epubit.com/bookDetails?id=N15003
8.字节跳动《实时音视频通讯技术》学习笔记之RTC概述及技术简介RTC 系统架构图 信令是一些控制指令,信令服务器可以用于呼叫、协调。 合流转推等等这些操作是后处理服务器来完成的。 客户端是音视频通话的终端,我们来看看客户端整体技术架构。 QoS 是保证在弱网的情况下仍然能够使用。 事件上报是因为任何的日志都需要上传,可以处理错误和进行性能优化、算法改进。 https://xie.infoq.cn/article/f59d5db8623588574b66d3ea8
9.教学资源库建设实用(14篇)在STC理念下所建设的高职旅游管理专业教学资源库,应该是一个面向多类学习者的一个学习平台,这个平台是开放的共享的,在校学生可以使用,社会学习者也可以使用,并且还应该注意资源的系统性、发展性,要形成动态调整的机制。以STC理念为指导,对旅游管理专业教学资源库建设进行评价主要需要解决评价的原则、评价的维度、评价https://www.unjs.com/w/436353.html
10.预告中国图象图形学学会青年科学家论坛2021会议日程安排(线上报告还将介绍轻量化目标检测&目标跟踪的研究现状,并结合当前主流的智能边缘系统架构分析在线自主学习、轻量化目标检测&跟踪的整体框架的设计方法。最后将分享边缘端在线自主学习的应用成果,及未来边缘计算的发展方向和发展前景。 个人简介: 张弘,北京航空航天大学教授,博导,主要研究领域为人工智能、模式识别、图像分析及https://www.zhuanzhi.ai/document/9781e6b8a16a730e53029ebaddc2d129
11.系统架构师入门指南:从零开始学习系统架构设计学习新技术与趋势: 技术领域不断变化,系统架构师需要持续关注最新的技术发展趋势,例如云计算、容器化技术(如 Docker)、微服务架构、DevOps 方法论等,并将其融入到实际工作中。 具备业务领域知识: 成功的系统架构师不仅需要掌握技术细节,还需要对业务领域有一定的了解,这样才能更好地满足业务需求。例如,金融领域的系统https://www.imooc.com/article/361175
12.党校培训平台在线学习系统网络学习系统网络在线学习系统瑞德党校培训平台是瑞德软件依据多年的学习平台开发经验,使用当今最核心的J2EE系统架构,研发出的专为学校组织部开展网上党校培训的新一代网络学习平台。瑞德网上党校培训平台采用WEB2.0社区设计思想、友好的用户界面、灵活的权限分配机制、多服务器分布式管理架构和高并发量等特点,是各个高校的不二选择。 http://www.elearning51.net/cp/dxpt/2013/0312/2.html
13.网络架构示意图推荐线上补课线上学习LOL学习在线开班LOL学习在线开班平台布署在专业电信机房,由数十台高端服务器组成,链接宽带光纤高速网络,由不断电系统(UPS)保护电力系统供应稳定,架设防火墙抵御入侵与攻击,蓝眼科技专业技术与客服团队 24 小时监测开班平台系统运作,提供客户稳定可靠的线上学习平台,学生可以在家、在https://lol.blueeyestech.com/network_architecture_diagram-cn.php
14.新为股份e新为股份-e-learning平台系统专家,14年研发专注和6000+客户成功案例,新为学习发展系统可为企业事业单位提供专业的e-learning平台,移动学习系统,在线学习系统,在线培训系统,在线学习平台,培训考试平台,培训管理平台,企业学习管理系统,创建学习型组织企业大学首选新为e-learnihttp://www.newlms.cn/products/7/1.html
15.“互联网+教育”教学资源管理平台建设方案借助全媒体教学资源融合管理平台实现统一入口、统一管理和统一调度,系统架构支持云服务和模块化设计,底层搭建各种平台应用硬件设施和软件系统,中间架设平台所有基础功能组件,同时将这些功能组件以服务的形式提供给区域各级和各角色用户,用户无论在录播教室、会议室、班班通教室、教研室、办公室、差旅中,仅需采用自己最适合的https://www.douban.com/note/861125885/
16.基于云平台的在线学习系统设计与实现(2)基于云计算企业在线学习系统的相关流程进行了需求分析,明确了系统需要实现的功能;通过时序图的方式对系统的业务流程进行了描述;设计并完成了系统的用例图;最后通过UML模型深入的分析了系统。(3)本文基于B/S(浏览器/服务器模式)架构,通过MVC设计模式实现了系统业务与显示的有效分离,使得系统结构更加清晰。系统实现https://wap.cnki.net/lunwen-1019605239.html
17.手把手带你构建个人工作生活和知识管理系统(二)系统目标 带着意向去生活,而不是被生活拎着走。 把重心放在最重要的事情上,而不是陷入琐事的泥沼不能自拔。 高效管理个人事务,平衡工作和生活,而不是被天天追债。 如果你有以上三个需求之一,就跟我一起来学习搭建一个个人管理系统吧! (三)系统架构图 https://www.jianshu.com/p/ac6347cb4063
18.在线系统架构图使用Moodle搭建在线学习系统华为云帮助中心为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:在线系统架构图。https://support.huaweicloud.com/topic/460009-1-Z
19.CRM系统架构图及其组成部分的功能介绍是啥?零代码企业数字化简道云是一款非常适合构建和管理CRM系统的平台,它提供了丰富的功能和灵活的配置选项,可以满足不同企业的需求。更多信息,请访问简道云官网:https://s.fanruan.com/6mtst; 相关问答FAQs: CRM系统架构图及其组成部分的功能介绍是什么? CRM(客户关系管理)系统是现代企业进行客户管理和提升客户满意度的重要工具。它的架构图https://www.jiandaoyun.com/blog/article/1795837/