第二讲_数据生成与采集.pdf
数据仓库与大数据工程 Data Warehouse and Big Data Engineering 第二部分 数据生成与采集 版权所有: 北京交通大学计算机与信息技术学院 内容提纲 数据生命周期 数据产生、类型与规模 数据生态圈及OLTP系统生态圈 OLTP系统与DW/BD平台间数据流 面向OLTP系统的数据采集与传输方法 常见数据采集工具介绍 本部分实验要求 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 1. 数据生命周期的定义 ► 数据生命周期 ● 从数据的创建和保存开始,到数据最终过时并被删除的整 个周期 ► Data life cycle refers to ● the time from creation and the initial storage of data to the time that the data becomes obsolete and it is deleted. ● the sequence of stages that a particular unit of data goes through from its initial generation or capture to its eventual archival and/or deletion at the end of its useful life. 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 2. Phases of Data Life Cycle 生成或 捕获 清除 处理 数据生命 周期的阶 段 归档 发布 北京交大数据仓库与大数据工程课程组 维护 使用 Data Warehouse and Big Data Engineering,BJTU 其他观点1 缺少清除 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 其他观点2 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 其他观点3:从工程过程的角度看周期 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 内容提纲 数据生命周期 数据产生、类型与规模 数据生态圈及OLTP系统生态圈 OLTP系统与DW/BD平台间数据流 面向OLTP系统的数据采集与传输方法 常见数据采集工具介绍 本部分实验要求 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 1. 人类记录数据的需求 结算、 核算 纪念、 复查、 其他 审计 需求或 目的 预测、 复用、 决策 分享 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 2. 记录内容范围 人的行 为 社会环 机器的 境状态 行为 常见记 录内容 自然环 业务内 境状态 容 系统状 态 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 案例1—银行各种记录系统 ► 银行记录系统记录内容 ● 窗口业务 ○ 存、取、贷款、认购、认证、销户业务 ● ATM操作 ○ 查询、转账、存款等业务 ● 网银APP操作 ○ 查询、转账、贷款、购买、付款、… ● 业务场景视频 ● 客服 ○ 用户操作、语音、反馈 ● ... 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 案例2—民航各种记录系统 ► 航班执行及飞机飞行记录内容 ● 驾驶员行为 ● 气象 ● 飞行状态、飞行轨迹 ● 起飞、关舱门、撤轮挡、降落 ●… ► 与旅客有关的记录内容 ● 查票、购票、退票、改签 ● 客服 ● 安检、值机、登机 ● ... 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 案例3—SNS ► 社交媒体 ● 视频 ● 短文本 ● 消息 ● 行为记录 ● 操作记录 ● 用户账户及用户间关系 ●… 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 3. 数据的类型与规模 类型复杂,规模巨大 结构化 数据 数据的 文本 类型 半结构 非结构 化数据 化数据 声音 北京交大数据仓库与大数据工程课程组 数据规模巨大的主要原因: 1. 单条数据量大 2. 来源多—用户多 3. 业务繁忙—单个终端单 位时间生成的数据条数 图像 Data Warehouse and Big Data Engineering,BJTU 内容提纲 数据生命周期 数据产生、类型与规模 数据生态圈及OLTP系统生态圈 OLTP系统与DW/BD平台间数据流 面向OLTP系统的数据采集与传输方法 常见数据采集工具介绍 本部分实验要求 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 1. 数据生态圈—The Data Ecosystem 数据生态圈中 的各类主体 生产者 技术供 采集者 应商 软硬件 基础设 施 数据生 态圈 保管人 传输者 消费者 所有人 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 大数据生态圈一种提法 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 2. 数据生态圈中的数据流 数据产 生流 数据销 毁流 数据流 主体间 数据流 系统内 数据流 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 3. OLTP系统数据生态圈与数据流 外 部 交 互 主 体 承载内网 外内 OLTP系统 外内 北京交大数据仓库与大数据工程课程组 内部流转 承载外网 截留 主体 Data Warehouse and Big Data Engineering,BJTU 4. 数据产生流:记录工具—记录设备或系统 记录设备或系 统组成 终端记录设备 数据传输与缓 后台记录设备 与软件 存系统 与软件 终端 网络 服务集群 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 5. 从外部到OLTP系统内部 ►外部到内部的数据流 ●数据由用户通过终端进入系统内部 ●环境状态数据通过感知采集设备进入系统 内部 ●其他系统的数据经主动采集进入系统 ○企业外系统 ○企业内系统 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 6. 从系统内部到系统外部 ► 返回结果给用户端 ● 用户操作结果、推送结果 ► 提供数据给下游系统 ► 数据公开 ● 数据依法披露、社会公益需求 ► 提供数据给外部系统 ● 企业内数据仓库与大数据平台 ● 企业内部其他系统 ● 上级单位系统、下级单位系统、协作单位系统 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 7. 内部跨层流动 ► 服务端与终端之间的流动 ● 终端到服务端、服务端到终端 ● 终端到缓冲端、服务端到缓冲端 ► 服务端内部不同层级流程 ● 冷备、热备 ● 同步 ● 汇总统计 ● 归档 ● 对外出口缓冲 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 内容提纲 数据生命周期 数据产生、类型与规模 数据生态圈及OLTP系统生态圈 OLTP系统与DW/BD平台间数据流 面向OLTP系统的数据采集与传输方法 常见数据采集工具介绍 本部分实验要求 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 1. 企业内大平台间数据流 流动内容、功能目标 流动时机、软硬件设施 数据仓库/大数据平台 OLTP环境 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 2. OLTP环境数据仓库/大数据平台 流动内容、功能目标、流动时机、软硬件设施 流动内容: 数据仓库/大数据平台 基础事实 功能目标: 抽取、转换、载入,服务于后续数据利用 流动时机: 实时、近实时、小时级、天级、离线 OLTP环境 北京交大数据仓库与大数据工程课程组 软硬件设施: 软件程序、抽取服务器 Data Warehouse and Big Data Engineering,BJTU 3. 数据仓库/大数据平台OLTP环境 流动内容、功能目标、流动时机、软硬件设施 数据仓库/大数据平台 流动内容: 分析挖掘结果:信息流、知识流 功能目标: 反馈、回写信息,服务于OLTP业务提升 流动时机: 实时、近实时、小时级、天级、事件触发 OLTP系统 北京交大数据仓库与大数据工程课程组 软硬件设施: 回写服务器及软件 Data Warehouse and Big Data Engineering,BJTU 内容提纲 数据生命周期 数据产生、类型与规模 数据生态圈及OLTP系统生态圈 OLTP系统与DW/BD平台间数据流 面向OLTP系统的数据采集与传输方法 常见数据采集工具介绍 本部分实验要求 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 1. ETL时效性及任务发起主体 OLTP系统 在线数据 事务流 增、删、改、查 实时 近实时 小时级 天级 离线 DW/BigD 平台 ? 在线数据 1. OLTP系统发起 2. 由数据采集器发起 近线数据 日志数据 问题:谁发起数据 采集或更新任务? 近线数据 离线数据 离线数据 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 2. OLTP系统作为发起主体以达到实时性 事务流:增、删、改、查 OLTP系统 DW/BigD 平台 在线数据 在线数据 实时更新数据 在DW/BigData平 台的数据更新的任务 为事务的一部分 需要写多库的情况 多数情况下服务于 热备的目的。 日志数据 近线数据 离线数据 Begin Transaction Write in Operation Envi Send to and Write Data in DW/BigData Envi End Transaction 执行跨库事务 1. 在数据库端的存 储过程或触发器进 行跨库操作 2. 在应用端直接写 多个库 近线数据 离线数据 存在的问题:1. 两类性质完全不同的平台紧密耦合,拖累OLTP系统,需要具有相 当强大的硬件系统和软件系统作为保障和支撑,成本高。2. 不适用于大批量数据。 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 3. 由数据采集器发起 事务流:增、删、改、查 OLTP系统 DW/BigD 平台 在线数据 在线数据 无耦合方式: 设计独立的数据采集 器从OLTP系统中采 集需要的数据 日志数据 数据采 集器 近线数据 近线数据 最常见最易于操作的 形式 数据采集器的 接口机制、工 作机制? 离线数据 离线数据 存在的问题:无法实现真正的实时。 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 4. 实时性需求与解耦合需求间的矛盾 ►数据采集的实时性需求 ● 实时性是必然的需求,实时性要求流程中各个环 节衔接紧密,延时尽可能的短,前后环节间合作 紧密 ►系统间的解耦合需求 ● 确保OLTP系统、数据采集模块、DW/BigData平 台之间的相互独立性,提高系统的性能稳定性与 安全性,降低系统建设成本 ►重要任务 ● 如何能在解耦合的前提下,尽可能地提高实时性 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 5. 数据源变化状态维护与感知策略 OLTP系统 状态维 护模块 2. 数据源负 责维护状态 数据源 状态 一般由数据源负责维护数据是否发生变化。 2.1 发布状态,有授权者可查 2.2 不发布状态,有授权者可查,可能告诉 你,也可能不告诉你 2.3 一旦有数据变化主动告诉你 2.2 询问/返回 2.3 告知 状态 发布 2.1查询 数据采 集器 1. 数据源不负责维护状态,由 采集者直接感知变化状态。 问题:权限问题、成本问题、 安全性问题 问题:2.1、2.2、2.3三种模式,数据采集器 的地位有什么差异?哪种模式下地位最高? 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 6. 时效性与数据缓冲问题 ► 数据缓冲的必然性 ● 数据生成速度与数据采集速度之间不匹配 ● 数据完整性要求或集成需求 数据采集器 OLTP系统 DW/BigD 一般在三层都存在不同类型的数据缓冲,常见形式包括: 文件队列、消息队列、变化表、历史数据、离线数据文件、日志文件 时效性越高,需要的缓冲空间就越小,但是,要求的缓冲机构比较复 杂,中间及后续处理能力越高。时效性越低,要求的缓冲空间就越大, 数据传送机制相对比较简单,达到天级别时,甚至需要OLTP系统的暂 停业务服务。 注意:各层缓冲还可能溢出,溢出了如何处理,也是一个重要的问题 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 7. OLTP系统对外提供数据的接口问题 事务处理引擎 事务流:增、 删、改、查 OLTP系统 对外数据接口 … 在线数据 数据文件 或消息队 列维护 日志数据 … 消息队列 文件队列 增量 数据 处理 … 近线数据 近线平台数 据查询或导 出服务 离线数据 离线数据 选择提取 北京交大数据仓库与大数据工程课程组 … 批量或大规模历 史交易数据或日 志文件 批量 历史 数据 处理 Data Warehouse and Big Data Engineering,BJTU 8. 批量历史数据处理 主要场景:1. 科研实验;2. 初建系统首次 载入;3. 系统周期性重建式刷新; 4. 长周期 数据更新计算需求(周、月、季以上) 事务处理引擎 在线数据 OLTP 环境 主要问题与挑战:如何尽可能快完成巨量规 模数据的载入与计算问题 日志数据 近线数据 离线数据 近线平台数 据查询或导 出服务 离线数据 选择提取 批量或大规模 历史交易数据 或日志文件 批量历史 数据处理 平台 DW/BigD 平台 数据划分 数据清洗 内外排序 数据加载 并行计算 批量或大规 模历史交易 数据或日志 文件 一般需要采用高性能 或并行计算平台 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 批量数据处理涉及到的主要技术挑战 大内存 管理技 术 内部排 外存管 序技术 理技术 技术 挑战 外部排 并行计 序技术 算技术 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 9. 新增数据采集机制 数据文件 或消息队 列维护 事务处理 器 事务流:增、 删、改、查 DW/BigD平台 在线数据 … … 队列 数据缓冲或 分发模块 数据源服务器1 数据提 取模块 … 事务处理 器 事务流:增、 删、改、查 数据文件 或消息队 列维护 推送 push … 数 据 接 收 服 务 … 数据提 取模块1 数据 提取 服务 … … … 队列 数据源服务器n … … 数据提 取模块 北京交大数据仓库与大数据工程课程组 推送 push 拉… pull … 数据 推送 服务 集群服务与负载均衡 在线数据 … 数据提 取模块n 数据接 收模块1 … 推送 push … 后 续 数 据 处 理 数据接 收模块n 可采取的不同驱动策略:推或拉 大压力下性能瓶颈与集群服务 集群服务带来的负载均衡问题 Data Warehouse and Big Data Engineering,BJTU 10. 采集任务实现与执行 ► 各层采集任务实现 ● 一般需要人工定制编写采集各环节的程序 ► 采集任务的执行模式 ● 人工或事件驱动偶发执行 ● 周期性执行—常规模式 ► 需要编写实现采集计划任务 ► 计划任务定时执行或由工具驱动 ► 一般需要对采集计划任务进行管理 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 11. 采集任务管理与采集器功能配置 数据文件 或消息队 列维护 事务处理 器 事务流:增、 删、改、查 采集任务管理与配置 DW/BigD平台 在线数据 … … 队列 数据缓冲或 分发模块 数据源服务器1 数据提 取模块 … 事务处理 器 事务流:增、 删、改、查 数据文件 或消息队 列维护 推送 push … 数 据 接 收 服 务 … … 数据源服务器n 数据 提取 服务 … … 拉… pull … … … 数据 推送 服务 推送 push 数据提 取模块n 数据接 收模块1 … 推送 push 在线数据 队列 … 数据提 取模块1 … 后 续 数 据 处 理 数据接 收模块n 任务管理:管理与监控采集任务的执行 功能配置:集群、缓冲、分区、负载均衡等 数据提 取模块 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 内容提纲 数据生命周期 数据产生、类型与规模 数据生态圈及OLTP系统生态圈 OLTP系统与DW/BD平台间数据流 面向OLTP系统的数据采集与传输方法 常见数据采集工具介绍 本部分实验要求 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 数据采集相关常见的工具 ► Kafka ► MQ ► Flume ► Datastage ► Powercenter ► Teradata ETL Automation ► Informatica ►… 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 1. Kafka简介 ► Kafka是最初由Linkedin公司开发,是一个分布式、分区的、 多副本的、多订阅者,基于zookeeper协调的分布式日志系 统,常见可以用于web/nginx日志、访问日志,消息服务等 等,Linkedin于2010年贡献给了Apache基金会并成为顶级 开源项目。 ● 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上 数据也能保证常数时间复杂度的访问性能。 ● 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒 100K条以上消息的传输。 ● 支持Kafka Server间的消息分区,及分布式消费,同时保证每个 Partition内的消息顺序传输。 ● 同时支持离线数据处理和实时数据处理。 ● Scale out:支持在线水平扩展 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 基本术语 ► 代理(broker):组成Kafka 集群的单元。Kafka以一个 拥有一台或多台服务器的分布式集群形式运行着,每一台 服务器称为broker。 ► 生产者(producer):根据对于主题的选择向Kafka 的发 布消息,即向broker push 消息的一系列进程。生产者负 责决定某一条消息该被被发往选定主题(topic)的哪一个 分区(partition)。 ► 消费者(consumer):向主题注册,并且接收发布到这 些主题的消息,即消费一类消息的进程或集群。 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 分布式消息订阅和发布系统架构 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 应用实例:Kafka 数据文件 或消息队 列维护 事务处理 器 事务流:增、 删、改、查 ZooKeeper 、群组协调器 在线数据 … … 队列 数据源服务器1 Kafka 生产者 推送 Send() … 事务处理 器 事务流:增、 删、改、查 DW/BigD平台 数据文件 或消息队 列维护 … Kafka 集群 消费者组1 Broker 1 Kafka 消费者1 Topic1 Partition1 拉 pull Topic2 Partition1 … 消费者组2 Broker 2 Topic1 Partition2 在线数据 Kafka 消费者3 … … 队列 数据源服务器n Topic2 Partition2 Kafka 生产者 北京交大数据仓库与大数据工程课程组 推送 Send() Kafka 消费者2 后 续 数 据 处 理 1 … … … Kafka 消费者4 … 后 续 数 据 处 理 2 … Data Warehouse and Big Data Engineering,BJTU 基本术语 ► 主题(topic):Kafka 用于区分所发布消息的类别,即一 个主题包含一类消息。 ► 分区(partitions):Kafka 为于每一个主题维护了若干个 队列,称为分区。 ● 假设有一个拥有3 个分区的主题,其中主题(topic)和分区关系如 下图 Kafka 中每个主题的每一个分区是 一个有序写入、不可变的消息序列, 一个topic 下可以拥有多个分区。 消息偏移量(offset)是Kafka 赋 予每个分区(partition)内的每条 消息一个唯一的递增的序列号,称 为消息偏移量(offset)。 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 基本术语 ► 消费者群组(Consumer Group)是有若干个消费者组成的 集体。每个Consumer 属于一个特定的Consumer Group。 ► 建组的主要目的,方便通知 ● Kafka 采用将Consumer 分组的方式实现一个主题(Topic)的消息的 广播(发给所有的Consumer)和单播(发给某一个Consumer)。 ► 副本(replications):即分区的备份,以便容错, 分布在其他broker 上,每个broker 上只能有这个分 区的0 到1 个副本,即最多只能有一个。 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU Kafka 生产者消息发送 Topic 1 Partition 0 0 1 2 3 4 5 6 7 8 9 10111213 指定 Kafka 生产者 推送 Send() 指定 Partition 1 序列化 器 分区器 将数据按 Key值分到 不同的分区 进行存储 北京交大数据仓库与大数据工程课程组 0 1 2 3 4 5 6 7 8 9 Partition 2 0 1 2 3 4 5 6 7 8 9 101112 Data Warehouse and Big Data Engineering,BJTU Kafka 消费者消息拉取 Topic 1 订阅 消费者组 Partition 0 0 1 2 3 4 5 6 7 8 9 10111213 拉取 Kafka 消费者1 Partition 1 0 1 2 3 4 5 6 7 8 9 拉取 Partition 2 Kafka 消费者2 分区的 分配由 群组协 调器进 行维护 Kafka 消费者3 0 1 2 3 4 5 6 7 8 9 101112 拉取 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU Kafka的位置 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 分布式消息订阅和发布系统架构 ► 多个代理者(broker)协同合作,组成了Kafka 集群。 ► Kafka 的集群架构采用P2P(peer to peer)模式。集群中没 有主节点,所有节点都平等作为消息的处理节点。 ● 优点是没有单点问题,一部分节点宕机,服务仍能够正常,缺点是很 难达成数据的一致性和多机备份,如果一部分节点宕机会导致数据的 丢失。 ► Kafka 为避免上述的问题采用主节点选举机制 ● 利用zookeeper,对于每一个主题(topic)的分区(partitions),选 出一个leader-broker(主节点),其余broker 为followers(从节 点),leader 处理消息的写入和备份;当leader 宕机,采用选举算法, 从followers中选出新的leader,以保障服务的可用,同时保障了消息 的备份和一致性。 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 分布式消息订阅和发布系统架构 ► 生产者(producer)和消费者(consumer)部署在 各个业务逻辑中被频繁地调用,三者通过zookeeper 管理协调请求和转发。 ► producer 到broker 的过程是push,也就是有数据 就推送到broker,而consumer到broker 的过程是 pull,是通过consumer 主动去拉取数据的,而不是 broker 把数据主动发送到consumer端的。 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 2. Flume简介 ► Flume最早是Cloudera提供的日志收集系统,目前 是Apache下的一个孵化项目,Flume支持在日志系 统中定制各类数据发送方,用于收集数据; ► 同时,Flume提供对数据进行简单处理,并写到各 种数据接受方(可定制)的能力。 Flume是一个分 布式、可靠和高可用的海量日志采集、聚合和传输 的系统。 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU Flume的位置 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU Flume架构 ► Flume的架构中最重要的 抽象是data flow(数据 流),data flow描述了 数据从产生,传输、处理 并最终写入目标的一条路 径(实线描述了data flow)。 Agent用于采 集数据,agent是flume 中产生数据流的地方,同 时,agent会将产生的数 据流传输到collector。 对应的,collector用于 对数据进行聚合,往往会 产生一个更大的流。 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU Flume架构 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU Flume架构 ► 收集数据有2种主要工作模式,如下: ● 1. Push Sources:外部系统会主动地将数据推 送到Flume中,如RPC、syslog。 ● 2. Polling Sources:Flume到外部系统中获取 数据,一般使用轮询的方式,如text和exec。 ►注意,在Flume中,agent和collector对应, 而source和sink对应。Source和sink强调发 送、接受方的特性(如数据格式、编码等), 而agent和collector关注功能。 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 3. Zookeeper简介 ► Zookeeper,是一个高可用的分布式数据管理与系统 协调框架,是Hadoop的一个子项目,是一种分布式 的、开源的、应用于分布式应用的协作服务,主要是 用来解决分布式应用中经常遇到的一些数据管理问题, 如:统一命名服务、状态同步服务、集群管理、分布 式应用配置项的管理等 ► Zookeeper 作为一个分布式的服务框架,主要用来 解决分布式集群中应用系统的一致性问题,它能提供 基于类似于文件系统的目录节点树方式的数据存储, 但是 Zookeeper 并不是用来专门存储数据的,它的 作用主要是用来维护和监控你存储的数据的状态变化。 通过监控这些数据状态的变化,从而可以达到基于数 据的集群管理。 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU ZooKeeper的位置 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU Zookeeper的系统架构 ► Zookeeper不仅可以单机提供服务,同时也支持多机组成集 群来提供服务(如图所示)。 ► Zookeeper中的角色主要包括领导者、学习者和客户端 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU Zookeeper的设计目的 ► 最终一致性:client不论连接到哪个Server,展示给它都是同 一个视图,这是zookeeper最重要的性能; ► 可靠性:具有简单、健壮、良好的性能,如果消息被其中一 台服务器接受,那么它将被所有的服务器接受; ► 实时性:Zookeeper保证客户端将在一个时间间隔范围内获 得服务器的更新信息,或者服务器失效的信息;但由于网络 延时等原因,Zookeeper不能保证两个客户端能同时得到刚 更新的数据,如果需要最新数据,应该在读数据之前调用 sync()接口; ► 等待无关(wait-free):慢的或者失效的client不得干预快速 的client的请求,使得每个client都能有效的等待; ► 原子性:更新只能成功或者失败,没有中间状态; 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU Zookeeper的特点 ► 顺序性:包括全局有序和偏序两种:全局有序是指如果在一 台服务器上消息a在消息b前发布,则在所有Server上消息a都 将在消息b前被发布;偏序是指如果一个消息b在消息a后被同 一个发送者发布,a必将排在b前面。 ► 简易性:通过一种和文件系统很像的层级命名空间来让分布 式进程互相协同工作,实现了高性能、高可靠性和有序的访 问。 ► 可用性:组成Zookeeper的各个服务器之间能够相互通信, 在内存中保存服务器状态,也保存了操作日志,并且持久化 快照,只要大多数服务器是可用的,那么,Zookeeper就是 可用的。 ► 有序性:使用数字来对每个更新进行标记,保证Zookeeper 交互的有序。 ► 高效性:表现在以读为主的系统上。 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 内容提纲 数据生命周期 数据产生、类型与规模 数据生态圈及OLTP系统生态圈 OLTP系统与DW/BD平台间数据流 面向OLTP系统的数据采集与传输方法 常见数据采集工具介绍 本部分实验要求 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 实验二:大数据采集技术实验 ► 实验环境 ● Kafka集群; ● MySQL数据库; ● 编程语言:Java(推荐使用)、Scala、C++等; 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 实验二:大数据采集技术实验 ► 实验内容 ● 首先,设计用于存储结构化的用户行为日志数据的 MySQL ER模型; ● 其次,设计并实现三种不同类型的模拟数据抓取的Kafka 生产者,将文本文件形式的日志数据发送到Kafka集群中 的相应话题中。三种不同类型的Kafka生产者为: ○ 模拟单数据源实时抓取的Kafka生产者; ○ 模拟多数据源实时抓取的Kafka生产者; ○ 模拟多粒度数据抓取的Kakfa生产者; ● 最后,设计并实现一个模拟数据解析的Kafka消费者,将 Kafka集群中相应话题中的文本形式的日志数据记录解析 为结构化数据,并存储到MySQL中自己设计的相应关系 表中。 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 实验二:大数据采集技术实验 ► 实验步骤 ● 设计存储结构化日志数据的MySQL关系表; ● 根据原始数据情况,创建Kafka话题并尝试设置不同的分 区数目进行后续实验; ● 根据原始数据和创建的Kafka话题,设计并实现三种不同 类型的模拟日志抓取的Kafka生产者; ● 根据Kafka中存储日志数据的话题中的数据量情况,设计 并实现日志解析与结构化数据存储的Kafka消费者; ► 实验输出 ● 按照给定实验报告模板制作实验报告 ● 包含独自实验过程中的关键分析、图、表、代码和截图 北京交大数据仓库与大数据工程课程组 Data Warehouse and Big Data Engineering,BJTU 本部分结束!