基于Hadoop的产品大数据分布式存储优化
人工智能技术与咨询
点击蓝字 · 关注我们
来源:《计算机科学与应用 》 ,作者王耐东等
关键词: 产品大数据;Hadoop平台;数据存储优化;数据检索
摘要:
摘要: 研究产品相关大数据资源组织存储与检索查询技术,提出在Hadoop平台基础上对产品大数据资源进行分块存储。基于MapReduce并行架构模型,提出多副本一致性Hash数据存储算法,算法充分考虑了数据的相关性和时空属性,并优化了Hadoop平台的数据划分策略和数据块规格调整。通过对数据的优化存储布局,采用多源并行连接检索方法和多通道数据融合特征提取技术实现产品大数据信息检索,提高了数据资源管理效率。实验表明和标准Hadoop方案比较,多源并行连接数据检索的执行时间为其31.9%。
1. 引言
计算机的发展和网络通信技术日趋成熟,数据规模的增长在给人们带来便利生活的同时也让从大量数据中汲取有用信息变得困难,如何从中检索到有用数据是目前需要面对的重要问题 [1] [2] [3]。其中有产品相关的数据资源包含生产车间监测视频图像及产品相关数据及文档、物料跟踪数据、加工数据、生产流通数据等,其存在着数据资源规模大,种类多,来源不同且分散分布的特点 [4] [5] [6]。传统的分布式数据库受数据库存储能力限制,存在着架构存储能力有限,对数据的管理与发布支持相对较弱,管理效率低的问题 [7] [8] [9]。
目前,针对传统分布式数据库存在的问题,庞书杰 [10] 提出了一种基于Hash的关联规则并行优化算法(HP-AR),通过对数据库统计频繁项集部分的并行处理结合辅助Hash表简化挖掘过程满足了面对大规模数据集时挖掘隐藏关联规则的需求。潘俊辉等学者 [11] 针对基本算法Apriori的改进,提出了一种基于压缩矩阵的优化算法,该算法使用MapReduce计算模型对数据库进行分块,之后对数据库的关联规则的挖掘结果进行合并,得出频繁项集。Aisha Siddiqa等学者 [12] 为了评估不同存储架构的性能,使用Brewer的CAP定理比较和分析了现有方法,提出了一种定义明确的大数据存储技术分类法。
本文针对目前存在的数据管理效率低、检索速度慢等问题基于Hadoop平台,结合分布式、分层结构的存储优化和并行处理等技术,提出了一种多副本一致性Hash数据存储算法,将数据集中的数据按照相关性以及时空属性进行分块处理,提高了数据处理的效率。同时在Hadoop MapReduce并行框架的基础上,设计了一种多源并行连接数据检索算法,实验结果表明,同传统Hadoop方案相比,多源并行连接数据检索算法的运行速度明显加快。
2. 产品大数据存储优化研究
2.1. 数据存储及数据分布策略
基于数据相关性的多副本一致性Hash数据存储算法(Multi-copy Consistency Hash Algorithm Based on Data Correlation, CMCHA),进行Hadoop的数据布局优化,优化技术路线:尽可能集中存储相关联的数据,数据检索和分析时在映射阶段完成主要工作,使由映射端到约减端数据通信负载消耗降低,系统整体数据检索和分析性能得到提高。每种跟踪过程数据的类型和格式不同,可将数据的具体采集位置和时间作为数据检索和分析时的关键字。
通常Hadoop平台将数据存储为3个副本,一份在本地,一份在同机架内不同节点上,一份在不同机架的某一节点上。为减少整体数据传输带宽消耗和数据读取时间延时,HDFS让读取应用程序读取距离它最近的副本数据。
存储算法考虑如下3方面的相关性:数据采集地点相关性、数据采集时间相关性和自定义数据相关性。利用一致性Hash算法,按照采集地点编号对数据副本1进行Hash映射;按照采集时间戳对数据副本2进行Hash映射;相关系数作为跟踪过程数据的一个重要属性,按照自定义相关系数对数据副本3进行Hash映射,实现不同的数据查询和数据分析需求。根据应用系统需要自定义数据相关性,给相关系数赋值,算法设计过程中构建配置流程如图1所示的Hash环。
Figure 1. CMCHA flow
图1. CMCHA算法流程
步骤1:通过配置文件预定义跟踪过程数据的相关系数以及冗余的副本数量,定义冗余副本数量为3;
步骤2:计算集群中每个数据节点的Hash值,配置到0~232的Hash环区间上;
步骤3:基于跟踪过程数据的时间及空间属性和相关系数计算数据的Hash值。根据数据来源位置ID,在云平台下对第1份副本数据①,计算Hash值1,映射到Hash环上;对第2份数据②,根据跟踪过程数据的采集时间戳,计算Hash值2,并映射到Hash环上。对第3份数据③,根据数据的相关系数计算其Hash值3,并映射到Hash环上。可配置大于3的副本数量,交替按照这3种方式计算其Hash值i,并依次映射到Hash环上,满足更高的数据存储可靠性;
步骤4:确定数据的存储位置,根据数据Hash值和数据节点Hash值在CMCHA算法配置流程图中按顺时针方向将数据映射到距离其最近的节点(如将数据①映射到节点A上);
步骤5:如果节点空间不足或在映射过程出现异常,则跳过该节点寻找下一个存放节点。
2.2. 数据存储优化研究
按照所属大文件,所有分块数据存储为一个文件,分块数据基于Hadoop分布式存储调度策略,被分散存放在不同的分布式存储节点上,每个分块数据设置相应的存储副本率,为便于数据检索该存储策略另外定义和维护分块数据的索引键名。
每个大文件包含的每个分块数据通过< key, value >记录形式存储到HDFS中,记为< Blk-ID, Data >,数据类型为< int, byte[] >,Blk-ID表示数据分块顺序号,Data表示数据分块的二进制数据,通过给定的Blk-ID可得到对应数据分块的二进制字节数据。大文件数据分块存储方法如图2。
HDFS的设计目标是存储大文件,其数据块规格默认为64 MB,远大于512B的物理磁盘的块大小。HDFS文件访问时间主要包括系统寻址时间和数据传输时间,文件传输效率 ηeffectηeffect 计算公式如下:
Figure 2. Block storage process of large file
图2. 大文件分块存储流程
其中, tttt 表示数据传输时间, tt=Sblockvtt=Sblockv; tsts 表示系统寻址时间; SblockSblock 表示数据块规格; vv 表示数据传输速度。
从(1)可看出 ηeffectηeffect 小于1。通常在数据分布和索引方法确定情况下, tsts 和 vv 是确定的值,要提高 ηeffectηeffect 应增加 SblockSblock。在HDFS中,通过dfs.block.size参数设置数据块 SblockSblock 的规格。如果规格设置过大会降低系统负载均衡性,在调整数据块的规格时应综合考虑进入系统的数据规模、数据传输率和负载均衡性。
3. 数据多源并行连接检索
产品数据跟踪管理系统对在线监测的多个监测点以及相关参数进行综合检索,查询条件是监测位置ID、采样时间或位置和时间联合条件等。检索内容包括位置信息(数据采集点设备名称、设备运行时间、采集位置等)、环境信息(生产车间的温度、湿度、气压等)、生产数据(捕捞时间、捕捞批次、数量等)等多源数据,需要将不同来源的数据进行数据连接。如在产品加工过程质量控制参数的综合检索过程中需要连接3个数据文件:1) 加工过程数据文件(表1),其中采样批次即为产品批次码;2) 质量控制参数检测数据文件(表2);3) 检测环境文件(表3),其中检测位置编码代表“车间–工段–班组–工位”。按时间进行的综合查询生成在2020年3月14日9:00~9:20的综合检测结果数据,形成质量检测数据列表,包括位置信息和环境信息。此过程需要将3个数据文件按照查询条件进行连接,形成满足综合查询要求的查询结果数据列表,如表4。
位置ID |
采集时间 |
采样批次 |
DL082 |
2020-03-14 9:08 |
202003140103100 |
DL083 |
2020-03-14 9:18 |
202003140103300 |
DL081 |
2020-03-14 9:10 |
202003140103200 |
Table 1. Processing data file
表1. 加工过程数据文件
位置 |
采集时间 |
采样批次 |
采样信息 |
DL083 |
2020-03-14 9:10 |
202003140103200 |
31.9/7.58/50.2 |
DL081 |
2020-03-14 9:00 |
202003140103300 |
32.5/7.55/50.5 |
DL082 |
2020-03-14 9:08 |
202003140103100 |
32.2/7.57/50.4 |
DL082 |
2020-03-17 9:00 |
202003140103100 |
11.7/10.1/62.2 |
Table 2. Quality inspection data file
表2. 质量参数检测数据文件
位置ID |
检测位置 |
采集时间 |
温度℃ |
湿度 |
DL081 |
ZZ01-I-02-B |
2017-03-14 8:00 |
39 |
65 |
DL082 |
ZZ01-I-02-A1 |
2017-03-14 8:10 |
38 |
63 |
DL083 |
ZZ02-II-01-A1 |
2017-03-14 8:11 |
38 |
59 |
Table 3. Detection position data file
表3. 检测环境数据文件
位置ID |
检测位置 |
采集时间 |
温度/℃ |
湿度 |
采样批次 |
采样信息 |
DL081 |
ZZ01-A-026-B |
2017-03-14 9:00 |
39 |
65 |
201703140103300 |
32.5/7.55/50.5 |
DL082 |
ZZ01-A-026-A1 |
2017-03-14 9:08 |
38 |
63 |
201703140103100 |
32.2/7.57/50.4 |
DL083 |
ZZ02-B-017-A1 |
2017-03-14 9:10 |
38 |
59 |
201703140103200 |
31.9/7.58/50.2 |
Table 4. Results of date join
表4. 数据连接结果
按照数据检索需求和数据格式描述,设计并行过滤连接检索算法,算法在映射端执行,设计的主要依据是为节省网络流量传输,提高检索效率,过滤和连接在映射过程进行,避免要执行的检索操作在约减过程进行。为使数据连接时所需数据聚集到同一个数据节点,采用基于数据相关性的多副本一致性Hash算法进行数据分布。算法流程:1) 根据检索条件过滤掉不符合检索条件的数据;2) 根据连接检索需求,确定数据连接的组键(group key):检测位置ID、时间戳或相关系数;3) 用数据文件名作为标签,标记各数据源的各个记录;4) 将相同属性值的记录根据连接组键划分到一组,按照检索条件进行数据连接。
数据进行优化存储分布之后进入数据连接映射阶段,此阶段在本地节点进行相应任务操作,结果传输到HDFS,数据的优化分布及映射端连接模式流程如图3所示。
Figure 3. Optimized data distribution and map data join mode
图3. 数据的优化分布及映射端数据连接模式
4. 算例验证
4.1. Hadoop平台建设
采用10节点即10台服务器建设Hadoop集群平台,指定集群中一个节点为NameNode,指定另一台不同的节点为JobTracker,均是主控节点。余下节点为客户端,作为DataNode也作为TaskTracker。操作系统采用Windows;部署:虚拟机软件Vmvare;Vmvare安装好一台Windows虚拟机后,导出或者克隆出另外两台虚拟机,连接为桥连,确保虚拟机和主机ip地址在同一个ip段内,可以相互通信。设置数据块规格为64 MB,对应4个CPU内核,各计算节点都分配4个任务网格,其中3个为映射计算任务网格,1个为约减计算任务网格。对集群的整体数据传输性能进行基准测试。
4.2. 算法性能验证
为测试数据存储分布优化后多源连接检索查询算法的性能,将前述针对产品大数据连接算法和基于标准Hadoop平台的连接算法进行分析比对验证。分析使用实验室研发的“产品大数据追溯系统”中采集存储的数据集,如表5。
文件名 |
副本数 |
文件大小 |
占用空间 |
记录数 |
加工过程 |
3 |
627 kB |
1881 kB |
1910 |
质量检测 |
3 |
370 GB |
1110 GB |
13.62 M |
检测环境 |
3 |
215 MB |
645 MB |
4175 |
Table 5. Real data set for join query
表5. 算法验证真实数据集
1) 多源并行连接检索运行时间变化趋势
选择3种典型连接查询条件进行基于CMCHA多源并行连接检索查询算法的运行测试,记录每种条件下算法的运行时间。查询结构化语言SQL语句的描述如表6。
类型 |
条件 |
查询语句 |
全连接 |
不设置 |
Select位置ID,检测位置,采集时间,温度,湿度,采样批次,采样信息 From加工过程,质量参数检测,检测环境 Where加工过程,位置ID = 质量参数检测,位置ID = 检测环境,位置ID |
位置条件 连接 |
检测 工位 |
Select位置ID,检测位置,采集时间,温度,湿度,采样批次,采样信息 From加工过程,质量参数检测,检测环境 Where加工过程,位置ID = 质量参数检测,位置ID = 检测环境,位置ID and位置ID between [ID1, IDn] |
时间条件 连接 |
时间 |
Select位置ID,检测位置,采集时间,温度,湿度,采样批次,采样信息 From加工过程,质量参数检测,检测环境 Where加工过程,位置ID = 质量参数检测,位置ID = 检测环境,位置ID and采集时间between [T1, Tn] |
Table 6. SQL description of join query
表6. 连接查询实验类SQL描述
实验过程中在数据集中选取不同规模的子集,从10万条记录递增至数据全集(13.76 M条),基于CMCHA的多数据源并行连接检索算法运行时间变化趋势及运行时间与数据规模的关系如图4。可以看出,应用了CMCHA数据存储算法优化后,数据检索运行时间随着数据规模的增长而增长平缓。由于对数据存储布局采用CMCHA进行了优化,且在映射过程中完成综合检索查询操作,网络通信量有效降低,保证了查询性能的稳定性。
Figure 4. Execution time and variation trend of data join
图4. 多源连接检索运行时间变化趋势
2) 数据连接检索运行时间比较
使用基于标准Hadoop平台的约减端连接检索处理算法和基于CMCHA的多源并行数据连接检索算法,针对选取的13.76 M条样本数据全集,分别执行全连接、以检测位置为查询条件和以时间为查询条件的连接检索操作,运行时间比较结果如图5,后一算法的运行时间分别为前一算法运行时间的32.9%、32.5%和32.1%。CMCHA算法在运行时间上远小于标准Hadoop算法,而且随着事务条数的增加,虽然CMCHA算法运行时间也在增加,但是两者的差距也在逐渐变大,当数据量逐渐越大时,CMCHA算法的优势也越来越明显。数据存储优化布局后提高了多数据源相关数据聚集性,映射任务中的数据连接在本地就能完成,减少了映射端到约减端的数据通信,也降低了约减任务的启动对性能的影响,所以算法的运行效率明显提高。
Figure 5. Execution time comparison of data join based on 2 algorithms
图5. 两种算法多源连接运行时间比较
5. 结论
针对产品大数据资源,基于Hadoop平台,采用分布式、分层结构的存储优化和并行处理等技术,提出了多副本一致性Hash数据存储算法,按照产品主属性、相关系数和时间戳,在数据集群中按照规则聚集具有相关性的数据,提高数据处理效率。基于该算法设计了Hadoop平台下多源并行连接数据检索算法,测试证明通过数据的存储分布优化,算例的运行速度明显加快,和标准Hadoop方案比较,多源并行连接数据检索的执行时间为其31.9%。
赶紧长按上面图片添加关注!
转发,点赞,在看,安排一下?
基于Hadoop的产品大数据分布式存储优化相关推荐
- 国内跨云端平台应用的大数据平台供应商,基于Hadoop的互联网大数据平台解决方案,武汉数道云...
跨云端大数据平台是什么?有何实质性的价值呢?如何去实现跨云端大数据平台技术呢?这是耐人深思的话题. 高速发展的信息技术,不断扩张的数据库容量,互联网作为信息传播和再生的平台,"信息泛滥&qu ...
- 基于Hadoop的高校大数据治理融合系统设计与实现
本文通过深入分析体验大数据生态圈主流技术,调研分析高校常见信息化系统数据特征,以学生相关数据(如图书数据.一卡通数据.就业数据.医院数据.上网数据)为融合分析研究对象,构建了高校大数据治理融合平台.平 ...
- 基于Hadoop开发的大数据实战项目——电商日志分享系统
项目介绍 大数据电商日志平台项目以某电商网站真实的业务数据架构为基础,将数据从收集到使用通过前端应用程序,后端程序,数据分析,平台部署等多方位的闭环的业务实现.形成了一套符合教学体系的电商日志分析项目 ...
- SQL on Hadoop在快手大数据平台的实践与优化 | 分享实录
快手大数据架构工程师钟靓 本文是根据快手大数据架构工程师钟靓于 5月18-19日在A2M人工智能与机器学习创新峰会<SQL on Hadoop在快手大数据平台的实践与优化>演讲中的分享内容 ...
- 基于云原生的大数据产品前端实践 | 第七期图文直播文字回放
点击"蓝字"关注我们 2月5日晚,智领云第七次社群图文技术直播如约而至.本次直播由智领云Web开发经理陈磊为大家分享了<基于云原生的大数据产品前端实践>主题内容,其中 ...
- 基于新型存储的大数据存储管理
基于新型存储的大数据存储管理 金培权1,2 1. 中国科学技术大学计算机科学与技术学院,安徽 合肥 230027 2. 中国科学院电磁空间信息重点实验室,安徽 合肥 230027 摘要:如何高效地存储 ...
- 二、大数据技术之Hadoop --从Hadoop框架讨论大数据生态
目录 1.从Hadoop框架讨论大数据生态 1.1 Hadoop是什么 1.2 Hadoop发展历史 1.3 Hadoop三大发行版本 1.3.1 Apache Hadoop 1.3.2 Cloude ...
- 连接impala出现method not supported_Impala在网易大数据的优化和实践
文章作者:温正湖 网易杭研 编辑整理:张博 出品平台:DataFunTalk 导读:网易大数据平台的底层数据查询引擎,选用了Impala作为OLAP查询引擎,不但支撑了网易大数据的交互式查询与自助分析 ...
- 基于区块链的大数据交易模式研究与探索
点击上方蓝字关注我们 基于区块链的大数据交易模式研究与探索 李源1, 高宁1, 孙晶1,2, 赵会群1 1 北方工业大学信息学院,北京 100144 2 北方工业大学大规模流数据集成与分析技术北京市重 ...
最新文章
- DirectX 9的坐标系统变换
- 微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量
- jQuery操作Select2控件
- AttributeError: 'NoneType' object has no attribute 'grid'报错解决方案
- mysql innodb表移植_mysql Innodb引擎独立表空间下通过复制.ibd文件快速迁移数据文件...
- post和php input,PHP“php:/Input”vs$POST
- delphi 字符串处理中的怪异现象与处理
- 读书笔记:《小米生态链战地笔记》
- bios 微星click_微星发表全新搭载图形化『Click BIOS』主机板 采用最新UEFI架构 迎接全图形化BIOS调教新时代...
- Android 仿微信/支付宝 字体大小 调整控件
- 微博营销推广策略分析
- HALCON 3D 激光三角校准-未完持续
- python的常用数组工具
- MTK优美代码赏析2:MenuItemMask_flag
- java csv 引号_csv文本编辑引号问题
- 选择java还是python-编程语言是选择Java还是Python好呢?
- 论文投稿指南——中文核心期刊推荐(生物科学 2)
- IntelliJ IDEA 15款 神级超级牛逼插件推荐(自用,真的超级牛逼)
- Java 默认可变性:“万亿美元级别的错误” | InfoQ 访谈
- 土石坝渗流分析的目的
热门文章
- arm9重启ssh服务_部署ssh使用rsa登录配置
- log4js linux,日志管理 log4js
- win10右键闪退到桌面_WIN10设置闪退,桌面右键个性化显示设置等均无效
- ubuntu php 解析,ubuntu运行后台php服务详解
- mysql数据库用户的创建_mysql创建用户及数据库
- javaweb 常用jar包_使用javaweb写一个登录案例
- python网络爬虫系列(四)——requests模块
- Web框架——Flask系列之数据库迁移(二十)
- LeetCode 5235. 找出输掉零场或一场比赛的玩家(计数)
- 程序员面试金典 - 面试题 16.07. 最大数值(位运算求max)