自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(210)
  • 资源 (2)
  • 收藏
  • 关注

原创 【实战-01】flink cdc 实时数据同步利器

对很多初入门的人来说是无法理解cdc到底是什么个东西。有这样一个需求,比如在mysql数据库中存在很多数据,但是公司要把mysql中的数据同步到数据仓库(starrocks), 数据仓库你可以理解为存储了各种各样来自不同数据库中表。数据的同步目前对mysql来说比较常见是方式是使用:datax 和 canal配合, 为什么需要这两个框架配合呢?因为datax不支持实时的同步, datax只能定义一个范围去同步,而且同步结束后程序就结束了。

2022-12-21 17:17:25 6812

原创 十三.Elasticsearch 分析器-analyzers

目录摘要:一:认识analyzers三大组件1.Character filters (字符过滤器)2.Tokenizer (分词器)3.Token filters (token过滤器)二:各种分析器Analyzer 介绍2.1Standard Analyzer(标准分析器) 2.11拓展标准分析器的语法2.12自定义分析器的语法2.2Sim...

2019-09-26 17:35:01 1329

原创 二.elasticsearch 为什么合并segment

目录1:优化所需要的空间2:为什么合并segment可以达到优化效果3:优化的时机1:优化所需要的空间segment优化是需要将将多个segment合并成,以减少segment的数量,在新的segment合并完成之前旧的较小的segment是不会删除的,比如说此时你的总磁盘大小是10T ,segment已经占用了7T这个时候进行合并很可能会出问题,导致磁盘不够用,这个问题...

2019-05-28 15:22:15 2980 1

原创 java获取elasticsearch所有的数据

注意:下面的代码是用的java-high客户端在贴出程序之前先提出几个问题,首先在搜索引擎中任何时候涉及到批量数据处理的时候,都不可能在一次请求中获取到所有的数据,这样是为了节省内存,而且全部拿到也不现实,一般都是分页获取的,也就是说先给你展示,下一页的话通过你的点击会从上次展示的位置往后获取数据,而这个位置你可以理解为位置指针。就这样循环获取循环请求才能真正的将数据全部拿到。下面的程序...

2019-03-14 17:47:08 11532 7

原创 centos7 linux网卡配置

TYPE="Ethernet"BOOTPROTO="static"//意思是使用静态ip而不是动态分配DEFROUTE="yes"PEERDNS="yes"PEERROUTES="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFRO

2017-11-24 11:21:33 1058

原创 java volatile

需要注意的是,尽管 volatile 保证了每次读取的都是最新的值,并且每次写入都会立即反映到主内存中,但它并不能保证加一操作的原子性。这意味着如果有多个线程同时对这个 volatile int 变量执行加一操作,它们可能会读取到相同的旧值,并在此基础上进行加一,导致最终的结果比预期的要小。如果需要确保加一操作的原子性,应该使用原子类(如 AtomicInteger)中的 incrementAndGet() 方法,或者使用 synchronized 关键字或其他锁机制来同步对这个变量的访问。

2024-03-19 15:46:13 225 1

原创 【shell-14】java获取shell设置的环境变量

在底层框架研发中, 框架启动脚本,在调用核心入口类之前需要先获取以及解析环境变量,然后解析到的环境变量可能想要在框架启动类中做info日志输出。

2024-03-13 18:09:50 359 1

原创 【shell-13】shell解析配置文件(正则)

shell 正则解析配置文件 ,代码适合在大型框架性应用中使用,稳定性经过我们的验证。

2024-03-12 10:49:47 263

原创 【shell-12】find查找目录所有路径,循环输出

read 命令用于从标准输入(stdin)读取一行数据,并根据定界符(delimiter)分割当前行数据,将分割后的数据赋值给一个或多个变量, 默认的界定符 \n, 可通过参数-d指定界定符。- 想要识别为换行符需要语法格式为: $‘ASCII转义字符’ ,例:$‘\n’, $'\t’等。意思是不输出表面的字符串样式,而是按照转义字符处理。- 在单引号字符串中,\n 会被当作普通字符。shell识别转义字符。

2024-03-11 16:35:10 306

原创 【shell-11】获取当前执行脚本的路径

本代码在框架开发比较有用,比如别人安装了你开发的东西,你的启动脚本都在自己的某个 bin目录下,但是使用者可能ln -s /…/…/bin/start_demo.sh /home/张三/start.sh 建立了一个软连接,因此有时候我们可能需要获取真实bin路径。

2024-03-11 12:15:48 441

原创 java空字符和空的区别

ASCII 编码表,中前三十个左右都是控制字符,控制字符的意思是可以实现一些控制,而不仅仅是表面人眼看到的字符的样子。unicode 表示方式是:\u0000 八进制表示方式是\000 十六进制表示方式是\x00。空字符:是一个不可见的字符,再控制台打印的时候它是不存在的,但是物理意义上是存在的。比如图中十进制10 表示换行。请找到对应的行,我们来解读。\u0000: 指的是空字符。“” : 表示空字符串。

2024-03-08 15:23:58 428

原创 一.jwt token 前后端的逻辑

jwt token 前后端的交互逻辑,此部分只描述了一些交互逻辑,不涉及到真实应用的开发。

2024-03-04 12:17:33 522

原创 【实战-08】 flink自定义Map中的变量的行为

则当前线程的valueState是和某一个key绑定的,符合flink预期行为,但是ArrayList以及其它你定义的变量则不做保证。这说明了,keBy后的逻辑,ArrayList不会按照预期的行为执行。自定义Map或者别的算子的时候,有时候需要定义一些类变量,在flink内部高并发的情况下需要正确理解这些便令的行为。keyBy之后,理论上相同key的会在map中用同样的处理逻辑,我们的预期行为是输出:bb,cc,dd。但是用ArrayList实现的逻辑最终输出却是:bb,bc,cc,dd。

2024-02-26 12:22:38 347

原创 git基础

分支分为三种:master dev feature三种master和dev分支是项目管理人员创建的,不是开发人员创建的。开发人员不要在 master和dev分支上做任何修改。开发人员牢记一点,你只能在你自己创建的分支上写代码,你的分支基于dev分支手动创建的。

2024-02-23 12:27:25 1320

原创 【kafka-01数据保留时间设置】

某天突然发现我的kafka中group_id消费记录不见了,特地查了下咋回事。众所周知新版本的kafka group_id消费的offset记录已经不存储在zookeeper上了,而是存储在__consumer_offsets 这个kafka内部自己管理的topic中,这个topic有50个分区。毫无疑问估计是group_id offset存储也应该是有时间过期值的,于是专门查了查。需要两个参数结合,且最好配置的时间是一样的,下面是例子。

2024-01-30 20:03:41 535

原创 【shell-10】shell实现的各种kafka脚本

因为经常要用kafka环境参与测试,所以写了不少脚本。在很多时候可以大大提高测试的效率。topic数据传输【file数据录入到topic,topic数据下载到本地文件】此文件是个额外的日志文件主要用于打印日志,该文件会被下面的shell文件引用。topic信息查看【topic列表,topic groupid 消费情况】脚本中做了各种检查,日志的输出做了颜色区分,用起来没啥问题。topic的管理【创建,删除】

2024-01-26 12:07:21 1849

原创 【shell-09】 shell控制台颜色输出

分析->这里的 \012 意思就是12这个数字是是实现做控制的,\0作为控制标志位,指的就是八进制,\012 用八进制实现的控制,实际上转成十进制就是->10 找到下图中,10对应的就是**\n**, 同理\x也是控制位标志符,指的是用十六进制, 10 的八进制是12,十六进制是 A。分析:echo -e 的意思:如果字符串中出现某些特定的字符组合(转义字符),echo会将这些字符组合解释为特殊的含义,而不是将其作为普通文本输出。其中有一个字符是控制终端颜色的,十进制就是。

2024-01-23 19:45:51 405

原创 【shell-09】shell 属性传递问题

export 命令用于将 shell 变量输出为环境变量,或者将 shell 函数输出为环境变量。以下是 export 命令的参数及其详解和举例:-f:指向函数。这个参数用于将一个 shell 函数输出为环境变量。当使用这个参数时,函数会被导出为环境变量,使得它可以被子进程调用。上述代码将 my_function 函数导出为环境变量,使其可以在其他 shell 脚本或子进程中被调用。-n :删除变量的导出属性。这个参数用于删除一个环境变量的导出属性,使得它不再被子shell进程继承。bash。

2024-01-22 19:48:10 361

原创 SQL-01求连续七天登陆的用户

【代码】SQL-01求连续七天登陆的用户。

2024-01-17 11:36:00 636

原创 21. python __init__.py 文件的行为

from aaa.F import Cat 改成 from F import Cat 则print只会打印一次。我在调试代码的时候,发现上面的print打印了两次,如果将图片中的。.py 都会执行一次,顺序依次为:aaa->bbb->ccc。这个特性十分重要,一不小心容易重复打印。则用 ‘.’ 分割的每个包中的。

2023-12-14 18:18:35 84

原创 [Django-05 ]自定义sql查询

settings.py 设置数据库自定义sql查询这里在一些多表关联的时候是特别特别有用的,也是实际开发中不可避免的知识点with 写法cursor.execute("SELECT * FROM app_grade WHERE grade_name='二班'")print(row)普通写法cursor.execute("SELECT * FROM app_grade WHERE grade_name='二班'")

2023-12-13 18:30:28 421

原创 【Django-03】模型常用的增删改查

返回符合要求的一条数据,只返回一条,当未找到数据或者是返回的数据超过一条都会抛出异常,因此需要做异常捕捉处理。指定返回的列,相当于 select grade_name create_time from student.逻辑很简单:先查出来数据,再对查出来的对象修改之后再保存进去即可。表示查询集,是从数据库中获取到的Model集合,集合中每个元素都是我们的Model对象。返回的对象包含的数据类型是 指定表列的字典dict结构,所以代码中取值略有不同。一些基础的组合是可以链式调用的,不必那么死板。

2023-12-13 12:25:02 221

原创 [Django-04]一对一,一对多

*************************************** 从查主,找到 “一” *************************************************************************************** 主查从,找到"多" ************************************************OneToOneField(),ForeignKey() 的参数如下。

2023-12-13 12:23:35 262

原创 【shell-05】之读取控制台用户输入

代码解读:“exit 0” 是一个常见的Shell命令,它表示在命令执行成功后退出。数字0在Shell中通常代表成功,因此"exit 0"表示退出并返回成功状态。根据用户不同的输入执行不通的逻辑,要求当用户输入完成,点击键盘Enter按键的时候读取用户的输入并做出逻辑判断。

2023-12-07 14:42:58 377

原创 【Django-02】 Model模型和模型描述对象Meta

就是对象的意思,底层一个Model对应一张表,而Meta是Model的内部类,是用来描述Model和数据库表的相关元数据信息,比如主键,排序,unique_key 的。VooleanField: true/false 数据库存的是数字,模型映射为True/False。DateTimeField: 日期时间【2023-10-01 23:10:33】TimeField:对应数据库Time [23:12:10]db_table: 值类型字符串->对应生成的数据库表名。TextField: 对应数据库text。

2023-11-21 16:07:18 483

原创 【Django-01】 视图函数和视图类

读者不需要看其他部分,只需要知道视图函数接收的是HttpRequest对象。method: 表示请求的方法,为str类型,值为POST, GET。META: 字典,HTTP 头信息,比如agent,ip等。encoding:数据的编码格式,默认utf-8。COOKIES:字典 所有cookie对象。GET: 字典,包含get所有参数。POST:字典,POST所有参数。FILES:字典,上传文件的信息。session:字典 表示会话。path:路径,不包含域名。user:当前登录用户。

2023-11-21 14:27:52 598

原创 【实战-09】flink DataStream 如何实现去重

假设我们有一批订单数据实时接入kafka, flink需要对订单数据做处理,值得注意的是订单数据 要求绝对不可以重复处理。考虑到订单数据上报到kafka的时候存在重复上报的可能性,因此需要我们flink处理的时候 避免进行重复处理。在flinksql 中我们有去重的方式,请参考flinksql 去重。但是我们本小结来讨论DataStream Api如何去重。

2023-11-09 15:59:08 725 1

原创 【实战-08】flink 消费kafka自定义序列化

/ .setStartingOffsets(OffsetsInitializer.committedOffsets(OffsetResetStrategy.EARLIEST))//【groupid 存在offset 则从offset消费,否则从最早开始消费】// .setStartingOffsets(OffsetsInitializer.latest())//【无论如何都从最新开始消费】*自定义kafka反序列化。//下面是main主函数。

2023-11-06 18:35:41 623

原创 【实战-07】flink 自定义Trigger 实现count 和timeout

背景加入我们需要基于processTime 处理数据,使用5 分钟的滑动窗口。伪代码如下window(TumblingProcessingTimeWindows.of(Time.minites(10))) .process(new ProcessWindowFunction<Tuple2<String, Long>, String, String, TimeWindow>() { @Override

2023-10-08 19:57:56 288 1

原创 1. python 解析xml

注意find只能查找一个node, 要想获得所有搜索结果可以用findAll(), 用 ‘’/'分割搜索路径, './ ’ 表示当前节点路径。

2023-09-26 17:15:19 190

转载 centos7 配置gitlab

可去选择合适的版本https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

2023-09-25 11:04:23 53

原创 2. python3 zip压缩文件

python3 zipfile 压缩文件 文件压缩

2023-09-18 17:09:51 96

原创 [Django-1] 快速建立项目

object relation model. 站在我自己的立场,我个人其实不太喜欢用框架去查询数据库,自己定义python 对象,去查询数据库,对数据库的连接做个封装,然后数据库查出来的数据 手动封装为python 对象,最简单了。项目是程序的第一入口,创建项目之后会有基础的setting配置文件,以及执行入口manager.py文件,这是自动生成的。每一个app都应该有自己的url.py不过和项目中的urls.py不同,其他的都要开发者手动建立,唯一项目的urls.py是自动生成的。

2023-09-14 16:03:21 284

原创 spark6. 如何设置spark 日志

本文只讲解再yarn 模式下的日志配置。

2023-09-13 16:04:19 894

原创 5. spark 参数问题

命令行传递参数,有一些快捷方式,比如 --driver-memory 类似的参数, 其实这只是对特别常用的参数做了额外的精简化, 除此之外还有另一种最底层的传递方式那就是 --conf k=v。支持的参数可以在本文最上方的连接处找到。动态加载参数,意思就是通过命令行动态的为程序设置运行参数,这也是最为灵活的一种。也是开发中最常见的,一般需要以下两个步骤。, 对于一常用的参数可以放在配置文件,对于一些个性化参数则通过 命令行传递比较好。注意我的集群用的是9000端口,你可能用的是8020。

2023-09-11 15:13:11 333 2

原创 【实战-06】正确设置flink参数,彻底站起来

flink官网核心参数flink tablesql 参数所谓的参数就是控制程序的执行行为的, 参数分为动态传参(启动程序在cmd传入)程序代码设置读取默认配置文件(flink-conf.yml)上文讲的是代码设置, 其实参数底层解析的就是截图中的类, 可以看到根据参数的行为flink内部用不通的类去解析,这些类我们也可以直接拿来修改参数, 这就是本文的意义。

2023-09-06 11:09:48 583

原创 【实战-05】 flinksql look up join

look up join 能做什么?不饶关子直接说答案, look up join 就是 广播。重要是事情说三遍,广播。flinksql中的look up join 就类似于flinks flink Datastream api中的广播的概念,但是又不完全相同,对于初次访问的数据会加入缓存, 一定时间未访问到的则会从缓存中去除。而广播则是直接广播到每个exxcotor.比如我们有一张订单表orders, 那么假设我们在进行flink计算的时候想获取该订单的相关的用户数据。

2023-09-04 16:52:28 898

原创 [实战-10]FlinkSql 如何实现数据去重?

很多时候flink消费上游kafka的数据是有重复的,因此有时候我们想数据在落盘之前进行去重,这在实际开发中具有广泛的应用场景,此处不说详细代码,只粘贴相应的flinksql。

2023-08-29 16:36:38 1291 3

原创 spark.07 yarn 开启动态资源分配

将spark安装包中的spark--yarn-shuffle.jar 放在集群中每个节点的classpath中。不需要指定并发,只需要指定内存, 程序在运行后会动态调节并发数量,我们只需要设置一个上线即可。yarn-site.xml 增加。准备shuffer jar。

2023-08-16 18:10:44 485

原创 [实战-04] 监控kafka一分钟没数据就报警

我们有一个topic是游戏数据,正常来说几秒钟就会有数据过来,为了监控上游数据接口是不是有问题,可通过监控kafa数据在指定时间内是否有数据产生,没有数据则进行告警。本代码是伪代码,读者可自行修改成自己想要 的。借助状态ValueState 和定时器,这要求必须是process方法,且必须是keyByStream.

2023-07-03 14:14:07 233

spark解析csv文件,存入数据库

csv文件用java太麻烦了,spark很简单,简单到怀疑人生

2017-11-24

java 配置porperties简单易懂

对java读取配置项不懂得可以看看,如果你懂想深入了解就不用看了我这个适合出入门人看!

2017-11-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除