- 博客(1050)
- 资源 (26)
- 收藏
- 关注
转载 Kubernetes----Deployment控制器实现版本金丝雀发布
Kubernetes----Deployment控制器实现版本金丝雀发布
2022-08-17 09:20:34
714
转载 spring boot内嵌undertow配置一定要优化
undertow默认配置情况下,官方默认配置的是 CPU核数*8,比如8核CPU,实际工作线程数也就8*8=64,这个配置对于高并发场景来看,一台8核CPU的机器一般内存都会32G或以上,即使跑满64线程,占用的资源远远无法充分利用该机器的性能。......
2022-08-11 09:06:31
6881
2
转载 数据湖技术Iceberg0.12预研文档
Iceberg0.12预研本次预研场景主要为kafka=>flink sql=>iceberg=>hive=>hdfs=>trino(presto)本次预研使用组件如下:名称 版本 描述flink 1.12.1 通过parcel包部署于cdh6.3.2中cdh 6.3.2 开源版本hive 2.3.7 包含cdh中(更换jar升级替换)hadoop 3.0.0 cdh原生版本presto 2.5...
2022-02-21 22:44:36
732
转载 Spark 大/小文件读取优化
问题描述使用Spark写复杂SQL时,我们经常会遇到两个尴尬的情况:表里的单个文件都很大,而且因为record比较小,所以单个文件的record数量巨大。表里每个分区都有成百上千个小文件,单个文件可能只有几条记录对于第一种情况,会导致我们没办法充分利用我们已有的核,所以速度很慢。对于第二种情况,则会大量浪费调度时间。比如你有100万个文件,假设只有100个核,那么需要调度一万轮,每轮调度除了调度自身的消耗,还有很多额外的消耗。在没有shuffle的情况下,会导致写太多文件,本身...
2022-02-18 17:12:59
2880
转载 Apache Iceberg 对推荐应用架构的优化及读写流程解析本文
Apache Iceberg应用场景示例:在之前的文章中相信大家已经对Iceberg有了很多了解,Iceberg具有 ACID,隐式分区,partition evolution等功能。那么这些功能在实际的应用场景中会有什么收益呢?我们来看一个大数据应用中比较典型的业务 “广告/信息流推荐服务"。在推荐服务中,业务往往通过join用户的点击、曝光数据来生成正负样本,然后用增量的样本数据比较实时的更新在线模型。在增量样本更新过程中总有延时到达的点击数据因为无法及时join而被当做负样本处理了,所以需要每
2022-02-17 00:36:51
652
转载 spark-sql执行流程分析
目录spark-sql 架构 sql执行流程正文回到顶部spark-sql 架构图1图1是sparksql的执行架构,主要包括逻辑计划和物理计划几个阶段,下面对流程详细分析。回到顶部sql执行流程总体流程parser;基于antlr框架对 sql解析,生成抽象语法树 变量替换,通过正则表达式找出符合规则的字符串,替换成系统缓存环境的变量SQLConf中的`spark.sql.variable.substitute`,默认是可用的;参考` SparkS.
2022-02-11 12:01:55
1189
转载 SparkSQL中的三种Join及其具体实现(broadcast join、shuffle hash join和sort merge join)
1.小表对大表(broadcast join)将小表的数据分发到每个节点上,供大表使用。executor存储小表的全部数据,一定程度上牺牲了空间,换取shuffle操作大量的耗时,这在SparkSQL中称作Broadcast JoinBroadcast Join的条件有以下几个:*被广播的表需要小于 spark.sql.autoBroadcastJoinThreshold 所配置的值,默认是10M (或者加了broadcast join的hint)*基表不能被广播,比如 left outer
2022-02-11 11:59:25
2635
转载 HBase原理 | HBase分区影响与合理分区设置
前段时间总结了一篇关于HBase由于分区过多导致集群宕机的文章,感兴趣的同学可以点击原文《HBase案例 | 20000个分区导致HBase集群宕机事故处理》阅读参考。本文重点参考HBase官网,从分区过多这个角度出发,进一步聊一聊HBase分区过多的影响以及单节点合理分区数量等。HBase 分区概念接触过HBase的同学都知道,HBase每张表在底层存储上是由至少一个Region组成,Region实际上就是HBase表的分区。HBase新建一张表时默认Region即分区的数量为1,一般在生产环境中我
2022-02-11 09:46:18
3349
转载 通过代码理解flink sql几种Join方式
flink SQL 适合离线处理的两种方式package com.staywithyou.flink.apitest.tableapi;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;import org.apache.flink.table.api.Environment.
2022-02-09 14:43:23
912
转载 Hive的三种Join方式
Hive中就是把Map,Reduce的Join拿过来,通过SQL来表示。参考链接:LanguageManual Joins - Apache Hive - Apache Software FoundationCommon/Shuffle/Reduce JoinReduce Join在Hive中也叫Common Join或Shuffle Join如果两边数据量都很大,它会进行把相同key的value合在一起,正好符合我们在sql中的join,然后再去组合,如图所示。Map Join1)
2022-02-09 14:38:31
4077
转载 Hive与spark优化之小文件问题及其解决方案
小文件是如何产生的1.动态分区插入数据,产生大量的小文件,从而导致map数量剧增。2.reduce数量越多,小文件也越多(reduce的个数和输出文件是对应的)。3.数据源本身就包含大量的小文件。小文件问题的影响1.从Hive的角度看,小文件会开很多map,一个map开一个JVM去执行,所以这些任务的初始化,启动,执行会浪费大量的资源,严重影响性能。2.在HDFS中,每个小文件对象约占150byte,如果小文件过多会占用大量内存。这样NameNode内存容量严重制约了集群的扩展。
2022-02-09 14:17:10
2717
转载 Hive执行流程
当你去执行一个HiveQL的时候,其实它里面做了好多东西。现在有一批数据,数据量不算太大,当你对它们执行一个SQL,但是执行起来特别慢,为什么会这么慢?是不是要分析这个SQL它内部做了些什么?怎么去调优?让它跑起来更快呢?这些的前提是你对hive内部的机制非常了解的情况下,才会知道问题的所在。你输入一个sql字符串,那么也就是一串字符串,hive怎么认识这个字符串?它又怎么去运行这个字符串?是不是要去解析它?是不是要检查语法有没有问题?不管是Hive,还是其它SQL的大数据的框架,比如Spark等等,
2022-02-09 10:31:45
1470
转载 Spark Shuffle 中 JVM 内存使用及配置详情
JVM 內存使用架构剖析 Spark 1.6.x 和 Spark 2.x 的 JVM 剖析 Spark 1.6.x 以前 on Yarn 计算内存使用案例 Spark Unified Memory 的运行原理和机制引言Spark 从1.6.x 开始对 JVM 的内存使用作出了一种全新的改变,Spark 1.6.x 以前是基于静态固定的JVM内存使用架构和运行机制,如果你不知道 Spark 到底对 JVM 是怎么使用,你怎么可以很有信心地或者是完全确定地掌握和控制数据的缓存空间呢,所以掌握Spar
2022-02-09 08:32:16
571
转载 Flink Table & SQL: Minibatch、LocalGlobal、Split Distinct、Agg With Filter
总结Flink Table & SQL 流式聚合中的几个优化。MiniBatchLocalGlobalSplit DistinctAgg With FilterMiniBatchMiniBatch优化的核心思想是缓冲输入记录微批处理以减少对状态的访问,进而提升吞吐并减少数据的输出。以如下场景为例,看下开启MiniBatch聚合前后的差异。SELECT key, COUNT(1)FROM TGROUP BY key由上图可知:未开启MiniBatch..
2022-02-08 17:31:03
1166
转载 第一章 Spark 性能调优
大数据性能调优的本质编程的时候发现一个惊人的规律,软件是不存在的!所有编程高手级别的人无论做什么类型的编程,最终思考的都是硬件方面的问题!最终思考都是在一秒、一毫秒、甚至一纳秒到底是如何运行的,并且基于此进行算法实现和性能调优,最后都是回到了硬件!在大数据性能的调优,它的本质是硬件的调优!即基于CPU(计算)、Memory(存储)、IO-Disk/ Network(数据交互)基础上构建算法和性能调优!我们在计算的时候,数据肯定是存储在内存中的。磁盘IO怎么去处理和网络IO怎么去优化。Sp..
2022-02-08 15:54:45
3437
转载 Apache Iceberg的Schema Evolution详解
导语作为构建新一代数据湖的三个中间件Apache Iceberg, Apache Hudi, Delta Lake都支持Schema Evolution,但是三者的支持能力不尽相同,其中Iceberg宣称支持 Full Schema Evolution。本文将详细分析Iceberg 的Full Schema Evolution, 同时捎带对比下和Delta Lake以及Hudi的Schema Evolution的不同。为什么需要Schema Evolution用户的数据随着时间和业务量的增长会需
2022-02-08 09:33:44
2138
转载 Apache Iceberg 中三种操作表的方式
在ApacheIceberg 中有很多种方式可以来创建表,其中就包括使用 Catalog 方式或者实现 org.apache.iceberg.Tables 接口。下面我们来简单介绍如何使用。.使用 Hive catalog从名字就可以看出,Hive catalog 是通过连接 Hive 的 MetaStore,把 Iceberg 的表存储到其中,它的实现类为 org.apache.iceberg.hive.HiveCatalog,下面是通过 sparkContext 中的 hadoopConfi..
2022-02-08 09:31:36
1004
转载 Apache Iceberg特点分析
导言去年4月Databricks在Spark+AI summit上公布了Delta Lake项目,于此同时在Apache社区也有两个非常类似的项目Apache Iceberg和Apache Hudi在锐意开发中,这3个项目不管是在定位还是在功能方面都非常的类似,在大数据发展到现阶段为什么会涌现出这3个类似的项目呢,他们有什么差别呢?本文将从几个方面来介绍为什么我们需要这样一种技术,以及在这3个项目中为何我选择Apache Iceberg。如何定义这类新的技术Delta Lake将其定义为:
2022-02-08 09:25:57
1371
转载 Apache Iceberg快速入门
导言本文主要介绍如何快速的通过Spark访问Iceberg table。Spark通过DataSource和DataFrame API访问Iceberg table,或者进行Catalog相关的操作。由于Spark Data Source V2 API还在持续的演进和修改中,所以Iceberg在不同的Spark版本中的使用方式有所不同。版本对比功能 Spark 2.4 Spark 3.0 基于DataFrame - 读数据 支持 支持 -
2022-02-08 09:22:29
1225
转载 Apache Iceberg 对推荐应用架构的优化及读写流程解析本文
Apache Iceberg应用场景示例:在之前的文章中相信大家已经对Iceberg有了很多了解,Iceberg具有 ACID,隐式分区,partition evolution等功能。那么这些功能在实际的应用场景中会有什么收益呢?我们来看一个大数据应用中比较典型的业务 “广告/信息流推荐服务"。在推荐服务中,业务往往通过join用户的点击、曝光数据来生成正负样本,然后用增量的样本数据比较实时的更新在线模型。在增量样本更新过程中总有延时到达的点击数据因为无法及时join而被当做负样本处理了,所以需要每
2022-02-08 09:15:35
741
转载 MySQL的redo log、undo log、binlog
一、MySQL日志文件类型重做日志(redo log) 回滚日志(undo log) 二进制日志(binlog) 错误日志(errorlog) 慢查询日志(slow query log) 一般查询日志(general log) 中继日志(relay log) 其中,比较重要的包括 redo log 、 undo log 和 binlog。 redo log 是重做日志,提供前滚操作;undo log 是回滚日志,提供回滚操作。二、几种日志的对比2-1、用途 re...
2022-01-29 16:09:26
6344
转载 ClickHouse vs StarRocks选型对比
面向列存的DBMS新的选择Hadoop从诞生已经十三年了,Hadoop的供应商争先恐后的为Hadoop贡献各种开源插件,发明各种的解决方案技术栈,一方面确实帮助很多用户解决了问题,但另一方面因为繁杂的技术栈与高昂的维护成本,Hadoop也渐渐地失去了原本属于他的市场。对于用户来说,一套高性能,简单化,可扩展的数据库产品能够帮助他们解决业务痛点问题。越来越多的人将目光锁定在列存的分布式数据库上。ClickHouse简介ClickHouse是由俄罗斯的第一大搜索引擎Yandex公司开源的列存数据库。
2022-01-29 14:05:25
2883
转载 数仓1.2 |分层| ODS& DWD& DWS& ADS| 行为数仓
数仓分层ODS:Operation Data Store原始数据javaDWD(数据清洗/DWI)data warehouse detail数据明细详情,去除空值,脏数据,超过极限范围的明细解析具体表sqlDWS(宽表-用户行为,轻度聚合)data warehouse service ----->有多少个宽表?多少个字段服务层--留存-转化-GMV-复购率-日活点赞、评论、收藏;轻度聚合对DWD数据库ADS(APP/DAL/DF)-出报表结果Application...
2022-01-28 16:56:31
1065
转载 Clickhouse 时区转换续—时区参数转换
相信大家看我之前记录的这篇文章,参考链接:Clickhouse 时区转换 - 小花田半亩 - 博客园,对Clickhouse 时区转换有了一定的了解,但是如果要完全应用到工作业务中去,你可能还是会遇到问题。????回顾:select toTimeZone(toDateTime('2020-04-06 02:00:00'), 'Asia/Hong_Kong') , toString(toDateTime('2020-04-06 02:00:00'), 'Asia/Hong_..
2022-01-28 10:04:19
4347
转载 Clickhosue 强大的函数,argMin() 和argMax()函数
说实话,我喜欢Clickhouse 的函数,简单操作,功能强大。今天需要给大家介绍两个函数,argMin(),argMax()1.argMax():计算 ‘arg’ 最大值 ‘val’ 价值。 如果有几个不同的值 ‘arg’ 对于最大值 ‘val’,遇到的第一个值是输出。argMin() 与argMax() 的功能正好是相反的,????是Clickhouse官方文档对这个函数的解释,看官应该看知道这个函数是用途了吧。当然上图是argMin() 函数的简单案例,这里我想到的几个业务场景的使用案
2022-01-28 09:54:52
2890
转载 Clickhouse如何实现数据更新
【摘要】 Clickhouse作为一个OLAP数据库,它对事务的支持非常有限。本文主要介绍通过ReplacingMergeTree来实现Clickhouse数据的更新、删除。Clickhouse作为一个OLAP数据库,它对事务的支持非常有限。Clickhouse提供了MUTATION操作(通过ALTER TABLE语句)来实现数据的更新、删除,但这是一种“较重”的操作,它与标准SQL语法中的UPDATE、DELETE不同,是异步执行的,对于批量数据不频繁的更新或删除比较有用,可参考https://alt
2022-01-28 09:46:51
8643
转载 数据湖|Flink + Iceberg 全场景实时数仓的建设实践
整理|路培杰(Flink 社区志愿者)摘要:Apache Flink 是目前大数据领域非常流行的流批统一的计算引擎,数据湖是顺应云时代发展潮流的新型技术架构,以 Iceberg、Hudi、Delta 为代表的解决方案应运而生,Iceberg 目前支持 Flink 通过 DataStream API /Table API 将数据写入 Iceberg 的表,并提供对 Apache Flink 1.11.x 的集成支持。本文由腾讯数据平台部高级工程师苏舒分享,主要介绍腾讯大数据部门基于 Apache Fl
2022-01-27 15:54:21
1758
1
转载 Flink提交运行中常见问题总结,Flink开发问题汇总
Flink开发问题汇总一、flink里面能调用图算法吗?二、Cannot instantiate user function三、本地idea开发flink程序并本地运行读取HDFS文件四、The assigned slot container_e08_1539148828017_15937_01_003564_0 was removed五、java.util.concurrent.TimeoutException: Heartbeat of TaskManager with id contain
2022-01-24 00:50:49
6509
3
转载 flink table & sql(一)table基础概念、环境搭建、source、sink
一、concepts1、表表可以是虚拟(VIEWS)或常规(TABLES)。VIEWS可以从现有Table对象创建,通常是Table API或SQL查询的结果。TABLES描述外部数据,例如文件,数据库表或消息队列。表三部分标识符:目录、数据库、表名。其中,目录、数据库是可选的。tEnv.useCatalog("custom_catalog");tEnv.useDatabase("custom_database");1.1 临时表与永久表表可以是临时的,并与单个Flink会话的生命周期.
2022-01-21 10:16:22
1182
转载 flink table & sql(二)tableAPI
、table api1、Scan, Projection, and Filter(1)filter,isNotNull(),and,lowerCase(),as,count(),avg(),end,startpackage com.flink.sql.environment.tableAPI;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.streaming.api.TimeCha.
2022-01-21 09:37:12
673
转载 HiveQL与SQL区别
1、Hive不支持等值连接 SQL中对两表内联可以写成:select * from dual a,dual b where a.key = b.key; Hive中应为:select * from dual a join dual b on a.key = b.key; 而不是传统的格式:SELECT t1.a1 as c1, t2.b1 as c2FROM t1, t2WHERE t1.a2 = t2.b22、分号字符 分号是SQL语句结束标记,在HiveQL中也是,但是在...
2022-01-19 06:26:40
985
转载 【Flink】状态一致性、端到端的精确一次(ecactly-once)保证
核心提示:当在分布式系统中引入状态时,自然也引入了一致性问题。一致性实际上是正确性级别的另一种说法,也就是说在成功处理故障并恢复之后得到的结果,与没有发生任何故障时得到的结果相比,前者到底有多正确?举例来说,假设要对最近一小时登录的用户计数。在系统经历故障之后,计数结果是多少?如果有偏差,是有漏掉的计数还是重复计数?后端写在前面:我是「云祁」,一枚热爱技术、会写诗的大数据开发猿。昵称来源于王安石诗中一句[ 云之祁祁,或雨于渊 ],甚是喜欢。写博客一方面是对自己学习的一点点总结及记录,另一方面..
2021-12-22 15:18:52
1931
转载 Spark 踩坑记:数据库(Hbase+Mysql)
前言在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值。最近一个实时消费者处理任务,在使用spark streaming进行实时的数据流处理时,我需要将计算好的数据更新到hbase和mysql中,所以本文对spark操作hbase和mysql的内容进行总结,并且对自己踩到的一些坑进行记录。Spark Streaming持久化设计模式DStreams输出操作print:打印driver结点上每个Dstream中的前10个
2021-08-24 15:04:08
554
转载 深入浅出一致性Hash原理,及问题解决
一、前言在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户id与服务器的映射关系会大量失效。一致性hash则利用hash环对其进行了改进。二、一致性Hash概述为了能直观的理解一致性hash原理,这里结合一个简单的例子来讲解,假设有4台服务器,地址为ip1,i
2021-07-30 09:34:51
1248
深入理解Java虚拟机:JVM高级特性与最佳实践].周志明.高清扫描版.pdf
2017-01-09
高性能的socket通讯服务器(完成端口模型--IOCP)
2014-06-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人