一、Benchmark简介

Benchmark是一个评价方式,在整个计算机领域有着长期的应用。正如维基百科上的解释“As computer architecture advanced, it became more difficult to compare the performance of various computer systems simply by looking at their specifications.Therefore, tests were developed that allowed comparison of different architectures.”Benchmark在计算机领域应用最成功的就是性能测试,主要测试负载的执行时间、传输速度、吞吐量、资源占用率等。

二、Benchmark的组成

Benchmark的核心由3部分组成:数据集、 工作负载、度量指标。

1、数据集

数据类型分为结构化数据、半结构化数据和非结构化数据。由于大数据环境下的数据类型复杂,负载多样,所以大数据Benchmark需要生成3种类型的数据和对应负载。

1)结构化数据:传统的关系数据模型,可用二维表结构表示。典型场景有电商交易、财务系统、医疗HIS数据库、政务信息化系统等等;

2)半结构化数据:类似XML、HTML之类,自描述,数据结构和内容混杂在一起。典型应用场景有邮件系统、Web搜索引擎存储、教学资源库、档案系统等等,可以考虑使用Hbase等典型的KeyValue存储;

3)非结构化数据:各种文档、图片、视频和音频等。典型的应用有视频网站、图片相册、交通视频监控等等。

2、工作负载

互联网领域数据庞大,用户量大,成为大数据问题产生的天然土壤。对工作负载理解和设计可以从以下几个维度来看

1)密集计算类型:CPU密集型计算、IO密集型计算、网络密集型计算;

2)计算范式:SQL、批处理、流计算、图计算、机器学习;

3)计算延迟:在线计算、离线计算、实时计算;

4)应用领域:搜索引擎、社交网络、电子商务、地理位置、媒体、游戏。

3、度量指标

性能高估的两大利器就是Benchmark和Profile工具。Benchmark用压力测试挖掘整个系统的性能状况,而Profile工具最大限度地呈现系统的运行时状态和性能指标,方便用户诊断性能问题和进行调优。

1)工具的使用

a)在架构层面:perf、nmon等工具和命令;

b)在JVM层面:btrace、Jconsole、JVisualVM、JMap、JStack等工具和命令;

c)在Spark层面:web ui、console log,也可以修改Spark源码打印日志进行性能监控。

2)度量指标

a)从架构角度度量:浮点型操作密度、整数型操作密度、指令中断、cache命中率、TLB命中;

b)从Spark系统执行时间和吞吐的角度度量:Job作业执行时间、Job吞吐量、Stage执行时间、Stage吞吐量、Task执行时间、Task吞吐量;

c)从Spark系统资源利用率的角度度量:CPU在指定时间段的利用率、内存在指定时间段的利用率、磁盘在指定时间段的利用率、网络带宽在指定时间段的利用率;

d)从扩展性的角度度量:数据量扩展、集群节点数据扩展(scale out)、单机性能扩展(scale up)。

三、Benchmark的运用

1、Hibench:由Intel开发的针对Hadoop的基准测试工具,开源的,用户可以到Github库中下载

2、Berkeley BigDataBench:随着Spark的推出,由AMPLab开发的一套大数据基准测试工具,官网介绍

3、Hadoop GridMix:Hadoop自带的Benchmark,作为Hadoop自带的测试工具使用方便、负载经典,应用广泛

4、Bigbench:由Teradata、多伦多大学、InfoSizing、Oracle开发,其设计思想和利用扩展具有研究价值,可以参阅论文Bigbench:Towards an industry standard benchmark for big data analytics。

5、BigDataBenchmark:由中科院研发,官方介绍

6、TPC-DS:广泛应用于SQL on Hadoop的产品评测

7、其他的Benchmark:Malstone、Cloud Harmony、YCSB、SWIM、LinkBench、DFSIO、Hive performance Benchmark(Pavlo)等等

大数据领域的Benchmark介绍相关推荐

  1. 大数据领域各职业介绍与发展路线

    目录 一.大数据是什么 二.大数据具体都做些什么 三.大数据领域有哪些职业 四.自己该选择哪个职业方向 五.各职业的成长和发展路线 六.最后 一.大数据是什么 自己在互联网大数据行业已有多年工作经验, ...

  2. 大数据领域的性能测试Benchmark介绍

    前言:大数据领域的性能测试Benchmark介绍,需要的可以看看! 一.Benchmark简介 Benchmark是一个评价方式,在整个计算机领域有着长期的应用.正如维基百科上的解释"As ...

  3. 大数据领域75个核心术语讲解!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 选自:DataConomy,来源:机器之心 近日,Ramesh Dont ...

  4. 7月17日云栖精选夜读:深度 | 两个案例,掌握AI在大数据领域的前沿应用

    近日,全球技术学习技术大会首次在京举行,阿里巴巴数据技术及产品部资深算法专家杨红霞(鸿侠)作为特邀嘉宾出席并发表主题演讲.鸿侠从什么是数据新能源说起,接着介绍了阿里目前比较成功的两款数据产品,一个是是 ...

  5. 你应该知道的大数据领域12大动向

    最近这几周大数据领域可谓动作频频,初创公司和老牌企业都纷纷发布新品,更新或改进现有的产品系列,以及达成战略性关系. 行业观察人士表示,许多企业拿来试点阶段的大数据系统(尤其是那些整合Hadoop平台的 ...

  6. Hadoop学习总结(1)——大数据以及Hadoop相关概念介绍

    一.大数据的基本概念 1.1.什么是大数据 大数据指的就是要处理的数据是TB级别以上的数据.大数据是以TB级别起步的.在计算机当中,存放到硬盘上面的文件都会占用一定的存储空间,例如: 文件占用的存储空 ...

  7. (1)大数据和应用场景介绍

    专栏目录 (1)大数据和应用场景介绍 (2)大数据技术综述总结 (3)HDFS原理与高可用技术原理介绍 (4)Yarn架构.资源管理原理和运维技术介绍 (5)Kafka原理和高可用介绍 1.大数据基本 ...

  8. 大数据以及Hadoop相关概念介绍

    一.大数据的基本概念 1.1.什么是大数据 大数据指的就是要处理的数据是TB级别以上的数据.大数据是以TB级别起步的.在计算机当中,存放到硬盘上面的文件都会占用一定的存储空间,例如: 文件占用的存储空 ...

  9. java 大数据以及Hadoop相关概念介绍

    一.大数据的基本概念 1.1.什么是大数据 大数据指的就是要处理的数据是TB级别以上的数据.大数据是以TB级别起步的.在计算机当中,存放到硬盘上面的文件都会占用一定的存储空间,例如: 文件占用的存储空 ...

最新文章

  1. Shell脚本_备份/etc数据
  2. android 关闭2g网络,中国联通将关闭2G网络,速来了解联通2g卡升级4g套餐方法
  3. switch 没有default_「java面试」switch究竟怎么用,不要让它吃灰了!
  4. 五种I/O模型的性能分析
  5. 新手上路之Hibernate:第一个Hibernate例子
  6. Anaconda简介:它是什么,以及如何安装
  7. IBM打造云访问量子计算机 规模仅相当于D-Wave系统的四百分之一
  8. SQLite的基本使用
  9. STM32F10X的IAP编程详解——开发指南
  10. DPI/DFI/端口识别技术
  11. 搭档之家:哭唧唧!暗地较劲得不偿失,美团暂停支付宝后被无情反超
  12. 从事热爱的工作和积极乐观
  13. Android 开源项目分类汇总(下)
  14. WebDAV之葫芦儿·派盘+Orgzly
  15. 数据类型(数据类型简介、数据类型的分类(简单数据类型,获取变量数据类型,数据类型转换))
  16. ib课程可以申请哪些国家的大学?
  17. windows 10 __同时管理多个窗口的使用技巧(拼接多个窗口,虚拟桌面等)
  18. 【githubshare】KCon 黑客大会演讲 macOS Big Sur 内核漏洞挖掘、云虚拟化安全、服务器硬件可信与安全实践
  19. 谷歌机器学习主管:10年自学数据科学的3点心得体会
  20. GXOI/GZOI2019 逼死强迫症 题解

热门文章

  1. Newman基础使用
  2. Linux中怎么搭建Discuz论坛
  3. 英文网站推广常用方法有哪些
  4. 油烟净化器如何判断质量好坏?
  5. 【计算机网络:自顶向下方法】期末复习总结(USTC 2020秋 zq班)
  6. windows下内存检测工具
  7. 关于麻球网关闭的感想
  8. 看雪题库REVERSE的马到成功
  9. python话费充值_Python 登录移动查询话费
  10. 静态方法:关于Java8中的日期时间API,你需要掌握这些!!