- 博客(148)
- 资源 (4)
- 收藏
- 关注
原创 tps 、qps、bps、Bps的含义
一、TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。(业务TPS = CAPS × 每个呼叫平均TPS)TPS是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成...
2019-07-29 11:38:54 13471
原创 mysql 表分区的方式和实现
其中,p_2018 分区用于存储 2018 年的订单数据,p_2019 分区用于存储 2019 年的订单数据,以此类推。组合分区:将多个分区方式结合起来,例如先按照日期范围进行分区,再按照订单状态进行分区。同时,在使用分区时,也需要考虑到分区键的选择、分区数量的控制、分区表的查询优化等问题,以提高数据库的性能和稳定性。MySQL 提供了多种分区方式,包括范围分区、哈希分区、列表分区等。请注意,在使用分区时,需要考虑到分区键的选择、分区数量的控制、分区表的查询优化等问题,以提高数据库的性能和稳定性。
2023-04-03 10:18:24 4473 1
原创 for循环内线程池并发执行任务,等到子线程全部处理完任务,主线程在执行java的实现方式
当计数器减为 0 时,所有子线程的任务都已经执行完毕,主线程可以执行后续代码。在主线程中,调用 CountDownLatch.await() 方法阻塞等待所有子线程的任务执行完毕,直到计数器减为 0 才继续执行后续代码。请注意,在使用自定义线程池时,需要考虑线程安全、并发访问等问题,并在代码中正确处理异常。请注意,在实际应用中,您还需要考虑线程安全、并发访问等问题,并在代码中正确处理异常。请注意,在使用以上方法时,仍然需要考虑线程安全、并发访问等问题,并在代码中正确处理异常。
2023-04-03 10:01:02 5177
原创 调用接口接口未执行完成拒绝调用Java实现
具体来说,您可以创建一个 Semaphore 对象,并将其初始化为允许同时执行的最大线程数。在调用接口前,先尝试获取信号量,如果信号量已经被占用,则表明有其他线程正在执行任务,此时您可以选择等待一段时间再重试,或者直接返回错误信息表示无法调用接口。当任务执行完毕后,释放信号量,以便其他线程可以获取信号量并调用接口。请注意,Semaphore 只能保证线程之间的协作,不能保证线程安全。在使用 Semaphore 时,请确保您的代码正确处理并发访问问题,以避免出现意外错误。
2023-04-03 09:41:40 359
原创 Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
spark windows 运行报错
2022-07-25 19:44:07 10732
原创 MySQL 8报错:The user specified as a definer (‘mysql.infoschema‘@‘localhost‘)
Mysql Error:The user specified as a definer (‘mysql.infoschema’@’localhost’) does not exist
2022-07-12 19:52:55 1136 1
原创 特别好用的时间工具
时间工具 threetenbppackage com.fl;import org.threeten.bp.LocalDate;import org.threeten.bp.format.DateTimeFormatter;/** * @author fl * @date 2022-05-18 * <p> * org.threeten.threetenbp * 特殊的工具 特别适用于时间的处理 时间计算 */public class Test { private
2022-05-18 17:19:35 395
原创 Kafka 是如何保证数据可靠性和一致性
Kafka 是如何保证数据可靠性和一致性1、kafka的可靠性为了保证数据可靠性,https://blog.csdn.net/mengfeichuan2013/article/details/1173551621.1 Topic 分区副本1.2 Producer 往 Broker 发送消息kafka使用了ack机制。1.3 Leader 选举为了保证数据的可靠性,我们最少需要配置一下几个参数:•producer 级别:acks=all(或者 request.required.acks=-1
2022-05-07 09:02:40 1031
原创 零拷贝-Kafka和RokcetMQ高性能底层
1.什么是零拷贝WIKI中对其有如下定义:“Zero-copy” describes computer operations in which the CPU does not perform the task of copying data from one memory area to another.从WIKI的定义中,我们看到“零拷贝”是指计算机操作的过程中,CPU不需要为数据在内存之间的拷贝消耗资源。而它通常是指计算机在网络上发送文件时,不需要将文件内容拷贝到用户空间(User Space)
2022-04-15 11:09:42 237
原创 java stream 操作map根据key或者value排序的实现
java8 使用lambda表达式和Stream APi 实现 list 集合转成map, 根据map的key 排序 和value 排序的实现public class Test02 { public static void main(String[] args) { List<FundBenchMarkInfo> fundBenchMarkList = new ArrayList<>(); fundBenchMarkList.add(new
2022-04-12 16:55:58 5555
原创 flink任务调优日常总结
1. 你是怎么合理的评估 Flink 任务的并行度?Flink 任务并行度合理行一般根据峰值流量进行压测评估,并且根据集群负载情况留一定量的 buffer 资源。⭐ 如果数据源已经存在,则可以直接消费进行测试⭐ 如果数据源不存在,需要自行造压测数据进行测试1.1 对于一个 Flink 任务来说,一般可以按照以下方式进行细粒度设置并行度:⭐ source 并行度配置:以 kafka 为例,source 的并行度一般设置为 kafka 对应的 topic 的分区数⭐ transform(比如 fla
2022-03-15 09:42:35 2805
原创 centos8安装grafana
下载https://grafana.com/docs/grafana/latest/installation/rpm/#2-start-the-server在grafana 的bin 下启动目录./grafana-server start 访问 url http://10.188.120.201:3000/login初始用户名和密码 admin/admin端口默认 3000更改初始密码......
2022-03-14 09:56:43 629
原创 flink savepoint 和 checkpoint对比
flink 设计checkpoint为什么还要设计savepoint?Savepoint 和 Checkpoint 都是使用 Asynchronous Barrier Snapshotting(简称 ABS)算法实现分布式快照的,都可以确保一致性、容错、故障恢复。1.什么是 Checkpoint?Flink Checkpoint 是一种容错恢复机制。这种机制保证了实时程序运行时,即使突然遇到异常也能够进行自我恢复。Checkpoint 对于用户层面,是透明的,用户会感觉程序一直在运行。Flink Ch
2022-03-09 10:17:59 2612
原创 flink处理天级别的开窗出现时区的问题
flink处理天级别的开窗出现时区的问题时区的问题是,在处理数据的时候我们是东八区,要对当前要处理的时间加上8小时,才是符合我们预期的。flink这个没考虑时区问题。1.时间纪元所谓的”时间纪元”就是1970年1月1日0时0分0秒,指的是开始的时间。比如Java类代码:Date date = new Date(0);System.out.println(date);打印出来的结果:Thu Jan 01 08:00:00 CST 1970也是1970年1月1日,实际上时分秒是0点0分0秒,这里
2022-03-07 13:42:30 1729 1
原创 flink读取mysql表中的时间字段error java.time.LocalDateTime cannot be cast to java.sql.Timestamp
版本说明flink 版本 1.13.5mysql 版本 8.0.26操作使用mysql table api 读取mysql8中的一个表,这个表的时间字段类型是datetime,在创建数据源的时候,对应mysql 的时间类型,设置成 datatime,String 都不行,执行都报错。这让我emo好久,找不出问题所在。这应该是mysql的一个bug。具体错误信息Exception in thread "main" java.lang.RuntimeException: Failed to fet
2022-02-21 16:08:04 3749 5
原创 数仓分层设计初步
数仓分层1.ODS、DWD、DWM、DWS、ADS 的含义网上找的两张概念图如下:2.数仓分层设计3、为什么要分层我们对数据进行分层的一个主要原因就是希望在管理数据的时候,能对数据有一个更加清晰的掌控,详细来讲,主要有下面几个原因:清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。数据血缘追踪:简单来讲可以这样理解,我们最终给业务诚信的是一能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的
2022-02-21 10:06:36 174
原创 Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
启动hive 后,查询 show databases; 报错如下:这个异常信息的原因是:Hive的metadata服务未开启导致的。解决办法:进入到Hive的bin目录下,键入命令: ./hive --service metastore &hive的metastore是干嘛的?作用是什么?Metastore作用:客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要
2022-02-15 10:27:22 9437 1
原创 sqoop java.lang.Exception: java.lang.ClassNotFoundException: Class xxx(表名) not found
sqoop 执行如下./sqoop import \--connect jdbc:mysql://10.188.120.201:3306/fl \--username root \--password fl606123 \--table bond_code \--target-dir /sqoop \--delete-target-dir \--fields-terminated-by '\t'报错信息如下:报错原因:class未找到是因为map是本地方式运行,生成的jar包在/t
2022-02-15 09:33:46 788
原创 sqoop的安装和使用
版本说明 目前 sqoop最稳定版本是 1.4.7sqoop1.4.7兼容hadoop2.6以上所有版本下载 sqoophttps://archive.apache.org/dist/sqoop/解压安装增加配置vi /etc/profileexport SPARK_HOME=/usr/local/work/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0 export PATH=$PATH:$SPARK_HOME/bin保存 source /etc/profile
2022-02-14 16:47:12 1309
原创 hive 使用用load inpath导入数据时出现NULL原因解析
为甚会为null 呢?注意两点:建表的时候:这种建表方式 要求文件的数据格式 是 按照一个 tabe 键进行分割。建表语句分隔符是’\t’,’\t’代表的是tab符号。create table snapshot( id bigint, high_price double, low_price double, open_price double )row format delimited fields terminated by '\t';然后执行
2022-02-10 17:32:16 2267
原创 java通过jdbc连接hive
版本说明hadoop 3.2.2hive 版本 3.1.2安装好hive 之后,hive默认的用户名和密码都是空的,所以需要我们设置用户名和密码。参考网上的,按照自定义的方式设置hive 的用户名和密码。1.首先要打一个jar 包,我这里已经打好了,需要可以去下载。2.也可以自己通过代码编译自行打包;package com.quant.flowcalculation.flinkapi.etl.hive;import java.sql.Connection;import java.sql.
2022-02-10 16:21:00 2850 1
原创 The generic type parameters of ‘Tuple2‘ are missing. In many cases lambda methods don‘t provide
想在使用datastream api 开发的时候,对于多个字段开窗的时候,刚开始是逐个排序,但是影响性能。所以想把两个字段一起来排序,就遇到以下问题。Exception in thread "main" org.apache.flink.api.common.functions.InvalidTypesException: The generic type parameters of 'Tuple2' are missing. In many cases lambda methods don't prov
2022-01-10 15:28:57 1819
原创 Flink状态之 ListState 用法
1.flink的基本状态Flink有两种基本的状态:算子状态(Operator State)和键控状态(Keyed State),他们的主要区别就是作用范围不一样,算子状态的作用范围就是限定为算子任务(也就是当前一个分区执行的时候,所有数据来了都能访问到状态)。键控状态中并不是当前分区所有的数据都能访问所有的状态,而是按照keyby之后的key做划分,当前key只能访问自己的状态。1.1 Operator State算子状态顾名思义,状态是和算子进行绑定的,一个算子的状态不能被其他算子所访问到。状态由
2022-01-08 13:35:03 2994
原创 clickhouse mysql引擎 和 MaterializedMySQL引擎的区别
1.mysql引擎MySQL引擎用于将远程的MySQL服务器中的表映射到ClickHouse中,并允许您对表进行INSERT和SELECT查询,以方便您在ClickHouse与MySQL之间进行数据交换MySQL数据库引擎会将对其的查询转换为MySQL语法并发送到MySQL服务器中,因此您可以执行诸如SHOW TABLES或SHOW CREATE TABLE之类的操作。但不能对其执行以下操作:RENAMECREATE TABLEALTER2.MaterializedMySQL引擎(官网说 这个
2022-01-04 10:37:20 1365
原创 flink sql之自定义UDF
三种udf:(SQL里可解释的Function)ScalarFunctionTableFunctionAggregateFunction一、Scalar Functions 标量函数标量函数,是指返回一个值的函数。标量函数是实现将0,1,或者多个标量值转化为一个新值。标量函数的行为就是通过evaluation方法来实现的。evaluation方法必须定义为public,命名为eval。evaluation方法的输入参数类型和返回值类型决定着标量函数的输入参数类型和返回值类型。evaluation方
2021-12-31 16:50:24 1468
原创 flink状态后端之RocksDB
1.什么是RocksDb?RocksDB 是一个以日志合并树( LSM 树)作为索引结构的 KV 存储引擎。当用于在 Flink 中存储 kv 状态时,键由 <Keygroup,Key,Namespace> 的序列化字节串组成,而值由状态的序列化字节组成。每次注册 kv 状态时,它都会映射到列族(column-family)(类似于传统数据库中的表),并将键值对以字节串存储在 RocksDB 中。这意味着每次读写(READ or WRITE)操作都必须对数据进行反序列化或者序列化,与 Flin
2021-12-28 14:48:16 3329 1
原创 RocksDB 概览
一、介绍RocksDB 在Facebook开始是作为各种存储介质上服务器工作负载的存储引擎,最初专注于快速存储(尤其是闪存存储)。它是一个 C++ 库,用于存储键和值,它们是任意大小的字节流。它支持点查找和范围扫描,并提供不同类型的 ACID 保证。在可定制性和自适应性之间取得平衡。RocksDB 具有高度灵活的配置设置,可以进行调整以在各种生产环境中运行,包括 SSD、硬盘、ramfs 或远程存储。它支持各种压缩算法和生产支持和调试的好工具。另一方面,还努力限制旋钮的数量,提供足够好的开箱即用性能,并
2021-12-28 14:02:49 1969
原创 Kibana部署单机Centos7
###/1.Kibana是什么?Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。Elasticsearch、Logstash和Kibana这三个技术就是我们常说的ELK技术栈,可以说这三个技术的组合是大数据领域中一个很巧妙的设计。一种很典型的MVC思想,
2021-12-02 19:04:01 366
原创 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.原因:因为数据库版本太高了而对应的驱动器太低了解决办法:进入到datax/plugin/writer/mysqlwriter/libs把原来低版本的删除,换成mysql-connector-java-8.0.20.jar 即可。...
2021-12-02 16:39:07 857
原创 clickhouse 系统命令介绍
SYSTEM命令RELOAD EMBEDDED DICTIONARIES重新加载所有内置字典,默认是禁用的,总是返回 OK。???? SYSTEM RELOAD EMBEDDED DICTIONARIES;RELOAD DICTIONARIES重载已经被成功加载过的所有字典。默认情况下,字典是延时加载的( dictionaries_lazy_load),不是在服务启动时自动加载,而是在第一次使用dictGet函数或通过 SELECT from tables with ENGINE = Dictio
2021-11-29 16:40:25 1851
原创 flink如何实现内存管理
flink 的内存管理flink是基于jvm实现内存管理的,但是它是自己管理自己的jvm,没有使用jvm的。1、为什么flink要自己管理jvm?说下jvm在大数据上有什么问题?1、Java 对象存储密度低。一个只包含 boolean 属性的对象占用了16个字节内存:对象头占了8个,boolean 属性占了1个,对齐填充占了7个。而实际上只需要一个bit(1/8字节)就够了。2、Full GC 会极大地影响性能,尤其是为了处理更大数据而开了很大内存空间的JVM来说,GC 会达到秒级甚至分钟级。3
2021-11-28 19:48:23 765
原创 ClickHouse 异常问题记录
1.插入报错ClickHouse exception, code: 6, host: xxx.xx.xx.28, port: 8123; Code: 6, e.displayText() = DB::Exception: Cannot parse string '12345 ' as Int64: syntax error at begin of string. Note: there are toInt64OrZero and toInt64OrNull functions, which returns
2021-11-26 16:29:21 7545 1
原创 mysq查询all和 any的用法
AllAnyany表示有任何一个满足就返回true,all表示全部都满足才返回true**感觉这句很清楚比如select * from student where 班级=’01’ and age > all (select age from student where 班级=’02’);就是说,查询出01班中,年龄大于 02班所有人的同学相当于select * from student where 班级=’01’ and age > (select max(age) fro
2021-11-17 18:38:28 198
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人