实时数据交换(kafka-hbase、kafka-mysql)性能测试报告

  1. 性能测试环境
  1. kafka集群环境

IP

CPU

网卡

备注

192.168.x.106

Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz;单CPU;8核

1000Mb/s

 

192.168.x.107

Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz;单CPU;8核

1000Mb/s

 

192.168.x.109

Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz;单CPU;8核

1000Mb/s

 

 

  1. zookeeper集群环境

IP

CPU

网卡

备注

192.168.x.130

Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz;单CPU;12核

1000Mb/s

 

192.168.x.139

Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz;单CPU;12核

1000Mb/s

 

192.168.x.144

Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz;单CPU;12核

1000Mb/s

 

 

  1. 客户端环境(消费者)

IP

CPU

网卡

备注

192.168.x.146

Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz;单CPU;10核

1000Mb/s

 

192.168.x.147

Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz;单CPU;10核

1000Mb/s

 

192.168.x.108

Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz;单CPU;8核

1000Mb/s

 

 

  1. 性能测试方案

该实时数据交换性能测试主要围绕单分区单客户端、多分区单客户端和多分区多客户端三个方面进行测试。数据格式为:

{"name": "heres","age": "10","address": "hefei"}

kafka-mysql和kafka-HBase都采用了批量插入的方式,分别为6000条/1次和2000条/1次,具体测试方案如下:

2.1、基于单分区单客户端测试方案

在kafka集群新建一个topic,topic为1个Partitions,1个Replication,通过producer程序为该topic生产1000万条消息。

在一个客户端上执行实时数据交换程序,消费者组为group1,分别统计kafka Stream实时数据转化十万级、百万级和千万级数据转化效率(msg/sec)。

 

2.2、基于多分区单客户端测试方案

在kafka集群新建一个topic,topic为3个Partitions,1个Replication,通过producer程序为该topic生产1000万条消息,同时需要保证消息能够均分分布在3个partitions上,防止数据倾斜现象。

在一个客户端上执行实时数据交换程序,消费者组为group1,分别统计kafka Stream实时数据转化十万级、百万级和千万级数据转化效率(msg/sec)。

 

2.3、基于多分区多客户端测试方案

在kafka集群新建一个topic,topic为3个Partitions,1个Replication,通过producer程序为该topic生产1000万条消息,同时需要保证消息能够均分分布在3个partitions上,防止数据倾斜现象。

在3个客户端上同时启动实时数据交换程序,消费者组为group1,观察kafka stream任务分布情况,分别统计kafka Stream实时数据转化十万级、百万级和千万级数据转化效率(msg/sec)。

 

 

  1. 结果与分析

3.1、方案一

实时数据转化

十万级(msg/sec)

百万级(msg/sec)

千万级(msg/sec)

备注

Kafka->mysql

50000

71428

72992

 

Kafka->HBase

10000

12195

11876

 

基于kafka stream的单分区单客户端测试方案,启动测试程序后,客户端会启动一个task,在kafka到mysql的数据交换过程,会达到每秒50000条消息;在kafka到HBase的数据交换过程,会达到每秒11000条消息。

3.2、方案二

实时数据转化

十万级(msg/sec)

百万级(msg/sec)

千万级(msg/sec)

备注

Kafka->mysql

41428

41666

37174

 

Kafka->HBase

11111

11494

10893

 

基于kafka stream的多分区单客户端测试方案,启动测试程序后,客户端会启动3个task,在kafka到mysql的数据交换过程,会达到每秒40000条消息;在kafka到HBase的数据交换过程,会达到每秒11000条消息,并没有看到明显的性能提升。

3.3、方案三

实时数据转化

十万级(msg/sec)

百万级(msg/sec)

千万级(msg/sec)

备注

Kafka->mysql

100000

120000

140625

 

Kafka->HBase

38028

40000

40909

 

基于kafka stream的多分区多客户端测试方案,分别在3台客户端启动测试程序,kafka stream会根据消费者组重新进行rebalance,将任务依次分布在IP为192.168.129.146,192.168.129.147,192.168.129.108三台物理服务器上。在kafka到mysql的数据交换过程,会达到每秒100000条消息;在kafka到HBase的数据交换过程,会达到每秒38000条消息,IP为192.168.129.108的物理机器实时数据转化效率明显高于另外两台机器,故实时数据转化效率约为方案二的3倍多。

特此说明:涉及Mysql数据量,这块是程序处理的记录数,不是提交Mysql入库记录数。仅供参考。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: flume是一个数据采集工具,可以将数据从不同的数据源采集到kafka中。kafka是一个分布式消息队列,可以将数据进行缓存和分发。sparkstream是一个流处理框架,可以对实时数据进行处理和分析。hbase是一个分布式的NoSQL数据库,可以存储海量的结构化数据mysql是一个关系型数据库,可以存储结构化数据。hive是一个数据仓库工具,可以将结构化数据进行查询和分析。 在这个架构中,flume将数据采集到kafka中,sparkstream从kafka中读取数据进行实时处理和分析,处理后的数据可以存储hbase中。同时,mysql可以作为一个数据源,将数据导入到hive中进行分析。hbase和hive之间可以通过HBaseStorageHandler实现映射,将hbase中的数据映射到hive中进行查询和分析。 ### 回答2: Flume、Kafka、Spark Streaming、HBaseMySQL和Hive都是大数据处理和分析中常见的工具和技术。这些工具和技术可以协同工作以实现更高效、更精确的数据分析和处理。下面将从多角度分析这些工具之间的映射关系。 1. 数据采集和传输 Flume和Kafka是主要的数据采集和传输工具。Flume通常用于将数据从不同来源采集到HDFS或HBase等目标位置。Kafka则更适用于构建大规模的分布式消息流平台。Kafka可以接收来自多个来源的数据,然后在进行处理之前将其传输到队列中。这些工具都可以与HBaseMySQL数据存储系统合作使用。 2. 实时数据处理 Spark Streaming则是实时数据处理和分析的主要技术。Spark Streaming可以将Kafka、Flume和其他来源的数据进行实时处理和分析,可以将结果直接存储HBaseMySQL中。 3. 数据存储 MySQL和Hive是两个不同的SQL引擎。MySQL可以作为一种关系型数据库管理系统(RDBMS),可以在大多数情况下有效地存储结构化数据。Hive则可以将数据存储在Hadoop集群的HDFS中,并生成一个结构化查询语言(SQL)接口,允许开发人员和数据科学家方便地访问Hadoop中的数据。因此,Hive更适合非结构化或半结构化数据存储HBase则可以作为一个高性能、分布式的NoSQL数据库,专门用于在Hadoop集群上存储数据实时数据。因此,HBaseMySQL更适合存储半结构化和非结构化数据。 4. 数据映射 Hadoop和Hive之间的映射是首选的方式之一。Hive提供了一个SQL界面,允许数据科学家和开发人员访问和处理存储在Hadoop集群上的数据。因此,在Hive中创建的表会自动映射到Hadoop集群上的HDFS文件中。 HBase则局限于存储半结构化和非结构化数据,可以使用Hive和Apache Phoenix来更方便地访问和操作HBase数据。Apache Phoenix提供了一个SQL界面,允许开发人员和数据科学家使用标准SQL来访问和操作HBase数据。 因此,Flume、Kafka、Spark Streaming、HBaseMySQL和Hive之间的映射关系可以根据实际需求进行不同的组合。例如,Flume和Kafka可以协同工作,将数据传输到Hadoop集群上的HDFS或HBase中进行存储。Spark Streaming可以实时处理来自Hadoop集群上的HDFS、HBaseKafka数据MySQL和Hive可以作为SQL引擎,提供方便的接口用于访问Hadoop集群的数据HBase作为一个高性能、分布式的NoSQL数据库,可以在Hadoop集群上有效地处理半结构化和非结构化数据。 ### 回答3: flume、kafka、sparkstream、hbasemysql和hive是在大数据生态系统中非常重要和流行的一些工具和技术。它们都具有独特的功能和用途,并广泛用于大规模数据处理和分析。 在这些工具和技术之间建立映射是非常重要的,因为它们可以协同工作并发挥其最大潜力。尤其是在大规模数据处理和分析方面,正确的工具和技术映射可以帮助我们更好地管理和处理海量数据。 flume是一个日志采集和处理系统,可以从数据源收集数据并将其传输到目标位置,如hbase、hive或Kafka。flume和kafka之间的映射通常用于处理数据流,其中flume作为生产者将日志数据发送到kafka,然后消费者可以使用sparkstream或其他工具将这些数据进行处理和分析。 kafka是一个分布式流处理平台,它可以处理大量数据流并实现实时数据处理。kafkahbase之间的映射通常是将kafka作为数据来源,然后将数据写入hbase进行存储和管理。此外,可以使用hive或其他工具对hbase存储数据进行查询和分析。 sparkstream是一个实时流处理引擎,它可以处理来自kafka、flume等数据源的实时数据流。与hbasemysql之间的映射通常是,sparkstream可以从这些存储系统中读取数据并对其进行处理和分析,并将结果存储回这些存储系统中。 hbase是一个分布式NoSQL数据库,它可以存储大量非结构化和半结构化数据。与hive之间的映射通常是,hive可以使用hbase表中存储数据进行查询和分析,而hbase则提供了一个高可靠性的数据存储和管理系统。 mysql是一个关系型数据库管理系统,常用于较小的数据集合。(In 300 words) 总之,这些工具和技术都是互相关联的,在大数据生态系统中扮演着重要角色。正确的映射可以使它们协同工作,并处理大规模数据集的难题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值