Apache Flume支持采集各类数据发送方产生的日志信息,并且可以将采集到的日志信息写到各种数据接收方。其核心是把数据从数据源(Source)收集过来,在将收集到的数据送到指定的目的地(Sink)。为了保证输送的过程一定成功,在送到目的地(Sink)之前,会先缓存数据(Channel),待数据真正到达目的地(Sink)后,Flume再删除自己缓存的数据。 一、 Apache Flume的体系
阿里云提供的大数据计算服务MaxCompute(原名ODPS,Open Data Processing Service的简称)是一种快速、完全托管的EB级数据仓库解决方案,主要用于实时性要求不高的离线计算分布式处理场景。因此,大数据计算服务MaxCompute不能用于数据的实时处理场景中。MaxCompute由四部分组成,分别是计算与存储层(MaxCompute Core)、逻辑层 (MaxCo
HDFS的快照(Snapshot)是一个全部文件系统、或者某个目录在某一时刻的镜像。这里其实可以把HDFS的快照理解成是HDFS提供的一种备份机制。快照应用在以下场景中: 防止用户的错误操作 备份 试验/测试 灾难恢复 点击这里查看视频讲解:【赵渝强老师】:Hadoop HDFS的快照 由于HDFS的快照功能是针对的目录,因此需要首先使用HDFS的管理员命令开启目录的快
阿里云大数据计算服务(MaxCompute)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。 点击这里查看视频讲解:【赵渝强老师】阿里云大数据存储计算服务MaxCompute 一、 什么是MaxCompute? 随着数据
Sqoop是SQL To Hadoop的简称,它是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(Oracle、MySQL等)间进行数据的传递。通过使用Sqoop可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。Sqoop是基于MapReduce完成数据的交换,因此在使用Sqoop之前需要部署Hadoop环境;另一方面,由
Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机)之上,并兼容现有的Java程序。因此,要安装Scala环境之前,首先需要安装Java的JDK。学习Scala编程语言,将为后续学习Spark和Flink奠定基础。 点击这里查看视频讲解:【赵渝强老师】:Scala编程语言 下面的代码展示了在
在Hadoop HDFS的体系架构中,包含了三个组成部分。它们分别是:NameNode、DataNode和SecondaryNameNode。下图摘至Hadoop官方的网站,它说明了HDFS的体系架构。 点击这里查看视频讲解:【赵渝强老师】:HDFS的体系架构 一、NameNode的职责 NameNode,即名称节点,它是HDFS的主节点,其主要作用体现在以下几个方面。
Kafka消费者组中的消息消费模型有两种,即:推送模式(push)和拉取模式(pull)。 一、消息的推送模式 这种消息的消费模式需要记录消费者的消费者状态。当把一条消息推送给消费者后,需要维护消息的状态。如果这条消息已经被消费将会对消息进行标记。这种方式无法很好地保证消息被处理。如果要保证消息被处理,发送完消息后需要将其状态设置为“已发送”;而收到消费者的确认后才将其状态更新为“已消费”,这就
消费者就是从Kafka集群消费数据的客户端,下图展示了一个消费者从主题中消费数据的模型。 上图展示的是单消费者模型。单消费者模型存在一些问题。如果Kafka上游生产的数据很快,超过了单个消费者的消费速度,那么就会导致数据堆积。 为了解决单消费者存在的问题,Kafka提出了消费者组的概念。所谓消费者组就是一组消费者的集合。消费者是以消费者组(Consumer Group)的方式工作,即一个
Spark RDD通过persist方法或cache方法可以将计算结果的缓存,但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD才会被缓存在计算节点的内存中并供后面重用。下面是persist方法或cache方法的函数定义: def persist(): this.type = persist(StorageLevel.MEMORY_ONLY) def cache():
由于Spark的计算是在内存中完成,因此任务执行的生命周期lineage(血统)越长,执行出错的概念就会越大。Spark通过检查点Checkpoint的方式,将RDD的状态写入磁盘进行持久化的保存从而支持容错。如果在检查点之后有节点出现了问题,Spark只需要从检查点的位置开始重新执行lineage就可以了,这样就减少了开销。设置checkpoint的目录,可以是本地的文件夹,也可以是HDFS。
Spark RDD彼此之间会存在一定的依赖关系。依赖关系有两种不同的类型:窄依赖和宽依赖。 窄依赖:如果父RDD的每一个分区最多只被一个子RDD的分区使用,这样的依赖关系就是窄依赖; 宽依赖:如果父RDD的每一个分区被多个子RDD的分区使用,这样的依赖关系就是宽依赖。 map、filter、union等操作都是典型的窄依赖操作,如下图所示。通过观察发现,每一个父RDD的分区都只被一个子RDD
Hive的分区表跟Oracle、MySQL中分区表的概念是一样的。当表上建立了分区,就会根据分区的条件从物理存储上将表中的数据进行分隔存储。而当执行查询语句时候,也会根据分区的条件扫描特定分区中的数据,从而避免全表扫描以提高查询的效率。Hive分区表中的每个分区将会在HDFS上创建一个目录,分区中的数据则是该目录下的文件。在执行查询语句时,可以通过SQL的执行计划了解到是否在查询的时候扫描的特定
Hive是基于HDFS之上的数据仓库,它把所有的数据存储在HDFS中,Hive并没有专门的数据存储格式。当在Hive中创建了表,可以使用load语句将本地或者HDFS上的数据加载到表中,从而使用SQL语句进行分析和处理。 Hive的数据模型主要是指Hive的表结构,可以分为:内部表、外部表、分区表、临时表和桶表,同时Hive也支持视图。 点击这里查看视频讲解:【赵渝强老师】
由于在HA架构中包含的节点比较多,在进行实际部署的时候需要做好集群的规划。下表一共使用了4个节点来部署HDFS HA,它们分别是:bigdata112、bigdata113、bigdata114和bigdata115。由于Hadoop默认包含了HDFS和Yarn,因此在部署HDFS HA的时候,也可以同时部署Yarn的HA。每个节点上部署的服务如下表所示: 点击这里查看视频
大数据体系架构中的核心组件都是主从架构,即:存在一个主节点和多个从节点,从而组成一个分布式环境。下图为展示了大数据体系中主从架构的相关组件。 点击这里查看视频讲解:【赵渝强老师】:大数据主从架构的单点故障 从上图可以看出大数据的核心组件都是一种主从架构,而只要是主从架构就存在单点故障的问题。因为整个集群中只存在一个主节点,如果这个主节点出现的故障或者发生了宕机,就
大数据体系架构中的组件非常多,每个组件又属于不同的生态圈系统。从最早的Hadoop生态圈体系开始,逐步有了Spark生态圈体系和Flink生态圈体系。因此在学习大数据之前有必要了解一下每一个生态圈体系中具体包含哪些组件,以及它们的作用又是什么。 一、大数据的数据存储组件 在大数据体系中使用了分布式存储的方式解决了海量数据的存储问题。它分为离线数据存储和实时数据存储。 (一)大数据离线数据
大数据平台所要解决的问题是数据的存储和数据的计算,其核心思想采用的是分布式集群的思想。另一方面,分布式集群的思想在Google的技术系统中得到了很好的应用。因此Google将其核心技术的思想以论文的形式公开发表出来,这就是"Google的三驾马车",即:Google的文件系统、MapReduce分布式计算模型和BigTable大表。这三篇论文奠定了大数据生态圈体系中的技术
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,它是Spark中最基本、也是最重要的的数据模型。它由分区组成,每个分区被一个Spark的Worker从节点处理,从而支持分布式的并行计算。RDD通过检查点Checkpoint的方式提供自动容错的功能,并且具有位置感知性调度和可伸缩的特性。通过RDD也提供缓存的机制,可以极大地提高数据处理的速度。
在最新的Hadoop版本中又实现了基于Router的联盟架构,并且在这个架构之上还实现了许多增强集群管理能力的特性。Router将挂载表从客户端中抽离了出来,解决了ViewFS存在的问题。 点击这里查看视频讲解:【赵渝强老师】:基于RBF的HDFS联邦架构 为了对用户屏蔽联盟的实现细节,将ViewFS的配置和实现从客户端中剥离出来,一个自然的想法引入新的代理服务,客
要开发Spark Streaming应用程序,核心是通过StreamingContext创建DStream。因此DStream对象就是Spark Streaming中最核心的对象。DStream的全称是Discretized Stream,翻译成中文是离散流。它是Spark Streaming对流式数据的基本数据抽象,或者说是Spark Streaming的数据模型。DStream的核心是通
通过SQL语句处理数据的前提是需要创建一张表,在Spark SQL中表被定义DataFrame,它由两部分组成:表结构的Schema和数据集合RDD,下图说明了DataFrame的组成。 从图中可以看出RDD是一个Java对象的数据集合,而DataFrame增加了Schema的结构信息。因此可以把DataFrame看成是一张表,而DataFrame的表现形式也可以看成是RDD。Data
在Kafka中每个主题可以有多个分区,每个分区又可以有多个副本。在这多个副本中,只有一个副本的角色是Leader,而其他副本的角色都是Follower。仅有Leader副本所在的Kafka Broker可以对外提供服务。Follower副本通常不会存放在Leader副本所在的Kafka Broker上。通过这样的机制实现了高可用,当Leader副本所在的Kafka Broker宕机后,
Kafka中的消息以主题为单位进行归类,生产者负责将消息发送到特定的主题,而消费者负责订阅主题进行消费。主题可以分为多个分区,一个分区只属于某一个主题。下面为列举了主题和分区的关系: 同一主题下的不同分区包含的消息不同。生产者发送给主题的消息都是具体发送到某一个分区中。 消息被追加到分区日志文件的时候,Broker会为消息分配一个特定的偏移量地址(offset)。该地址是消息在分区中的唯
基于开源的大数据技术,阿里云开发了自己的大数据计算服务,即:MaxCompute大数据计算服务。MaxCompute原名为ODPS(Open Data Processing Service),它是阿里云提供的数据仓库解决方案,并提供大数据量(百TB、PB、EB)的结构化数据的存储和计算服务。由于MaxCompute适用于离线计算的批处理场景,因此阿里云进一步开发了实时计算Flink版用于支持
在Hadoop体系中提供数据分析引擎Hive。它允许使用SQL语句来分析处理数据,而不需要编程复杂的Java程序。同时Hive提供了丰富的数据模型来创建各种表结构,帮助数据分析人员建立数据模型。 点击这里查看视频讲解:【赵渝强老师】:Hive的体系架构 Hive是基于Hadoop之上的数据仓库平台,提供了数据仓库的相关功能。Hive最早起源于FaceBook,200
Kafka消息系统是一个典型的分布式系统,其组成部分包括:消息生产者(Producer)、消息消费者(Consumer)、消息服务器(Broker)以及分布式协调服务ZooKeeper。一个典型的Kafka消息系统的集群架构如下图所示。 点击这里查看视频讲解:【赵渝强老师】:Kafka的体系架构 下表列举了Kafka中的一些术语,这些术语对于掌握Kafka的内容非
由于Flink集成了批计算和流计算,因此可以使用Flink构建流批一体的系统架构,主要包含数据集成的流批一体架构、数仓架构的流批一体架构和数据湖的流批一体。 一、数据集成的流批一体架构 在大数据场景下经常需要数据同步或者数据集成,也就是将数据库中的数据同步到大数据的数仓或者其他存储中。下图中的左边是传统的经典数据集成的模式之一,全量的同步和增量的同步实际上是两套技术,需要定期将全量同步的
在Hadoop的HDFS中客户端的操作请求,无论是上传数据或者下载数据都是由NameNode负责接收和处理。最终将数据按照数据块的形式保存到数据节点DataNode上。下图说明了HDFS数据上传的过程。 点击这里查看视频讲解:【赵渝强老师】:HDFS数据上传的过程 假设需要上传200M大小的一个文件。按照数据块128M的大小为单位进行切块,该文件就会被切分成两
在部署Hadoop之前,需要对Hadoop的目录结构要有一定了解。 点击这里查看视频讲解:【赵渝强老师】:Hadoop的本地模式 先执行下面的语句将Hadoop的安装介质解压的/root/training目录。 tar -zxvf hadoop-3.1.2.tar.gz -C ~/training/ 下面展示了Hadoop的目录结构。 为了方便操作Ha
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号