阿里云HBase X-Pack数据存储检索分析平台

展开查看详情

1.阿里云HBase X-Pack数据存储检索分析平台 阿里云数据库 明惠

2.目录 一、平台及架构 二、分布式存储和检索层 三、分布式计算引擎 四、典型案例

3.平台及架构

4.大规模数据处理的需求 安全风控 个性化推荐 统计分析 时空时序 社交Feeds  监控数据  用户画像库  用户行为分析  维表和结果表  轨迹、设备数据  海量帖子、文章  爬虫抓取信息  用户画像  离线分析  地理信息  聊天、评论  反欺诈系统  推荐引擎  海量实时数据存储  区域分布统计  海量实时数据处理  订单数据  海量实时数据处理  区域查询 新零售 游戏 金融 社交 电商 新制造 新闻

5.云HBase X-Pack迭代与挑战 集中式数据库 分布式数据库 Hadoop时代 开源大数据体系

6.云HBase X-Pack平台能力 基于 Apache HBase、Phoenix、Spark 深度扩展,融合 Solr 等技术,支持海量 数据的一站式存储、检索与分析,被广泛应用于风控、推荐、检索、画像、 社交、物联网、离线数仓等场景,助力企业数据智能化

7.云HBase X-Pack架构 数据流入 管控系统 Spark 元数据 BDS HiveMeta 分布式 数据通道 SQL Streaming MlLib RDD 计算 作业 Kafka &工作流 SQL Phoenix(SearchIndex) 交互式 列存 分布式 查询 IOT 宽表 检索 Parquet 存储 (实时&列存) HBase Solr 集群资源 …… 管理 HDFS 、OSS

8.云HBase X-Pack技术视图 SSH(Spark + Solr + HBase)可以解决绝大部分大数据问题 物联网 风控 推荐 日志 表单 数据回流 SparkStreaming Phoenix(Search Index) BDS一键归档 Spark分析集群 集群 实时写入 HBase + Solr 行转列 Parquet 实时计算 实时存取/在线检索 复杂分析

9.分布式存储和检索层

10.ApsaraDB Filesystem ApsaraDB FileSystem 云存储 云盘HDFS SSD HDFS 高效云盘 OSS 本地盘HDFS 阿里云HDFS

11. ApsaraDB Filesystem On OSS HDFS 解决的问题 NameNode 元数据操作 • OSS并非文件系统无文件元数据管理 OSS - 元数据放NameNode 毫秒级操作 保证原子性 HBase DFSOutputStream Hot File Apsara FileSystem DFSInputStream Object Object • OSS rename 深度拷贝效率低 A B - 逻辑rename 在NameNode端完成 毫秒级 Cold File Object reference oss://ObjectC …… • Hadoop on OSS 社区版本写入效率低 C - 自研HOFS(HBaseOssFileSystem),吞吐最高提升1倍

12.ApsaraDB Filesystem On OSS 架设在OSS之上HBase的单行写入性能对比 240,000 测试配置 224,000 208,000 HDFS 6台8核32G DataNode 192,000 176,000 HBase 1台8核32G RegionServer 160,000 144,000 211393.4 每台ECS挂载4块300G高效云盘 193116.68 128,000 161810.55 154163.57 112,000 valueSize=100B 96,000 threads=120 80,000 TPS TPS SKIP WAL 云HBase 社区 测试命令参考:hbase pe --nomapred --valueSize=100 --rows=1000000 --table=test --presplit=64 randomWrite 120

13.HBase kv层 - OnOSS-自动转存 车载数据上传/实时查询 历史数据查询 • 使用方式比较简单: • create 'test', {NAME => 'info'}, CONFIGURATION => clusterA {‘HFILE_STORAGE_POLICY’=>’COLD’} 自动同步 Hot Table Cold Table • 自动降冷 – Major Compaction • 存储成本 0.6 => 0.2 66% off 云盘

14.HBase备份恢复 源HBase集群 源HBase集群 目标存储 全量备份 HFile HFile HFile Region Copy OSS 增量备份 Log Tracker Other Storage HLog HLog HLog Log Copy 云HBase的企业级备份 为什么备份  源集群无影响  误操作  支持100TB+的集群备份  软件问题  RPO < 10分钟  磁盘设备问题  RTO < 1 天(取决于规模)  ……  单表备份恢复  自动定期备份

15. PhoenixSQL SearchIndex 存储与检索融合 create search index on foo(col1{analyzer=standard}); select * from foo where col0 = ‘hello’ and search_query=‘col1:world’; Phoenix CRUD Indexer • 支持完整的SQL语法 MultiGet(col0 = ‘hello’ ) contains(col1, ‘world’) CRUD collection rebuild index • 支持JDBC访问, HBase Search Service • 内核对比开源性能最高提升10倍 Search Manager Solr Cloud region batches docs • 索引 Search Meta Inverted Index • 二级索引 hlog hlog hlog Batch Index Builder DocValues • 首发特性 - SearchIndex replica RPC ReplicationConsumer docs Full-text ReplicationSource parser solr client FST/BKD-Tree backpressure backpressure ZooKeeper HDFS

16.分布式计算引擎

17.X-Pack Spark 提供能力 • 支持阿里云所有的消息中间件 • Kafka&LogHub&DataHub 等 • 支持阿里云在线数据库 • NoSQL:HBase&Phoenix&MongoDB&Redis • 关系型数据库:POLARDB&RDS&DRDS • 对象存储OSS • 分析型数据库:ADS • 支持HBase自动行转列,分析性能提升20倍 • SparkOnOSS性能优化,缓存预读Meta Rename性能提升2倍

18.闭环 - SparkOnX OSS 链接所有的数据库及消息中间件 POLARDB RDS Redis 开源Kafka HBase 云Kafka X-Pack Phoenix4.x Spark LogHub Phoenix5.0 DataHub 基本优化: schema映射 ADS4PG 算子下推 消息 分区裁剪 列裁剪 ODPS BulkGet 优先走索引 TableStore 存储

19. SparkOnHBase Spark on HBase/Phoenix Sql 背景 • Spark直接读取HBase/Phoenix数据用于数据 的查询、ETL(归档离线计算)以及数据关 联。 Spark Parser 解决问题 • Sql 经过Spark解析、优化通过Spark DataSource API DataSource API对接HBase的Get/Scan/put API实现对HBase数据的写入、读取。 GetPartition Required PrunedFilter Columns Schema • 利用分区裁剪、列裁剪、filter下推加速查询 Mapping 分区裁剪 列裁剪 Filter下推 • 根据filter下推判断是否直接对接HBase get api 提高Rowkey filter 的性能 filter下推 走索引 数据插入 根据Filter 根据传参判断是否直读 • 根据输入参数直接读取hbase Snapshot PhoenixInputFormat 建表 判断走Get、Scan Snapshot Phoenix 二级索引 put/create 后续计划 API Get API Scan API newAPIHadoopRDD TableSnapshot • Spark集成BulkLoad。 HBase Multi get Range Scan InPutFormat • StructuredStreaming 对接Phoenix、HBase region Snapshot

20.一体化 - 一键归档 离线在线融合 —— 打造数据闭环 数据工作台 控制流 数据流 start/stop config 定时调度 HBase 列存 BDS /tmp/20190606/00/15/ Spark引擎 数据 /tmp/20190606/00/30/ hlog hlog 同步 …… Driver 归档 数仓 hlog 增量归档 服务 /tmp/20190606/23/45/ /tmp/20190607/00/00/ Executor0 /data/20190606 分析 region Executor1 全量归档 …. hfile BulkLoad数据回流 ExecutorX

21.数据工作台 - 作业管理 降低客户使用spark的门槛,构建离线运行平台

22.数据工作台 – 一键归档 降低客户使用spark的门槛,构建离线运行平台

23.数据工作台 - 交互式 降低客户使用spark的门槛,构建离线运行平台

24.Next接下来工作 - 计算降低成本 ECS ECS ECS ECS 集群版(已实现) NameNode DataNode DataNode DataNode 长作业(Streaming) ResourceManager NodeManager NodeManager NodeManager 不需要弹性 Executor Driver Executor ElasticNode(计划) ECS ECS ECS ECS ECS 按照固定规则伸缩 NameNode DataNode DataNode NodeManager NodeManager 波峰波谷比较明确 ResourceManager NodeManager NodeManager Executor Executor ECS拉起速度:分钟级 Executor Driver AliYun ServerLess Kubernetes 独立数据存储 Serverless(计划) submit launch 独立Meta 按需运行作业 launch launch 完全弹性 SparkSubmit ECI ECI ECI + Parquet Driver ECI拉起速度:秒级 Executor Dynamic Executor Allocation OSS / AliYun HDFS

25.典型场景

26.典型场景 — 接口选择 接口 适用的数据 HBase KV 无结构化数据、宽表查询、KV查询、稀疏列 结构化数据、 Phoenix SQL 二级索引、SearchIndex Spark 流ETL、构建离线数仓、机器学习、复杂复杂计算 Solr(建议使用SearchIndex) 表单&订单查询 - 模糊查询 & 分词 等

27.典型场景 — 离线数仓 数据应用层 PolarDB、RDS、ADB 、HBase、Mongo、Redis、Spark 数据业务化 操作数据层 Spark离线数仓(列存 Parquet) Spark 监控 Streaming 明细宽表层-面向业务过程建模 公共汇总宽表层-面向分析主题建模 消息 准实时数据 行为 中间件 事物型事实宽表 会员 买家 卖家 商品 业务数据化 点击 周期性快照事实宽表 Spark 游戏 地区 订单 全站 订单 累计快照事实宽表 数据库 离线数据 广告 公共维表 • 操作数据层:最原始的数据,在消息中间件类似kafka、LogHUB,或者在在线数据库比如PolarDB、RDS、Mongo、HBase等。 • 明细宽表层:使用Spark批量ETL或者Spark Streaming后的表构建明细宽表 • 公共汇总宽表层:在Spark中按照一定的业务主题做分类和建模,比如按天/月报表、做模型训练等 • 公共维表层:静态的维表 • 数据应用层:离线数仓处理好的高度汇总的数据存储在在线库中对外提供查询服务

28.典型场景 — 风控

29.典型场景 — 推荐

为了让众多HBase相关从业人员及爱好者有一个自由交流HBase相关技术的社区,阿里巴巴、小米、华为、网易、京东、滴滴、知乎等公司的HBase技术研究人员共同发起了组建中国HBase技术社区。
关注他