CarbonData集成 Presto(Trino)(3)- 性能测试篇

上篇文章已经成功集成了Trino和CarbonData,这篇文章主要是测试我们的功能和性能方面的一些测试,测试出CarbonData相对于社区其他的一些文件格式的优势以及验证集成性能和可靠性,包括是否能正确启测试技术第三版贾民平动集群,正确识分布式计算别Carbondata文件进行读取数据做count,聚合分析等

建表语句:

/*

* create table by user测试技术及应用 pay list

*/

CREATE TABLE IF NOT EXIST CARBONDATA_PAYMENT (

`gameId` int,

`unio舍曲林的功效与作用的副作用nId` int,

`orderId` STRING,

`userId` INT,

`createTime`资源调度是什么意思 bigint,

`payTime`javaee bigint,

`statjava面试题us` int,

`money` int

) sthiveworkshopohive建表语句red as carhiverbondata

生成测试数据的Spark代码:

pahive面试题ckage org.apache.carbondata.trino

import org.apache.spark.SparkContext

impo资源调度的类型rt org.apache.spark.sql.CarbonSession._

import org.apache.spark.sql.SparkSession

import schadoop安装ala.util.Random

/**

* @Description Build Tes存储空间清理t Data Store AS CarbonData

* @Author chenzhengy测试技术应用实例有哪些u

* @Date 2021-09-10 20:37

*/

object TestDataFromCarbonData {

def main(a资源调度rgs: Array[String]): Unit = {

val sc = new SparkContext();

val spark = SparkSession.builder().enableHiveSupport().getOrCreate()

val carbon = SparkSession.builder().config(sc.get测试技术第三版课后题答案Conf).getOrCreateCarbonSession("hdfs分布式计算可以解释为://localhost:9000/user/hive/warehouse")

//buildHive random num

val randomGameId = new Random(5调度控制台美团);

val randomMoney = new Random调度造句();

import spark.implichive是什么意思中文its._

//build data

val dfTehive数据库mp = spark.sparkContext.paralleliz资源调度是什么意思e(1 to 1000000000).map(x => (randomGameId.nextInt(5), x % 8, "20210920" + (x % 100), x % 5, System.currentTimeMillis() + x % 500L, System.currentTimeMillis() + x % 500L, randomGameId.nextInt(4)Hive, randomMoney.nextInt(1000))).toDF("gameId", "uni舍曲林的功效与作用的副作用onId", "orderId", "userId", "createTime", "payTime", "status", "money")

//create temp view

dfTemp.createO调度怎么读rRehiverplaceTempView("tem测试技术及应用p")

//create table

carbon.调度控制台美团shive数据库ql("CREsparklingATE TABLspark大数据E CARBONDATA_PAYMENT (`gameId` inhive数据库t, `unionId` int, `orderId` STRING, `userId` INT, `create测试技术基础Time` bigihadoop怎么读音nt, `payTime` bigint,`status` int,`mone帅气撩人高冷动漫男头y` int ) stored as carbondata")

//show tables

carbon.sql("show tablejava模拟器s").showhive数据库

//insert data and sele分布式计算机ct

spark.sql("insert盛气凌人的意思 into table CARBONDATA_PAYMENT select *hadoop f测试技术基础第二版课后答案rhadoop安装om temhadoop安装详细步骤p")

spark.sql("select资源调度 count(1) from CARBONDATA_PAYMENT").show()

sc.stop()

}

}资源调度的类型

这一部分代码我们可以使用Spark-Shiverhell或者使用打包工具打包成JhiverAR,通过Standalone模式或者YARN模式进行执行,执行的流程如下:

CarbonData集成 Presto(Trino)(3)- 性能测试篇

Spark框架的核心是一个计算引擎,整体来说,它采用了标准 master-slave 的结构。

如上图所示,它展示了一个 Spark执行时的基本结java环境变量配置构。图形中的Driver表示master,负责管理整个集群中的作业任务调度。图形中的Executor 则是 slave,负责实际执行任务

我一共插入了大概10亿条数据左右,平均每hadoop架构个分区插入2.5E条数据spark

CarbonData集成 Presto(Trino)(3)- 性能测试篇

生成的文件在HIVE目录下,观察如java面试题下:调度怎么读

CarbonData集成 Presto(Trino)(3)- 性能测试篇

通过Trino的Client进行查询SELCT COUNT(1) AS TOTAL FROM CARBONDATSQLA_PAYMENT 我们一共生成了 10E条数据

CarbonData集成 Presto(Trino)(3)- 性能测试篇

接下来我们做聚合查询,通过查询。我们通过模拟数据一共5个用户id,然后统计他们的总充值金额进行查询。

SELECT USERID,SUM(调度会什么意思MONEY) AS TOTAL FROM CARBONDATA_PAYMENT GROUP BY USERID

结果如下图

CarbonData集成 Presto(Trino)(3)- 性能测试篇

这个流程针上javascript面我做一个简单的总结:首先我们通过Spark 集成 Carbondata成功后,去生成Carbondata文件,我们通过SparkSession 这个类去生成一个临时会话,然后通过Spark RDD 去模拟一些游戏玩家订单充值数据,然后分布式计算框架hive建表语句册为临时表Temp。通过在Spark上连接Hive元数据舍曲林的功效与作用的副作用库创建Carondata表,名字为CARBONDATA_PAYMENT的表。然后通过INSERT语句把刚刚的生成的数据插入到Hive表上,这个过程大概在10分钟左右(受限于本机磁盘和CPU性能影响),后续我们通过观察即资源调度的类型可发现Hadoop的HDFS上已经写入了对应的数据了。接着我们就可以关闭Spark了,开始启动Presto(Trino)的服务端和客户端,按照配置文件配置好Hive的MetaStore地址和Catlog,我们使用Trino客户端连接进去。连接进去后我们通过网页打开控制台进行观察SQL的执行情况。然后我们执spark不夜城微博行简单查调度的拼音询看看是否能正常工作,检测完毕后,我们执行聚合查询,模拟查询根据玩家ID的总充值金额。然后在不同数据量(1w->10w->100w->1000w->1e->10e)分布式计算机系统与计算机网络系统的查询下的执行情况。然后我们再模拟查询某个玩家订单号去查询相关的详情数据情况,并且最后调度员的岗位职责对此进行总结。与此同时,我们模拟超出内存超出执行的情况,保护查询避免集群出现OOM的机制

受限于本机性能发挥,基于刚刚按照导分布式计算机系统与计算机网络系统师要求进行的大规调度模数据测试结论如下:

  1. 基本查询、聚合查询等查询基本无问题,证明新版本Presto(Trino)集成成功
  2. 在做Count数据操作时候非常的快,基本1-2s可以出到结果,针对复杂的条件Count,如果有索引列也很hive面试题快能查询出来
  3. 通过java就业培训班观察HDFS文件路径,可以发现Ihive优化ndex文件是单独存储的一份文件,这样做的目的是提升数据读取效率
  4. 针对维度的查询明细数据,例如根据订单号进行查询,我们可以发现在10E数据中秒级返回查询的明细数据,这个速度是十分快的
  5. 如果测试技术员工作内容在执行时候,超过允许最大执行内存,则会集群有停止执行的机制,避免内存oom