三:基于Storm的实时处理大数据的平台架构设计
一:元数据管理器
==>元数据管理器是系统平台的“大脑”,在任务调度中有着重要的作用
【1】什么是元数据?
--->中介数据,用于描述数据属性的数据。
--->具体类型:描述数据结构,数据的具体位置,数据间的依赖关系,数据的处理过程,数据的快照信息等。
【2】为何要引入元数据
--->实际案例:HDFS中的NameNode节点,Hive的MySql元数据表,MooseFs的Master节点,GFS(Google分布式文件系统)中的Master节点等。
--->在大数据处理架构中引入元数据结构,描述数据流名称,类型,字段结构,数据流转过程等,便于各个数据处理系统间协调,使数据业务调度更加的精准,便捷。
【3】实时处理平台任务调度
---->类SQL查询插入语句:INSERT MySQL INTO domain_table SELECT * FROEM domain_streaming AS d WHERE LENGTH(d.domain) <= 10 AND d.value > 2000 AND d.seller LIKE %tony%;
---->任务调度:实时处理内部拓扑数据流调度(节点模块化),不同组件之间的数据流调度,不同子系统之间的任务调度。
---->推荐方案:MySQL 或者 Zookeeper作为元数据的存储组件。
二:多节点统一配置管理
==>配置管理是一个系统的重要辅助功能,多节点的配置管理将比单节点的配置管理更为复杂,但其重要性也更加明显。
【1】多节点配置的相关问题
--->节点太多,需要配置的配置文件太多,太繁琐。
--->配置需要修改时,很难保证每个节点的配置统一,维护成本高
--->无法针对性的对功能节点进行配置,导致配置文件过于臃肿
--->配置文件太分散,动态更新成本过高。
【2】几种可行的分布式配置解决方案
--->依赖于Storm主类本身的Config对象进行传递
--->使用MySQL进行配置文件的同意存储。
--->以Puppet为核心的统一配置管理系统。
--->基于ZooKeeper的统一配置管理系统。
【3】基于ZooKeeper的统一配置管理解决方案
三:数据处理系统监控
==>一个完善的系统监控平台将大大降低数据处理平台的后期维护成本,也将是后期集群扩展的重要支撑条件。
【1】系统监控的重要性
--->数据平台作为底层数据加工处理的基础平台,任何事故(包括服务以及系统的故障)对于上层应用的影响很大,而数据平台的监控系统是故障快速定位,快速恢复的基本保障。
--->对于规模较小的数据处理平台,规划监控系统对于整个平台的扩展是有预见性的。
【2】系统监控的几大指标
--->系统层面:CPU,内存,磁盘的利用率,I/O负载,网络流量
--->服务层:Storm的两个基本服务(Nimbus和Supervisor),MQ,ZooKeeper,MySQL以及其他相关组件服务
--->应用层:具体的拓扑,拓扑对应的状态,具体工作Worker的状态
【3】系统监控的初步解决方案
---->系统层解决方案:分布式监控组件Ganglia或者Puppet+Zabbix结构
---->服务层解决方案:Puppet+服务探测脚本,ZooKeeper+服务探测脚本
---->应用层解决方案:使用ThriftAPI编写Thrift Client,请求Nimbus内置的Thrift Server,获取相关数据(Storm集群以及Topology数据)
四:数据总线
==>让数据流转于数据总线中,方便各个数据处理模块对数据的接入以及吐出,数据总线的设计将使数据流转更加的便捷快速
【1】数据总线的概念
--->总线:计算机各个功能部件之间传递信息的公共通信干线
--->数据平台中的数据总线概念:区别于计算机学科中数据总线的定义,在于强调各个数据处理组件,子系统能够进数据的传递。
【2】为何要引入数据总线
--->数据执行跨平台,跨语言,跨空间的处理(解藕,数据格式约定好就ok)
--->数据安全隔离,有效隔离不同组件,系统之间的直接操作
--->冗余数据保护,避免数据在某个组件,系统中造成积压
【3】基于MQ的数据总线设计
五:基于Storm的基础平台架构
==>我们将把前面所有的相关平台组件进行集成,组成围绕Storm的一个实时数据处理的基础平台
【1】基础架构图详解
【2】Storm平台的发展方向
--->提供更加灵活的分组策略,应用更加多变复杂的业务需求
--->大数据平台统一融合趋势,兼容更多的分布式相关组件的数据接口(Kafka,Hbse,Hive,Redis等)
--->集群资源的统一调度管理,剥离自身资源调度功能,交由诸如Yarn,Mesos专门的组件统一调度(协调各个子系统的资源)
【3】大数据平台思维的延伸
--->数据源收集:互联网数据金矿的挖掘
--->大数据平台一体化融合思维:随着数据的急剧上升,大数据处理需求的多样化,数据在不同平台流通的需求迫切,整合不同大数据相关组件架构,进行一体化融合是一个大趋势。
--->平台即服务思维:Docker技术的出现,让大数据平台的构建变得更简单,平台节点大规模快速安装,资源得到更好得隔离,数据平台服务化