HCNA-Big_Data3
2019-01-29 20:20:27 10 举报
AI智能生成
HCNA-BigData 华为大数据认证思维导图3
作者其他创作
大纲/内容
10.Flume技术原理
目标
熟悉Flume是什么
熟悉Flume能干什么
熟悉Flume在FusionInsight产品的位置
掌握Flume的系统架构
掌握Flume关键特性介绍
熟悉Flume应用举例
Flume 简介及架构
·Flume是开源的、分布式、可靠和高可用流式日志采集工具·Flume提供对数据进行简单处理并且写到各种数据接受方(可定制)的能力·Flume提供从本地文件(spooling directory source)、实时日志(taildir、exec)、REST消息、 Thrift 、Avro、Syslog、Kafka等数据源上收集数据的能力
能干什么
提供实时采集日志信息(taildir)到目的地的能力
支持级联(多个Flume对接起来),合并数据的能力
支持按照用户定制采集数据的能力
在FusionInsight中的位置
分支主题
Flume架构
Flume基础架构
Flume可以单节点直接采集数据,主要应用于集群内数据
Flume多agent架构
Flume可以将多个节点连接起来,将最初的数据源经过收集,存储到最终的存储系统中。主要应用于集群外的数据导入到集群内
EVENT是Flume对数据的封装,是最小的数据单元
基本概念
Source
负责接收events或通过特殊机制产生events,并将events批量放到一个或多个Channels。
驱动型source:是外部主动发送数据给Flume,驱动Flume接受数据。 轮询source:是Flume周期性主动去获取数据。
Source必须至少和一个channel关联
Channel
位于Source和Sink之间, Channel的作用类似队列,用于临时缓存进来的events,当Sink成功地将events发送到下一跳的channel或最终目的,events从Channel移除
不同的Channel提供的持久化水平也是不一样的: Memory Channel:不会持久化 。 File Channel: 基于WAL(预写式日志Write-Ahead Log)实现。 JDBC Channel: 基于嵌入式Database实现。
Memory Channel:消息存放在内存中,提供高吞吐,但不提供可靠性;可能丢失数据。 File Channel:对数据持久化;但是配置较为麻烦,需要配置数据目录和checkpoint目录;不同的file channel均需要配置一个checkpoint目录。 JDBC Channel:内置的derby数据库,对event进行了持久化,提供高可靠性;可以取代同样具有持久特性的file channel。
Channels支持事务,提供较弱的顺序保证,可以连接任何数量的Source和Sink
Sink
负责将events传输到下一跳或最终目的,成功完成后将events从channel移除
必须作用于一个确切的channel
Flume关键特性介绍
Flume支持采集日志文件
支持将集群外的日志文件采集并归档到HDFS、HBase、Kafka上,供上层应用对数据分析、清洗数据使用
Flume支持多级级联和多路复制
支持将多个Flume级联起来,同时级联节点内部支持数据复制
Flume级联消息压缩、加密
Flume级联节点之间的数据传输支持压缩和加密,提升数据传输效率和安全性
Flume数据监控
Flume传输可靠性
Flume在传输数据过程中,采用事务管理方式,保证传输过程中数据不会丢失,增强了数据传输的可靠性,同时缓存在channel中的数据如果采用file channel,进程或者节点重启数据不会丢失
Flume在传输数据过程中,如果下一跳的Flume节点故障或者数据接受异常时,可以自动切换到另外一路上继续传输
Flume传输过程中数据过滤
Flume在传输数据过程中,可以简单的对数据简单过滤、清洗,可以去掉不关心的数据,同时如果需要对复杂的数据过滤,需要用户根据自己的数据特殊性,开发过滤插件,Flume支持第三方过滤插件调用
Flume应用举例
演示Flume通过采集集群内应用(比如网银系统)产生的日志到HDFS上
P389
演示Flume实时采集点击流日志到Kafka,用于后续的实时分析处理
P397
11.Kafka技术原理
目标 掌握:
消息系统的基本概念和Kafka的应用场景
Kafka系统架构
Kafka关键流程
Kafka 简介
Kafka 是一个高吞吐、分布式、基于发布订阅的消息系统,利用Kafka技术可在廉价PC Server上搭建起大规模消息系统。
Kafka和其他组件比较,具有消息持久化、高吞吐、实时等特性,适用于离线和实时的消息消费,如网站活性跟踪、聚合统计系统运营数据(监控数据)、日志收集等大量数据的数据收集场景
Kafka架构与功能
拓扑结构图
当集群吞吐能力不满足需求时,加节点(Broker)
Kafka Topics
Kafka Partition
每个Topic 都有一个或者多个Partitions构成。每个Partition都是有序且不可变的消息队列,先进先出,后进后出。引入Partition机制,保证了Kafka的高吞吐能力
Consumer group A有两个消费者来读取4个Partition中数据。 Consumer group B有四个消费者来读取4个partition中数据。
Kafka Partition偏移量
每条消息在文件中的位置称为offset(偏移量),offset是一个long型数字,它唯一标记一条消息。消费者通过(offset、partition、topic)跟踪记录
Kafka Partition副本
每个partition都既作为leader又作为follower
主从副本同步数据:follower主动的从leader中拉去数据,以提高效率
Kafka Logs
Kafka把Topic中一个Parition大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,减少磁盘占用
Kafka Log Cleanup
日志的清理方式有两种:delete 和 compact
删除的阈值有两种:过期的时间和分区内总日志大小
上图为compact图,只保留最新的消息
Kafka数据可靠性
Kafka所有消息都会被持久化到硬盘中,同时Kafka通过对Topic Partition设置Replication来保障数据可靠
消息传输保障
最多一次(At Most Once) 消息可能丢失。 消息不会重复发送和处理。 最少一次(At Lease Once) 消息不会丢失。 消息可能会重复发送和处理。 仅有一次(Exactly Once)-尚未实现 消息不会丢失。 消息仅被处理一次。
Kafka Cluster Mirroring同步数据
Kafka写流程PUSH
Kafka读流程PULL
Consumer连接指定TopicPartition所在的LeaderBroker,用主动获取方式从Kafka中获取消息
12.ZooKeeper集群分布式协调服务
掌握ZooKeeper概念
掌握ZooKeeper系统架构
掌握ZooKeeper关键特性
ZooKeeper简介
ZooKeeper 分布式服务框架主要是用来解决分布式应用中经常遇到的一些数据管理问题,提供分布式、高可用性的协调服务能力
安全模式下ZooKeeper依赖于Kerberos和LdapServer进行安全认证,非安全模式则不依赖于Kerberos与Ldap。ZooKeeper作为底层组件广泛被上层组件使用并依赖,如Kafka,HDFS,HBase,Storm等
ZooKeeper在产品的位置
系统架构
ZooKeeper集群由一组Server节点组成,这一组Server节点中只存在一个Leader的节点,其他节点都为Follower。 启动时选举出leader。 ZooKeeper使用自定义的原子消息协议,保证了整个系统中的节点数据的一致性。 Leader节点在接收到数据变更请求后,先写磁盘再写内存。
容灾能力
ZooKeeper能够完成选举即能够正常对外提供服务。 ZooKeeper选举时,当某一个实例获得了半数以上的票数时,则变为leader。 对于n个实例的服务,n可能为奇数或偶数。 n为奇数时,假定 ,则成为leader的节点需获得x+1票,容灾能力为x。 n为偶数时,假定 ,则成为leader的节点需要获得x+2票(大于一半),容灾能力为x。
关键特性介绍
最终一致性
无论哪个server,对外展示的均是同一个视图
实时性
保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息
可靠性
一条消息被一个server接收,它将被所有server接受
等待无关性
慢的或者失效的client不会干预快速的client的请求,使得每个client都能有效的等待
原子性
更新只能成功或者失败,没有中间状态
顺序一致性
客户端所发送的更新会按照它们被发送的顺序进行应用
读特性
由ZooKeeper的一致性可知,客户端无论连接哪个server,获取的均是同一个视图。所以,读操作可以在客户端与任意节点间完成
写特性
ACL (访问控制列表)
ACL可以控制访问ZooKeeper的节点,只能应用于特定的znode上,而不能应用于该znode的所有子节点上。设置ACL命令为 setAcl /znodescheme:id:perm。 Scheme为认证方式, ZooKeeper内置了4种方式: world 一个单独的ID,表示任何人都可以访问。 auth 不使用ID,只有认证的用户可以访问 digest 使用username:password生成MD5哈希值作为认证ID。 IP 使用客户端主机IP地址来进行认证。 Id:用来认证的字段,不同的scheme的认证方式不同。 Perm:即permission,通过Acl认证的用户对该节点可拥有的操作权限。
日志增强
Ephemeral node(临时节点)在session过期之后就会被系统删除。在审计日志中添加Ephemeral node被删除的审计日志,以便了解当时Ephemeral node的状态信息
客户端常用命令使用
调用ZooKeeper客户端,执行命令: 创建节点: 列出节点子节点: 创建节点数据: 获取节点数据:删除节点:删除节点及所有子节点:
zkCli.sh –server 172.16.0.1:24002create /nodels /nodeset /node dataget /nodedelete /nodedeleteall /node
与组件的关系
ZooKeeper和Streaming
ZooKeeper和HDFS
ZooKeeper和YARN
ZooKeeper和HBase
13.FusionInsight HD解决方案介绍
FusionInsight 概述
Apache Hadoop - 繁荣的开源生态系统
大数据是华为ICT战略的重要支柱
FusionInsight平台架构
FusionInsight 特性介绍
系统可靠性,数据可靠性
安全性
网络安全可靠 - 双平面组网
可视化集群管理,运维便捷
图形化的健康巡检工具
易开发
FusionInsight SparkSQL
Spark SQL多租户
SparkSQL小文件优化
Apache CarbonData - 融合数仓的数据格式
CarbonData增强
集成Flink分布式实时处理系统
Flink是华为公司在IT领域主推的低时延(ms级时延)、高吞吐、高可靠的分布式实时处理系统。Flink集成到FusionInsight HD中进行销售。 Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。
HBase可视化建模
HBase应用透明的冷字段合并
Hive/HBase细粒度加密
HBase二级索引
CTBase简化HBase多表业务开发
HFS小文件存储与检索引擎
标签存储
标签调度
CPU资源配置周期调整
FusionInsight HD 成功案例
华为大数据
0 条评论
下一页