运营技术广角
基于Kudu的大数据平台实时业务处理能力提升方案
顾飞杨,孔莹
(中国电信股份有限公司上海分公司,上海 200042)
摘 要:针对目前Hadoop大数据平台实时业务处理能力较差的难点,研究了国际最先进的Kudu列存储作为 HDFS块存储的有效补充的理论,阐述了利用Kudu和Spark提供的主键索引和内存加速,有效解决大数据平台无法支持实时入库、增量更新和SQL关联查询等业务痛点的技术实现方法。实验效果证明了方法对提升大数据平台实时业务处理能力的作用。
关键词:Kudu;大数据;列存储;主键索引;内存加速;实时入库;增量更新;SQL关联查询
1 引言
中国电信股份有限公司上海分公司(简称上海电信)的大数据平台经过几年的建设和升级扩容,数据规模不断增加,业务应用不断扩展,满足了上海电信大数据应用的多种业务需求。随着上海电信业务处理的实时性要求不断提高,大数据平台存在不支持流式数据实时写入、不支持流式数据增量更新、不支持实时数据复杂查询等实时业务应用难点,极大地影响了大数据平台的业务支撑能力。
Kudu存储引擎作为Hadoop平台的增强组件,可以与现有的HDFS组件优势互补,有效解决Hadoop平台实时业务应用难点,满足上海电信业务数据的实时处理要求,大大提升大数据平台实时业务处理能力。
2 实时业务应用难点
上海电信大数据平台采用的核心技术是HDFS分散存储和MapReduce并行计算,可以对传统技术无法处理的大规模数据,进行存储、加工和分析,填补了大规模数据处理的空白[1]。
随着非日志型的业务数据不断汇聚到大数据平台,Hadoop大数据平台面临着以下实时业务应用难点。
•HDFS文件系统支持文件存储、数据块存储等多种存储方式,存储方式灵活,但不支持数据增量存储。
•Hive数据库写入速度快,支持海量数据存储。但数据查询效率较低,不支持秒级查询。
•HBase数据库采用K/V查询模式,查询效率高,支持秒级查询。但不支持复杂SQL操作[2]。
大数据平台急需对流式数据实时处理的相关技术进行研究,提升大数据平台实时业务处理能力。
3 业界解决方案
系统采用RFID,只需要0.1s就可以完成果蔬识别。在果蔬运输过程中,高速公路沿途也设有RFID读取器,不但可以实时监控货物位置,也可以防止货物的遗失、掉包、误送。从果蔬采摘、嵌入RFID模块,到运输、货物跟踪,到检验、进入流通领域,整个运输系统通过查询终端、网络电脑查询一目了然。
3.1 方案1:Phoenix+HBase
Phoenix是构建在HBase上的一个SQL层,能让人们用标准的JDBC API而不是HBase客户端API来创建表、插入数据和对HBase数据进行查询。Phoenix查询引擎会将SQL查询转换为一个或多个HBase scan,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,适合简单的SQL查询操作,可以达到毫秒级响应。
该方案存在以下缺点:Phoenix和HBase组合,开发难度高,业务移植困难;Phoenix多表关联join语句,需要全表遍历,复杂SQL查询效率低;Phoenix采用单节点运行作业,不是分布式运行作业,存在单点负荷不均衡的问题。
3.2 方案2:Spark Streaming + Elasticsearch
现有的诸多矫正正义理论仅侧重于揭示侵权责任质的规定性,但未能对侵权责任的量变现象给出合理解释;相反,各种功能主义理论可以解释侵权法自近代以来的量变方向,但疏忽了侵权责任质的规定性要求。“矫正正义框架内的动态平衡论”兼顾了侵权责任“质”与“量”两方面的规定性,不仅可以为侵权法内在的各种制度提供统一基础,也划清了侵权责任其他责任形态的外在边界。动态平衡论不但可以解释侵权法的演进历史及现实状态,也为侵权法的未来发展预留了解释空间。
该方案存在以下缺点:Spark Streaming和 Elasticsearch组合,开发难度高,业务移植困难;Elasticsearch数据增量更新需要更新索引,容易出现数据不同步;Elasticsearch对于复杂SQL操作(包括多表关联等执行效率不高)。
4 Kudu应用创新
4.1 Kudu应用方案
Kudu是Cloudera开源的新型列式存储系统,专门为了对快速变化的数据进行快速的分析,填补了以往Hadoop存储层的空缺。Kudu的扫描速度几乎和原生HDFS文件系统一样快,同时随机访问速度和HBase数据库几乎一样快[4]。
新时期,我国经济发展已由高速增长阶段向高质量发展阶段转变,供给侧结构的深化改革,人民日益增长的美好生活需要和不平衡不充分的发展之间的主要矛盾的出现,都促使了我国涉农企业发展所面临的经济环境发生改变,企业发展外部环境的改变诱使内部环境随之改变,加剧了涉农企业对公司治理创新优化的需求。国家对农业产业结构的调整,多种经营方式的发展,农业供给侧改革的深化,对涉农发展项目的各种补贴等,诱发了涉农企业的快速发展,也加速了企业对治理结构的优化创新动力。
Kudu有Master server和Tablet server两种类型的组件。Kudu使用单个的Master server节点来管理集群的元数据,并且使用任意数量的Tablet server节点用来存储实际数据。可以部署多个Master server节点来提高容错性。Master server节点负责整个集群的元数据管理和服务协调,它承担着以下功能。
针对大数据平台实时业务应用难点,业界目前主要有Phoenix+HBase和Spark+Elasticsearch两种解决方案[3]。
•作为元数据管理者,Master server节点管理着集群中所有Table和Tablet的schema及一些其他的元数据。
近年来,我们先后在浙江和台湾等地采集到缺齿蓑藓11个地理居群的106份样本,发现不同地理居群在叶形、叶尖和叶片细胞疣、蒴柄长短等有一定变异。为了进一步探讨缺齿蓑藓形态和遗传变异特点,正确鉴定该物种的变异范围,了解形态变异可能的遗传和地理因素,我们对缺齿蓑藓的形态和遗传式样及其与地理因素的关系进行了研究。
•作为集群协调者,Master server节点追踪着所有server节点是否存活,并且当server节点挂掉后协调数据的重新分布。
本文推荐的Kudu存储引擎技术,是一种基于列存储的结构化数据的数据仓库,用户可以建立多个table,每个table都有一个预先定义好的schema数据库表定义。Kudu底层存储采用列存储模式,因此数据是可修改的,更新、插入、删除都是临时先缓冲于内存,随后合并进永久性列式存储中,因此Kudu是可以支持单条记录修改和增量更新。
•作为Tablet 管理者,Master server节点跟踪每个Tablet的位置。
Master server的所有信息都在内存中,因此数据访问速度非常快,每次查询都在毫秒级别。基于Kudu存储引擎技术,大数据平台可以在现有业务应用不需要配合改造的前提下,实现大数据平台实时业务处理能力提升,总体架构如图1所示。
图1 Kudu大数据应用总体架构
•基于Kudu主键索引的SQL查询,SQL查询性能更高。
•Kudu组件作为HDFS存储方式的升级和补充,可以和HDFS文件系统共存,一起部署在数据节点上;Kudu组件提供增量更新、复杂逻辑以及交互式查询等数据处理能力,满足实时业务数据处理需求,大大提升大数据平台业务支撑能力。
•Kudu组件可以和大数据平台现有的MR并行计算、Hive数据库、Spark内存并行计算、Impala交互式查询等应用组件无缝对接,极大拓展了大数据平台的业务应用场景。
基于Kudu的复杂SQL查询测试结果如图4所示,具体如下:
在现代社会中,人们对空间的要求不局限于功能性的需求,还对其审美、情趣等多方面需求逐渐增加。为了能够更好的满足用户的需求,建筑设计企业就必须要对其室内设计进行创新与改进,在室内空间设计中灵活的应用“人性化”设计理念。
Kudu应用方案优点为:一体化原生方案,开发难度低,业务移植方便;Kudu可以保证数据增量更新一致性;Kudu可以实现高效率的复杂SQL操作。
4.2 基于Kudu的流式数据实时入库
大数据平台通常使用HDFS文件系统来存储Kafka流式实时消息系统。其中HDFS文件系统的基本存储单位是数据块,默认大小64 MB,数据入库时需要每个数据块逐个写入。而且HDFS文件系统采用Hadoop的MapReduce批处理计算框架,适合处理海量数据的批量处理数据集。因此Kafka流式数据批量写入大数据平台HDFS数据块时,数据入库周期为分钟以上级别,实时性较差。
本文使用Kudu存储引擎直接对接Kafka实时消息系统。Kudu 是支持实时数据处理的OLAP 数据库,采用分布式列式存储技术,可以支持流式数据逐条写入,因此Kudu数据表能够满足Kafka流式数据的实时写入需求,单条数据入库周期为毫秒级别。
基于Kudu的流式数据入库数据处理流程如图2所示。
图2 基于Kudu的流式数据入库数据处理流程
基于Kudu的流式数据实时入库测试结果见表1。
表1 基于Kudu的流式数据实时入库测试结果
基于Kudu的流式数据入库时间为秒级,可以保证实时业务数据的入库要求。
4.3 基于Kudu的流式数据增量更新
大数据平台通常使用HDFS文件系统和Hive数据库更新大数据平台的存量数据,HDFS文件系统的基本存储单位是数据块,默认大小为64 MB。目前HDFS数据块仅支持数据追加,不支持文件的随机修改,数据更新时必须整个HDFS数据块全部替换,因此无法支持单条记录的修改和增量更新。
Elasticsearch是一个实时的分布式搜索和分析引擎。Elasticsearch作为数据库,执行SQL脚本,包括执行创建临时表的动作。Spark Streaming通过RDD将流式数据写入Elasticsearch。
在目前国内书法教育中,人们秉承一些传统的书法教育方法,如米字格、描红本、临摹仿写等,来推进书法教育的不断进步,传承书法文化。在大量的书法作品临摹中,无论是软笔还是硬笔,都是传播中国文化的一个传媒广角。书法学习者从书法的练习或者欣赏中,感受到跃动其间的书法之魂。并且还能够领悟到书法家的书法精神,更能够丰富自己的审美世界,获得生动别致的审美触动。大众的书法审美艺术情趣随着年龄而不断增长的情况下,自然会开始让自己的审美眼光越来越好,获得了更深厚的书法学养。
在农民科技教育中心管理工作中,有效的资金投入是必不可少的,因此在管理过程中,有关部门应该加大资金的投入力度,一方面保证农民科技教育中心的教育经费充足,能够不断探索新的教育课程;另一方面可以不断健全和完善农民科技教育中心的教育培训体系,完善基础教育设施建设,改善办学条件,加大田间学校和农民教育实训基地的建设力度,帮助农民能够通过教育培训,提升自己的农业生产和管理水平。
Kudu技术架构如图3所示。
Kudu增量更新的方式是:一个Table的数据被分割成多个 Tablet,由它们对应的 Tablet server 提供数据读写服务。Tablet 由 RowSet 组成,一个 RowSet 包含两部分数据:基础数据通常以 DiskRowSet 形式保存在磁盘上;而变更数据先以 MemRowSet 的形式暂存在内存中,后续再异步地刷写到磁盘上。
基于Kudu的流式数据增量更新技术是真正实现“单条更新”和“实时更新”的技术方案,不是“批量更新”和“定时更新”,是真正的“实时增量更新”。
基于Kudu的流式数据增量更新测试结果见表2。
表2 基于Kudu的流式数据增量更新测试结果
基于Kudu的流式数据增量更新时间均为秒级,可以保证增量更新业务的实时性。
4.4 基于Kudu的实时数据复杂查询
大数据平台通常使用Hive数据库进行复杂SQL查询。Hive是建立在 Hadoop 上的数据仓库, Hive 数据库采用类SQL 的查询方式,将SQL 查询提交到在Hadoop大数据平台上作为Job作业执行。由于Hive数据库构建在基于静态批处理的Hadoop的MapReduce 之上,Hadoop 通常都有较高的时延并且在作业提交和调度的时候需要大量的开销,因此Hive数据库并不能够在大规模数据集上实现低时延、快速的查询。Hive数据库的复杂SQL关联查询响应时间为分钟至小时级别,查询的实时性较低。
4.着色。又叫点染、点彩。将所需的颜色放在不同的器皿内,按照水:酒=3:7的比例将颜色调好,传统的颜色分黄、粉、绿、紫、青5种原色,原色可再配兑出30多种颜色。染色前,先在废纸上试色。点染用的工具是毛笔,一支笔染一个色,笔之间不能互用。上色的顺序是由浅到深,先暖后冷。
图3 Kudu技术架构
本文通过Kudu存储引擎以及Spark内存计算框架,实现高效率的复杂SQL查询。Spark 是专为大规模数据处理而设计的快速通用的计算引擎,相比MapReduce计算引擎,Spark计算引擎采用内存作为缓存,能够更高效地完成分布式计算任务。Kudu作为底层存储,可以支持MPP并行查询而且可以支持主键索引功能,通过内存缓存和索引功能的加速,因此Kudu可以大大提升SQL关联查询的实时性。
Kudu存储引擎和 Spark内存计算框架集成,对外提供基于 SQL 的实时查询分析服务,主要有以下技术优势:
•实现业务数据的实时写入和实时更新,对分析应用来说是即时可见的,无时延;
•Spark对数据的过滤条件可以下推到 Kudu 这一存储层,能提高数据读取/扫描的性能;
总体架构说明如下。
•应用程序和ETL工具,可以根据需求调用不同的组件,完成底层数据的访问和更新。
•复杂SQL语句操作<将近100行SQL语句操作>;
•平均执行时间为1.79 s。
原题:The 2011 MW9.0Tohoku earthquake:Comparison of GPS and strong-motion data
图4 基于Kudu的复杂SQL查询测试结果
基于Kudu的复杂SQL查询时间均为秒级,可以保证复杂查询业务的实时性。
(四)激发想象能力,培养科学素养。初中教师在开展化学教学的过程中,也可以通过激发学生的想象力,来达到培养学生科学素养的目的,进一步的推动学生的思维发展,将化学学科的内涵、价值等一一的展现出来。
判别人类社会文明程度的重要标志之一,就是是否在性别、年龄、种族、地域等方面存在偏见和歧视。公众的态度和反应固然是重要的,而媒体更不应忘记自己应负的责任和道德担当。无论是正规媒体还是自媒体,也无论是传统媒体还是网络平台,都不要为了流量和阅读量,有意臆造一些与实际不符且有歧视倾向的热点和概念,而读者和公众也应该多一些理性、客观的判断和认知。
再者,农村小学的语文师资条件也是有限的,大多孩子小学毕业后,连汉语拼音都不过关,更别说其他方面的语文能力了。于是乎,这样的语文学习能力,便直接影响了对初中语文的学习。
4.5 Kudu应用效果
Kudu存储引擎满足流式数据实时入库、流式数据增量更新、实时数据复杂查询的实时业务应用需求,可以提升大数据平台实时业务处理能力。
Kudu应用效果总结见表3。
根据上述Kudu应用效果,本项目技术先进,各项功能指标、性能指标均业界领先。
5 结束语
本文针对目前Hadoop大数据平台实时业务处理能力较差的难点,在现有大数据平台业务应用不进行改造的前提下,通过引入Kudu的列存储模式,作为HDFS块存储的有效补充,同时利用Spark具备内存缓存的SQL实时查询,逐步替代传统的Hive批处理的SQL查询,从而满足运营商级别的实时业务处理的迫切需求,流式数据处理时间从原来的分钟级别缩短到秒级别,同时支持增量数据更新,并且提高了复杂数据查询的效率,大大提升了Hadoop大数据平台实时业务处理能力。
我国要成功跨越中等收入陷阱,进一步优化经济增长方式是最为重要的内容之一,而供给侧结构性改革是我国在经济新常态大背景下所提出的推进我国经济增长方式转型升级的重要策略。要实现我国更好更快的效率型增长并成功跨越中等收入陷阱,需要我国深化供给侧结构性改革,落实相关调结构,去杠杆,稳增长等手段来将传统行业的过剩产能转移到新兴行业中去,推动我国人工智能、自主芯片研发等产能不足的高科技行业的发展,将我国经济增长动力从资源消耗、环境破坏转为技术创新、劳动力素质提高等方面。同时进一步深化国有企业体制改革,推动利率的市场化发展等方式来进一步深化我国的供给侧结构性改革[3]。
表3 Kudu应用效果总结
参考文献:
[1] 汤劲松, 蔡韵, 王晓亮, 等. 电信运营商大数据基础能力建设与实践[J]. 电信科学, 2018, 34(1): 158-165.
TANG J S, CAI Y, WANG X L, et al. Construction and practice of big data fundamental ability for telecom operators[J]. Telecommunications Science, 2018, 34(1): 158-165.
[2] 王瑞通, 李炜春. 大数据基础存储系统技术研究[J]. 计算机技术与发展, 2017(8): 66-72.
WANG R T, LI W C. Research of big data storage system technology[J]. The Computer Technology and Development, 2017(8): 66-72.
[3] 陈涛, 鲁萌, 陈彦名. 运营商大数据技术应用研究[J]. 电信科学, 2017, 33(1): 130-134.
CHEN T, LU M, CHEN Y M. Research on operators’ big data technologies and applications[J]. Telecommunications Science, 2017, 33(1): 130-134.
[4] 鲍远松. 基于Kudu的结构化数据存储分析方案设计[J]. 信息技术与标准化, 2017(10): 60-63.
BAO Y S. Structured data storage analysis scheme design based on Kudu [J]. Information Technology and Standardization, 2017(10): 60-63.
Scheme of enhancing real-time business processing capabilities based on Kudu for the big data platform
GU Feiyang, KONG Ying
Shanghai Branch of China Telecom Group Co., Ltd., Shanghai 200042, China
Abstract: Aiming at the difficulty of real-time business processing capability of Hadoop big data platform, the theory of the most advanced Kudu column storage was studied as an effective complement of HDFS block storage, and the use of primary key index and memory acceleration provided by Kudu and Spark was illustrated to effectively solve the big data platform cannot support the technical implementation methods of business pain points such as real-time warehousing, incremental update and SQL-related query. The experimental results prove the effect of the method on improving the real-time business processing capability of the big data platform.
Key words: Kudu, big data, column storage, primary key index, memory acceleration, real-time access, incremental update, SQL join query
[作者简介]
顾飞杨(1978− ),男,中国电信股份有限公司上海分公司企业信息化部数据中心副主任、工程师,主要研究方向为大数据技术以及应用等。
孔莹(1982− ),女,中国电信股份有限公司上海分公司企业信息化部数据中心副主任、工程师,主要研究方向为异地跨机房的大数据平台集群、数据快速迁移等。
中图分类号:TP311.13
文献标识码:A
doi:10.11959/j.issn.1000−0801.2019158
收稿日期:2018−10−20;
修回日期:2019−05−26
标签:Kudu论文; 大数据论文; 列存储论文; 主键索引论文; 内存加速论文; 实时入库论文; 增量更新论文; SQL关联查询论文; 中国电信股份有限公司上海分公司论文;