阿里HBase的数据管道设施实践与演进

摘要:第九届中国数据库技术大会,阿里巴巴技术专家孟庆义对阿里HBase的数据管道设施实践与演进进行了讲解。主要从数据导入场景、 HBase Bulkload功能、HImporter系统、数据导出场景、HExporter系统这些部分进行了讲述。

直播视频请点击
PPT下载请点击
精彩视频整理:

数据导入场景

生意参谋

生意参谋是一种为商家服务,帮助商家进行决策和运营的数据产品。如在淘宝或天猫上开一家店,生意参谋会提供店里每天进入的流量、转化率、客户的画像和同行业进行对比这些数据属于什么位置。商家可以根据流量分析、活动分析和行业分析去进行决策。可以根据平时日志、点击量和访问量,数据库把数据通过实时的流处理写入HBase。有一部分写到离线系统里,定期做一些清洗和计算再写入HBase,然后供业务去查询 HBase。

蚂蚁风控

在蚂蚁上任何一笔交易支付都会调用风控,风控主要是去看这次交易是否属于同一个设备,是否是经常交易的地点,以及交易的店铺信息。它必须在100ms—200ms把风险做完,风控是根据长期的历史信息、近期历史的信息和实时的信息三个方向做综合考量。用户的输入会实时的写入HBase,同时这个实时的信息增量也会导入到离线系统里面,离线系统会定期的对数据进行计算,计算的数据结果会作为历史或近期历史再写回HBase,一个支付可能会调百十次的风控,而且需要在百毫秒内进行返回。

数据导入需要解决的问题

2013年刚刚开始做数据导入的时候面临的更多的是功能需求性的问题,现在需要考虑的是导入的周期性调度、异构数据源多、导入效率高和多集群下的数据一致性的问题。前两个问题更适合由平台化去解决,HBase的数据导入更关注的是导入效率和多集群下的数据的一致性。

什么是Bulkload?Bulkload有什么功能?


Bulkload使用的是一种新的结构LSM Tree进行写入更新,其结构如上图所示。使用Application code 进行数据写入,数据会被写入到MemStore,MemStore在HBase里是一个跳表,可以把它看成一个有序的列表,并不断往里面插入数据。当数据达到一定量时就会启动flush对数据进行编码和压缩,并写成HFile。HFile是由索引块和数据块组成的文件结构,其特点是只读性,生成HFile之后就不可改了。当用户进行读取数据的时候,就会从三个HFile和一个MemStore进行查找进行读取。这个结构的优化就是就把随机的写变成了有序的写。Bulkload就可以把上千上万条数据在毫秒内加入到HBase里。所以Bulkload的优势如下:

  • 高吞吐
  • 不需要WAL
  • 避免small compaction
  • 支持离线构建

Bulkload的导入结构如上图所示,数据来源于数仓,首先根据HBase的分区规则对数据进行分区和排序。然后会生成Partition Data,需要写一个HBase插进去。同步中心就会调动一个作业,作业内部会有很多的tasks,每个task独立的执行把文件读出,写到HDFS上,形成一个HFile文件。当把所有文件写完,同步中心就会调Bulkload指令到HBase,把所有的HFile一次性的load进去。
以前采用的是多集群导入的方法,但是多集群导入有很多缺点如下:

  • 很难保证多个任务同时完成,导致一定时间窗口内数据不一致
  • 调度后的运行环境不一致
  • 网络延迟不一致
  • 失败重试
    集群部署对业务不透明的缺点:
  • 需要配置多个任务
  • 集群迁移需要重新配置任务
    为了保证数据的一致性,采用了逻辑集群导入法。

逻辑集群的流程如上图所示,首先进行分区合并,然后进行双数据流处理,把流分别写到Active和Backup里,当Active和Backup的HFile文件写完后执行Bulkload。因为Bulkload是毫秒级别的,所以能实现一致性。
多任务和逻辑集群的差别比较如下:

  • 多任务模式:需要重复配置,是不透明的,很难保证一致性,分区排序
    需要执行两次,编码压缩两次。
  • 逻辑集群模式:配置一次,迁移无感知,在一致性上达到毫秒级,分区排序是执行一次,但分区数量变多,编码压缩一次。
    随着业务做得越来越大,这种导入就会遇到新的线上问题,如扩展性、资源利用率、研发效率、监控等。

什么是HImporter系统?

HImporter是用于辅助数据同步的中间层,他会把所有HFile的构建,加载逻辑下沉到HImporter层。


HImporter所处的位置如上图所示。

HImporter的优势

  • 分布式水平扩展,同一个作业的不同任务可以调度到HImporter的不同worker节点
  • 提高资源利用率,将压缩等CPU密集操作下降到HImporter
  • 快速迭代,HImporter的运维和迭代与同步中心独立
  • 独立监控,HImporter可按照自己的需求实现监控

HImporter 功能迭代

功能迭代主要包括表属性感知、保证本地化率、支持轻量计算和安全隔离。其中表属性感知就是感知特性,并保证特征不会变,主要包括、混合存储、新压缩编码、表级别副本数;保证本地化率是将Hfile写入到分区所在服务器,保证本地化率和存储特性,对一些rt敏感的业务效果明显;支持轻量计算就是支持MD5,字符串拼接等函数;安全隔离是避免对外暴露HDFS地址、支持Task级别重试。

数据导出场景

菜鸟联盟


菜鸟联盟的场景如上图所示。一个物流详情会传到HBase,HBase会传到数据仓库,数据仓会产生报表,然后去训练路由算法。

淘宝客服


淘宝客服的一个退款应用场景如上图。这是一个逆向链接,把退款、纠纷、退款物流、退款费用等实时的写入到HBase里,HBase会实时的写入queue里,blink流系统会消费queue产生一些数据会返回到HBase,blink输出会支撑智能服务、客户监控等。

增量数据导出需要解决的问题

增量数据导出需要解决的问题主要是离线数据的T+1处理特点、吞吐量 、实时性、主备流量切换等。
早期的方案是会周期性的从HDFS里把所有的日志罗列出来,然后对日志进行排序会产生一个有序的时间流。取work里同步时间最短的作为最终的同步时间。这种方案具有对NN节点造成很大压力、无法应对主备切换、日志热点处理能力低等问题。

HExporter系统


HExporter1.0如上图所示,HExporter1.0优势主要有主备流量切换不影响数据导出,能够识别数据来源,过滤非原始数据;独立的同步时间流,能够保障数据按有序时间分区Dump到数据仓库;复用HBase replication框架,能够降低开发工作量,复用HBase的监控,运维体系。
HExporter1.0 优化主要包括以下五点:

  • 减少拓扑网络中的数据发送,备库避免向Exporter发送重复数据;
  • 远程辅助消化器,空闲的机器帮助消化热点;
  • 避免发送小包,HExporter在接收到小包后,等待一段时间再处理;
  • 同步通道配置隔离,实时消费链路和离线消费链路可以采用不同的配置;
  • 数据发送前压缩。
    HExporter1.0的问题是业务写入流量产生高峰,离线出现同步延迟;HBase升级速度慢。然后我们就有了以下解决思路,离线同步的资源可以和在线资源隔离,利用离线大池子可以削峰填谷;Exporter的worker是无状态的,如果把所有逻辑都放在Exporter,那么升级、扩容会简单快速。然后就产生了HExporter2.0。

HExporter2.0如上图所示

总结

ALiHBase数据通道的导入和导出都是添加了中间层,中间层的核心价值易扩展、可靠性高、迭代快和稳定。因为采用分布式水平扩展更易扩展;采用自主识别主备切换,封装对HBase访问更可靠;采用架构解耦,快速迭代使迭代速度更快;因为无状态,节点对等所以更加稳定。

原文链接

原文地址:http://blog.51cto.com/13679539/2121726

时间: 2024-08-29 13:29:28

阿里HBase的数据管道设施实践与演进的相关文章

数加平台——阿里大数据OS实践

数加是什么 在阿里云的官网打开大数据部分(整个大数据部分统称为数加),其中包括:大数据基础服务部分,MaxCompute.ADS.流计算.大数据开发套件:人工智能部分,机器学习(基础平台是PAI).语音识别.ET等:数据分析展现部分,数据可视化(大屏.BI报表).I+关系网络分析(安全领域用的比较多):数据应用部分,推荐引擎(提供面向终端用户的服务,以大数据中间件存在)等.天池比赛也是基于数加平台,数加数据市场相当于大数据的App Store. 数加是什么?数加=数加平台+数加市场+数加应用.平

大数据查询——HBase读写设计与实践

背景介绍 本项目主要解决 check 和 opinion2 张历史数据表(历史数据是指当业务发生过程中的完整中间流程和结果数据)的在线查询.原实现基于 Oracle 提供存储查询服务,随着数据量的不断增加,在写入和读取过程中面临性能问题,且历史数据仅供业务查询参考,并不影响实际流程,从系统结构上来说,放在业务链条上游比较重.本项目将其置于下游数据处理 Hadoop 分布式平台来实现此需求.下面列一些具体的需求指标: 1.数据量:目前 check 表的累计数据量为 5000w+ 行,11GB:op

阿里HBase高可用8年“抗战”回忆录

2017年开始阿里HBase走向公有云,我们有计划的在逐步将阿里内部的高可用技术提供给外部客户,目前已经上线了同城主备,将作为我们后续高可用能力发展的一个基础平台.本文分四个部分回顾阿里HBase在高可用方面的发展:大集群.MTTF&MTTR.容灾.极致体验,希望能给大家带来一些共鸣和思考. 大集群 一个业务一个集群在初期很简便,但随着业务增多会加重运维负担,更重要的是无法有效利用资源.首先每一个集群都要有Zookeeper.Master.NameNode这三种角色,固定的消耗3台机器.其次有些

阿里云文件存储的高性能架构演进之路

摘要: 10月27日下午,2018中国计算机大会上举办了主题"数据中心计算"的技术论坛,一起探讨解决数据中心所面临的挑战.论坛上,阿里云分布式存储团队高级技术专家田磊磊进行了<阿里云文件存储的高性能架构演进之路>的报告. 10月27日下午,2018中国计算机大会上举办了主题"数据中心计算"的技术论坛,一起探讨解决数据中心所面临的挑战.论坛上,阿里云分布式存储团队高级技术专家田磊磊进行了<阿里云文件存储的高性能架构演进之路>的报告. 专家简介田

MaxCompute读取分析OSS非结构化数据的实践经验总结

摘要: 本文背景 很多行业的信息系统中,例如金融行业的信息系统,相当多的数据交互工作是通过传统的文本文件进行交互的.此外,很多系统的业务日志和系统日志由于各种原因并没有进入ELK之类的日志分析系统,也是以文本文件的形式存在的. 1. 本文背景 很多行业的信息系统中,例如金融行业的信息系统,相当多的数据交互工作是通过传统的文本文件进行交互的.此外,很多系统的业务日志和系统日志由于各种原因并没有进入ELK之类的日志分析系统,也是以文本文件的形式存在的.随着数据量的指数级增长,对超大文本文件的分析越来

阿里经济体大数据平台的建设与思考

本文内容根据演讲视频以及PPT整理而成. 双十一!=11.11 首先从双11说起,双11已经成为阿里巴巴最大的单日促销活动.双11活动可能对于消费者而言只是一天而已,但是对于阿里巴巴和数百万商家而言,却是一个非常长线的工作.站在阿里巴巴的角度来看双11,其实无论是从业务线还是技术线,背后都存在着很多的思考. 从“人.货.场”的角度看待双11.首先,对于“人”而言,双11需要回答什么样的消费者会看什么样的商品,以及每个人看到的商品是什么样子的.“货”则是对于商家而言的,商家需要知道在这次双11中,

CSDN开源夏令营 百度数据可视化实践 ECharts(6) 期中总结

期中总结 (1)首先感谢林峰老师的辛勤指导!! 通过半个多月的培训,林峰老师讲解了ECharts总体框架和其中各个部分:图类.组件.接口.基础库的具有应用方法和应该把握的细节,并通过实际的例子熟悉和掌握各个控件.只有打牢基础才能正正的为下步的工作做好准备,熟练的属性代码的编程技巧,才能做出更好的专题. (2)第一次任务重点总结: 要求:了解ECharts特性中列举的每一项特性,并能找到实例中的例子,并且在实例中操作. 重点问题: 1)ECharts一种支持多少种图表?有多少个组件?列举出中英文名

CSDN开源夏令营 百度数据可视化实践 ECharts(2)

将ECharts引入项目中的几种详细方法讲解 (1)打好基本功 首先感谢林峰老师!给我们的悉心指导.我们之所以学习ECharts和Zrender图表组件,为了就是能够将图表应用到我们的实际情况中 来,进而让图表的战士能给我们一种更加人性化的方式呈现给用户.所有我们必须熟悉ECharts中相关组件.下面的例子都以line为例. (2)将ECharts引入项目共有三种方式 2.1)第一种方式-模块化包引入 模块化包引入模式也可以称为开发模式,是开发时最好的方法,不管是开发echarts还是用echa

CSDN开源夏令营 百度数据可视化实践 ECharts(1)

总体规划 (1)选题: 通过了解林峰老师的专题中国主要城市空气质量实况.中国经济十年时空漫游和中国人口流动大潮,涉及了人口.经济和民生等方面的内容,在这里我选择中国高考,作为我的切入点. 高考,一个永恒的话题,是一场你我都值得经历的一场无硝烟的战争.有人曾说:每个高考的孩子都背负着几代人的希望,每个高考的背后都有众多关注的眼睛.人生能有几回搏?虽然失去了许多,但终究会收获很多. (2)题目 2006-2014高考各省市报名人数及录取人数汇总专题 (3)搜集数据资料 工欲善其事,必先利其器.数据的