`
datamachine
  • 浏览: 164953 次
社区版块
存档分类
最新评论

Hive/Impala/集算器性能对比测试报告(下)——关联计算

阅读更多

上篇进行过Hive/Impala/集算器的分组计算的性能测试,本篇进行关联计算的性能测试及结果说明。

 

窄表的关联计算测试

数据样本

        被关联表p_narrow。

        列数:11

        行数:5亿

        文本状态下所占空间:120.6G。

        数据结构: personid int,name string,sex int,cityid int,birthday int,degree int,col1 string,col2 int,col3 

int,col4 int,col5 string

       

        维表d_narrow

        列数:9

        行数:1000万行

        文本状态下所占空间:563M。

        数据结构:id int, parentid int, col1 int, col2 int, col3 int, col4 int, col5 int, col6 int, col7 int

说明:

1、被关联表:类似于SQL中Join左侧的表,行数较多。比如订单表。

2、维表:类似于SQL中join右侧的表,行数较少。比如客户ID-客户名表。

 

测试案例

Hive:select sum(p_narrow.col3), count(p_narrow.col5), sum(d_narrow.col7), d_narrow.id%10000 from p_narrow join d_narrow on d_narrow.id=p_narrow.col7 group by d_narrow.id%10000

 

Impala:select sum(p_narrow.col3), count(p_narrow.col5), sum(d_narrow.col7), d_narrow.id%10000 from p_narrow join d_narrow on d_narrow.id=p_narrow.col7 group by d_narrow.id%10000

 

集算器: 代码分为三部分,分别是:汇总机程序、节点机主程序、节点机子程序。



 

 

 

测试结果:


 

宽表的关联计算测试

数据样本

        被关联表p

        列数:106

        行数:6000万行

        文本状态下所占空间:127.9G。

数据结构:personid int,name string,sex int,cityid int,birthday int,degree int,col1 int,col2 int,col3 int,col4 int,col5 int,col6 int,col7 int,col8 int,col9 int,col10 int,col11 int,col12 int,col13 int,col14 int,col15 int,col16 int,col17 int,col18 int,col19 int,col20 int,col21 int,col22 int,col23 int,col24 int,col25 int,col26 int,col27 int,col28 int,col29 int,col30 int,col31 int,col32 int,col33 int,col34 int,col35 int,col36 int,col37 int,col38 int,col39 int,col40 int,col41 int,col42 int,col43 int,col44 int,col45 int,col46 int,col47 int,col48 int,col49 int,col50 int,col51 int,col52 int,col53 int,col54 int,col55 int,col56 int,col57 int,col58 int,col59 int,col60 int,col61 int,col62 int,col63 int,col64 int,col65 int,col66 int,col67 int,col68 int,col69 int,col70 int,col71 int,col72 int,col73 int,col74 int,col75 int,col76 int,col77 int,col78 int,col79 int,col80 int,col81 int,col82 int,col83 int,col84 string,col85 string,col86 string,col87 string,col88 string,col89 string,col90 string,col91 string,col92 string,col93 string,col94 string,col95 string,col96 string,col97 string,col98 string,col99 string,col100 string

 

        维表d

        列数:102

        行数:1000万行

        文本状态下所占空间:6.8G

        数据结构:id int, parentid int,col1 int,col2 int,col3 int,col4 int,col5 int,col6 int,col7 int,col8 int,col9 int,col10 int,col11 int,col12 int,col13 int,col14 int,col15 int,col16 int,col17 int,col18 int,col19 int,col20 int,col21 int,col22 int,col23 int,col24 int,col25 int,col26 int,col27 int,col28 int,col29 int,col30 int,col31 int,col32 int,col33 int,col34 int,col35 int,col36 int,col37 int,col38 int,col39 int,col40 int,col41 int,col42 int,col43 int,col44 int,col45 int,col46 int,col47 int,col48 int,col49 int,col50 int,col51 int,col52 int,col53 int,col54 int,col55 int,col56 int,col57 int,col58 int,col59 int,col60 int,col61 int,col62 int,col63 int,col64 int,col65 int,col66 int,col67 int,col68 int,col69 int,col70 int,col71 int,col72 int,col73 int,col74 int,col75 int,col76 int,col77 int,col78 int,col79 int,col80 int,col81 int,col82 int,col83 int,col84 int,col85 int,col86 int,col87 int,col88 int,col89 int,col90 int,col91 int,col92 int,col93 int,col94 int,col95 int,col96 int,col97 int,col98 int,col99 int,col100 int

 

说明:

1、被关联表:类似于SQL中Join左侧的表,行数较多。比如订单表。

2、维表:类似于SQL中join右侧的表,行数较少。比如客户ID-客户名表。

 

测试案例

Hive:select sum(p.col3), count(p.col5), sum(d.col7), d.id%10000 from p join d on d.id=p.col7 group by 

d.id%10000

Impala:select sum(p.col3), count(p.col5), sum(d.col7), d.id%10000 from p join d on d.id=p.col7 group by d.id%10000

集算器: 代码分为三部分,分别是:汇总机程序、节点机主程序、节点机子程序。

 
 
 

测试结果

 

小结

A、窄表的分组汇总


 

1、Impala、集算器的性能明显好于Hive,快一倍或更多。

2、Impala与集算器略有差异,但并不明显。

3、分组列数和汇总列数对三种解决方案的性能影响都不大。

 

B、宽表的分组汇总


 

1、Impala、集算器的性能明显好于Hive,快一倍或更多。

2、Impala与集算器略有差异,但并不明显。

3、分组列数和汇总列数对三种解决方案的性能影响都不大。

4、与窄表相比,表的列数对性能影响不大,整表体积对性能有直接影响。Impala在宽表时性能略有下降而Hive和集算器则略有上升。

 

C、窄表的关联计算

 

1、Impala、集算器性能明显强于Hive,接近3倍。

2、Implala比集算器略强,但差异并不明显。

 

D、宽表的关联计算

 

1、Impala、集算器性能明显强于Hive,接近3倍。

2、Implala比集算器快1秒,基本可以认为两者性能一致。

 

测试结果解读

Hive的性能较差,是由于它的底层是MapReduce,而MapReduce是通过外存文件实现计算节点间的数据交换,这就导致大量的硬盘IO时间。Implala和集算器可以通过内存来直接交换中间计算结果,性能因此更好。

 

通过文件来交换数据并非没有好处,事实上在不稳定的大集群环境中,文件交换可以保证中间计算结果的安全。Impala只支持直接交换,Hive只支持文件交换,集算器两者皆可,由程序员自由决定。

 

分组汇总时集算器比Impala的性能略强,这主要是由于集算器除了支持HDFS,还支持直接读写本地硬盘。而Impala必须经过HDFS才能访问硬盘,多了一层控制自然会慢。

但在关联计算中,我们可以看到集算器和Impala的数据反过来了,Impala的性能等于或略强于集算器。这是因为Impala虽然要经过HDFS来访问硬盘,但是它也会生成本地代码来优化计算性能,比集算器使用的JAVA虚拟机性能要高。可以猜想,分组汇总时更强调数据读取,而关联计算时更强调计算,因此产生了关联计算时Impala反超集算器的现象。

 

分组列数和汇总列数对分组汇总的性能影响都不大,这是由于本案例的算法比较简单,时间大部分消耗在硬盘读写而不是数据计算上。不过Hive和Implala不是集算器这类过程性语言,太复杂的运算也难以支持,这种CPU空耗属于正常现象。

另外我们将计算结果限制为一万条,这是由于Impala对内存的依赖较大太,大的结果集会导致内存溢出。Hive只支持外存计算因此不存在内存限制。集算器修改算法后也可以实现外存计算,不过性能会有所下降。

 

  • 大小: 29.6 KB
  • 大小: 38.7 KB
  • 大小: 2.2 KB
  • 大小: 980 Bytes
  • 大小: 29.7 KB
  • 大小: 38.7 KB
  • 大小: 2.2 KB
  • 大小: 995 Bytes
  • 大小: 2.7 KB
  • 大小: 2.7 KB
  • 大小: 887 Bytes
  • 大小: 888 Bytes
分享到:
评论

相关推荐

    厦门大学林子雨版大数据基础入门培训课程 教师培训交流讲义-模块11-基于Hadoop的数据仓库Hive 共48页.ppt

    【大数据基础入门培训课程——基于Hadoop的数据仓库Hive】模块11主要涵盖了Hive的基础知识,包括其系统架构、工作原理、高可用性(HA)原理,以及相关的数据分析工具Impala,还有Hive的编程实践。以下是这些知识点的...

    impalajdbc

    Impala与HDFS(Hadoop Distributed File System)和Hive Metastore紧密集成,支持实时分析存储在Hadoop集群中的大量数据。 标题"impalajdbc"表明我们要讨论的是关于Impala的Java数据库连接器(JDBC)驱动。JDBC是...

    大数据面试录音07.zip

    【大数据面试录音07.zip】这个压缩包文件的标题揭示了其主要内容——一次关于大数据岗位的面试录音。在准备大数据领域的面试时,这样的资源是非常有价值的,因为它提供了实际面试场景的真实反馈,可以帮助求职者了解...

    大数据简历项目 关于两个联通大数据项目和一个爬虫项目

    在第一个联通大数据项目——移动终端上网数据实时分析处理系统中,开发环境包括IDEA、Eclipse、Maven、JDK,系统架构由Hadoop、Zookeeper、Flume、Spark、Hive、MySQL、Sqoop和Oracle组成。此项目中,数据通过FTP...

    查看进程信息,方便排查问题

    查看进程信息,方便排查问题

    IDA Pro分析STM32F1xx插件

    IDA Pro分析STM32F1xx插件

    基于SSH的线上医疗报销系统.zip-毕设&课设&实训&大作业&竞赛&项目

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    matlab的小型的微电网仿真模型文件

    小型的微电网仿真模型,简单模拟了光伏,家庭负载变化的使用情况

    MATLAB代码实现:分布式电源接入对配电网运行影响深度分析与评估,MATLAB代码分析:分布式电源接入对配电网运行影响评估,MATLAB代码:分布式电源接入对配电网影响分析 关键词:分布式电源 配电

    MATLAB代码实现:分布式电源接入对配电网运行影响深度分析与评估,MATLAB代码分析:分布式电源接入对配电网运行影响评估,MATLAB代码:分布式电源接入对配电网影响分析 关键词:分布式电源 配电网 评估 参考文档:《自写文档,联系我看》参考选址定容模型部分; 仿真平台:MATLAB 主要内容:代码主要做的是分布式电源接入场景下对配电网运行影响的分析,其中,可以自己设置分布式电源接入配电网的位置,接入配电网的有功功率以及无功功率的大小,通过牛顿拉夫逊法求解分布式电源接入后的电网潮流,从而评价分布式电源接入前后的电压、线路潮流等参数是否发生变化,评估配电网的运行方式。 代码非常精品,是研究含分布式电源接入的电网潮流计算的必备程序 ,分布式电源; 配电网; 接入影响分析; 潮流计算; 牛顿拉夫逊法; 电压评估; 必备程序。,基于MATLAB的分布式电源对配电网影响评估系统

    基于Unity-Bolt开发的游戏demo.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    重庆市农村信用合作社 农商行数字银行系统建设方案.ppt

    重庆市农村信用合作社 农商行数字银行系统建设方案.ppt

    光伏并网逆变器设计方案与高效实现:结合matlab电路仿真、DSP代码及环流抑制策略,光伏并网逆变器设计方案:结合matlab电路文件与DSP程序代码,实现高效并联环流抑制策略,光伏并网逆变器设计方案

    光伏并网逆变器设计方案与高效实现:结合matlab电路仿真、DSP代码及环流抑制策略,光伏并网逆变器设计方案:结合matlab电路文件与DSP程序代码,实现高效并联环流抑制策略,光伏并网逆变器设计方案,附有相关的matlab电路文件,以及DSP的程序代码,方案、仿真文件、代码三者结合使用效果好,事半功倍。 备注:赠送逆变器并联环流matlab文件,基于矢量控制的环流抑制策略和下垂控制的环流抑制 ,光伏并网逆变器设计方案; MATLAB电路文件; DSP程序代码; 方案、仿真文件、代码结合使用; 并联环流抑制策略; 下垂控制的环流抑制,光伏并网逆变器优化设计:方案、仿真与DSP程序代码三合一,并赠送并联环流抑制策略Matlab文件

    Matlab实现WOA-GRU鲸鱼算法优化门控循环单元的数据多输入分类预测(含模型描述及示例代码)

    内容概要:本文介绍了通过 Matlab 实现鲸鱼优化算法(WOA)与门控循环单元(GRU)结合的多输入分类预测模型。文章首先概述了时间序列预测的传统方法局限性以及引入 WOA 的优势。然后,重点阐述了项目背景、目标、挑战及其独特之处。通过详细介绍数据预处理、模型构建、训练和评估步骤,最终展示了模型的效果预测图及应用实例。特别强调利用 WOA 改善 GRU 的参数设置,提高了多输入时间序列预测的准确性与鲁棒性。 适合人群:对时间序列分析有兴趣的研究者,从事金融、能源、制造业等行业数据分析的专业人士,具备一定的机器学习基础知识和技术经验。 使用场景及目标:本项目旨在开发一个高度准确和稳定的多变量时间序列预测工具,能够用于金融市场预测、能源需求规划、生产调度优化等领域,为企业和个人提供科学决策依据。 其他说明:项目提供的源代码和详细的开发指南有助于学习者快速掌握相关技能,并可根据实际需求调整模型参数以适应不同的业务情境。

    基于vue+elment-ui+node.js的后台管理系统 .zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    Python 实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost多输入分类预测(含模型描述及示例代码)

    内容概要:本文介绍了Python中基于双向长短期记忆网络(BiLSTM)与AdaBoost相结合的多输入分类预测模型的设计与实现。BiLSTM擅长捕捉时间序列的双向依赖关系,而AdaBoost则通过集成弱学习器来提高分类精度和稳定性。文章详述了该项目的背景、目标、挑战、特色和应用场景,并提供了详细的模型构建流程、超参数优化以及视觉展示的方法和技术要点。此外,还附有完整的效果预测图表程序和具体示例代码,使读者可以快速上手构建属于自己的高效稳定的时间序列预测系统。 适合人群:对深度学习特别是时序数据分析感兴趣的开发者或者科研工作者;正在探索高级机器学习技术和寻求解决方案的企业分析师。 使用场景及目标:适用于希望提升时间序列或多输入数据类别判定准确度的业务情境,比如金融市场的走势预估、医学图像分析中的病变区域判读或是物联网环境监测下设备状态预警等任务。目的是为了创建更加智能且可靠的预测工具,在实际应用中带来更精准可靠的结果。 其他说明:文中提供的所有Python代码片段和方法都可以直接运用于实践中,并可根据特定的问题进行相应调整和扩展,进一步改进现有系统的效能并拓展新的功能特性。

    maven-script-interpreter-javadoc-1.0-7.el7.x64-86.rpm.tar.gz

    1、文件内容:maven-script-interpreter-javadoc-1.0-7.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/maven-script-interpreter-javadoc-1.0-7.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊

    在云服务器上搭建MQTT服务器(超详细,一步到位)

    在云服务器上搭建MQTT服务器(超详细,一步到位)

    复现改进的L-SHADE差分进化算法求解最优化问题详解:附MATLAB源码与测试函数集,复现改进的L-SHADE差分进化算法求解最优化问题详解:MATLAB源码与测试集全攻略,复现改进的L-SHADE

    复现改进的L-SHADE差分进化算法求解最优化问题详解:附MATLAB源码与测试函数集,复现改进的L-SHADE差分进化算法求解最优化问题详解:MATLAB源码与测试集全攻略,复现改进的L-SHADE差分进化算法求最优化问题 对配套文献所提出的改进的L-SHADE差分进化算法求解最优化问题的的复现,提供完整MATLAB源代码和测试函数集,到手可运行,运行效果如图2所示。 代码所用测试函数集与文献相同:对CEC2014最优化测试函数集中的全部30个函数进行了测试验证,运行结果与文献一致。 ,复现; 改进的L-SHADE差分进化算法; 最优化问题求解; MATLAB源代码; 测试函数集; CEC2014最优化测试函数集,复现改进L-SHADE算法:最优化问题的MATLAB求解与验证

    天津大学:深度解读DeepSeek原理与效应.pdf

    天津大学:深度解读DeepSeek原理与效应.pdf 1.大语言模型发展路线图 2.DeepSeek V2-V3/R1技术原理 3DeepSeek效应 4.未来展望

    光伏混合储能微电网能量管理系统模型:基于MPPT控制的光伏发电与一阶低通滤波算法的混合储能系统优化管理,光伏混合储能微电网能量优化管理与稳定运行系统,光伏-混合储能微电网能量管理系统模型

    光伏混合储能微电网能量管理系统模型:基于MPPT控制的光伏发电与一阶低通滤波算法的混合储能系统优化管理,光伏混合储能微电网能量优化管理与稳定运行系统,光伏-混合储能微电网能量管理系统模型 系统主要由光伏发电模块、mppt控制模块、混合储能系统模块、直流负载模块、soc限值管理控制模块、hess能量管理控制模块。 光伏发电系统采用mppt最大跟踪控制,实现光伏功率的稳定输出;混合储能系统由蓄电池和超级电容组合构成,并采用一阶低通滤波算法实现两种储能介质间的功率分配,其中蓄电池响应目标功率中的低频部分,超级电容响应目标功率中的高频部分,最终实现对目标功率的跟踪响应;SOC限值管理控制,根据储能介质的不同特性,优化混合储能功率分配,进一步优化蓄电池充放电过程,再根据超级电容容量特点,设计其荷电状态区分管理策略,避免过充过放,维持系统稳定运行;最后,综合混合储能和系统功率平衡,针对光伏储能微电网的不同工况进行仿真实验,验证控制策略的有效性。 本模型完整无错,附带对应复现文献paper,容易理解,可塑性高 ,光伏; 混合储能系统; 能量管理; MPPT控制; 直流负载;

Global site tag (gtag.js) - Google Analytics