- 博客(139)
- 收藏
- 关注
原创 【Linux-crontab】Linux 系统 crontab 执行定时任务
crond 是 Linux 下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与 windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程,crond 进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务、crontab命令Linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。
2024-02-02 10:25:53
1369
2
原创 【Linux-常用命令】Linux 常用命令大全
无论是后端程序员还是前端程序员,一定避免不了和Linux系统打交道。可能是自己在学习的时候搭建虚拟机环境,也可能是在公司测试环境进行服务的维护,甚至可能去线上服务器进行生产问题的排查。这就要求我们要熟练使用Linux命令行,相关的常用命令很可能不经常使用就忘了,这里我收集了一些常用命令以便需要时查看,欢迎作补充。(这里的提到操作都默认以CentOS系统为基础)
2024-02-02 09:59:33
1477
2
原创 【JDBC-Mysql】使用 JDBC 操作 Mysql 数据库
【JDBC-Mysql】使用JDBC操作Mysql数据库/定义Driver//定义getConnection方法获取Connectiontry {//注册驱动//获取Connection//关闭连接if (conn!if (rs!//关闭连接if (conn!
2024-02-01 16:48:15
872
2
原创 都 2024 年了!程序员的到底出路在哪里!?继续卷技术?晋升管理层?还是转业?
除了上述框架,大数据生态系统还包括其他技术和工具,如NoSQL数据库(如MongoDB、Cassandra)、数据仓库(如Amazon Redshift、Google BigQuery)、数据流处理工具(如Kafka、Storm)以及数据可视化工具(如Tableau、PowerBI)等。考公务员是程序员多元化职业发展路径中的一种选择,它提供了稳定的工作环境和相对固定的工作时间,但同时也可能意味着更多的规范性和程序性工作。如果决定走这条路,就需要做好充分的准备和调整,以适应新的工作环境和职责。
2024-02-01 16:45:18
7704
2
原创 【Java-JDK】JDK 的安装与环境变量的配置:Windows & Linux
目录要与自己安装的目录保持一致。【Java-JDK】JDK 的安装与环境变量的配置:Windows & Linux
2024-01-30 20:42:48
5335
3
原创 【Hive-基础】HiveSql 连接查询【inner join、left join、right join、full join、union all、union】
返回能匹配上的匹配结果,没匹配上的显示 NULL;,返回能匹配上的匹配结果,没匹配上的显示 NULL;应用:取出表1中存在,表2中不存在的项。1、连接 2 个表,取出公共部分。4、连接前注意去重,提高效率。3、on后连接条件键值唯一。right join:以。left join:以。并列将2个表的信息展示。5、inner可省略。1、字段名称必须一致。2、字段顺序必须一致。
2024-01-30 20:38:51
839
1
原创 【ClickHouse-Sql】ClickHouse 类型转换用法介绍
Clickhouse 作为一个专用于大数据分析的数据库,数据类型转换是其数据处理功能非常重要的一部分。类型转换可以将一个数据类型转换为另一个数据类型,以便于进行统计、计算和分析。在数据处理中,类型转换的准确性和效率决定了大数据分析的结果是否准确和实时,因此,类型转换是非常重要的。Clickhouse 作为一个专用于大数据分析的数据库,类型转换功能非常重要。在实际应用中,需要根据具体的业务场景选择合适的类型转换函数,以提高数据转换的效率与准确性。
2024-01-29 16:26:54
3842
原创 【ClickHouse-Sql】ClickHouse 常用 Sql(创建集群表、删除分区、条件删除、随机分群、修改表名、计算数据存储量等)
ClickHouse 有本地表,集群表的概念,本地表就是每台节点的表(存储整个集群数据的一部分),集群表可以看成是一个视图。(2)集群表(cluster)(1)本地表(local)【ClickHouse-Sql】ClickHouse 常用 Sql(创建集群表、删除分区、条件删除、随机分群、修改表名、计算数据存储量等)
2024-01-29 16:26:35
1187
原创 【Kafka-Consumer分区分配策略】Kafka 消费者组三种分区分配策略 Range Assignor、RoundRobin Assignor、Sticky Assignor 详细解析
1、一个 consumer group 中有多个 consumer 组成,一个 topic 有多个 partition 组成,现在的问题是,到底由哪个 consumer 来消费哪个 partition 的数据。2、Kafka有四种主流的分区分配策略: Range、RoundRobin、Sticky、CooperativeSticky。可以通过配置参数,修改分区的分配策略。默认策略是 Range + CooperativeSticky。Kafka 可以同时使用多个分区分配策略。
2024-01-27 09:45:00
2108
原创 【ClickHouse-Sql】ClickHouse 时间日期函数
【代码】【ClickHouse-Sql】ClickHouse 时间日期函数。
2024-01-27 09:30:00
3324
原创 【Python-PyCharm】PyCharm 安装并创建项目(保姆级教程)
添加PyCharm文件夹里的bin目录到PATH环境变量里面,添加完成后,可以通过使用系统命令"pycharm"直接启动PyCharm软件。PyCharm专业版是功能最丰富的,与社区版相比,PYcharm专业版增加了Web开发、Python We框架、Python分析器、远程开发、支持数据库与SQL等更多高级功能。(1)启动 PyCharm,初次启动会弹出“导入PyCharm设置”,选择不导入。PyCharm教育版的功能虽然比专业版会少一些,但与社区版相比,更加支持学校的教学工作。(6)点击Create。
2024-01-26 09:00:00
8869
原创 【Python-安装】Windows 环境中安装 Python 并配置环境变量
【Python-安装】Windows 环境中安装 Python 并配置环境变量7、检查环境变量(如果没有在安装时自动生成,那么需要自己配置,配置过程同样如下)5、在 cmd 的任意路径输入 python,显示下面这类界面表示。4、等待进度条走完,就安装成功了,点。2、下载完成后,双击安装。,下载 Python。「环境变量配置完成」6、可以简单玩一下。
2024-01-26 08:45:00
586
原创 【Flink-1.17-教程】-【五】Flink 中的时间和窗口(2)时间语义
1、Event Time的优势是结果的可预测性,缺点是缓存较大,增加了延迟,且调试和定位问题更复杂。2、只依赖当前执行机器的系统时钟,不需要依赖Watermark,无需缓存。是实现起来非常简单,也是延迟最小的一种时间语义;但是,在分布式和异步的环境下,不能提供确定性,因为它容易受到事件到达系统的速度(例如从消息队列)、事件在系统内操作流动的速度以及中断的影响。3、通常是Event Time和之间的一个折中方案。4、在 Flink 流处理真实场景中,大部分的业务需求都会使用事件时间语义。
2024-01-25 08:58:01
1034
原创 【Flink-1.17-教程】-【五】Flink 中的时间和窗口(1)窗口(Window)
在批处理统计中,我们可以等待一批数据都到齐后,统一处理。但是在实时处理统计中,我们是来一条就得处理一条,那么我们怎么统计最近一段时间内的数据呢?引入“窗口”。所谓的“窗口”,一般就是划定的一段时间范围,也就是“时间窗”;对在这范围内的数据进行处理,就是所谓的窗口计算。所以窗口和时间往往是分不开的。接下来我们就深入了解一下 Flink 中的时间语义和窗口的应用。
2024-01-25 08:57:30
1257
原创 【Flink-1.17-教程】-【四】Flink DataStream API(7)输出算子(Sink)
如果我们想将数据存储到我们自己的存储设备中,而 Flink 并没有提供可以直接使用的连接器,就只能自定义 Sink 进行输出了。与 Source 类似,Flink 为我们提供了通用的 SinkFunction 接口和对应的 RichSinkDunction 抽象类,只要实现它,通过简单地调用 DataStream 的 .addSink() 方法就可以自定义写入任何外部存储。
2024-01-24 10:14:52
1529
原创 【Flink-1.17-教程】-【四】Flink DataStream API(6)转换算子(Transformation)【合流】
在实际应用中,我们经常会遇到来源不同的多条流,需要将它们的数据进行联合处理。所以 Flink 中合流的操作会更加普遍,对应的 API 也更加丰富。首先基于一条 DataStream 调用 .connect() 方法,传入另外一条 DataStream 作为参数,将两条流连接起来,得到一个 ConnectedStreams;然后再调用同处理方法得到 DataStream。这里可以的调用的同处理方法有 .map() / .flatMap(),以及 .process() 方法。
2024-01-24 10:14:24
866
原创 【Flink-1.17-教程】-【四】Flink DataStream API(5)转换算子(Transformation)【分流】
所谓“分流”,就是将一条数据流拆分成完全独立的两条、甚至多条流。也就是基于一个 DataStream,定义一些筛选条件,将符合条件的数据拣选出来放到对应的流里。关于处理函数中侧输出流的用法,我们已经在 flatmap 课节做了详细介绍。简单来说,只需要调用上下文 ctx 的 .output() 方法,就可以输出任意类型的数据了。而侧输出流的标记和提取,都离不开一个“输出标签”(OutputTag),指定了侧输出流的 id 和类型。
2024-01-23 15:09:48
670
原创 【Flink-1.17-教程】-【四】Flink DataStream API(4)转换算子(Transformation)【物理分区算子(Physical Partitioning)】
1、shuffle 随机分区: random.nextInt(下游算子并行度)。2、rebalance 轮询:nextChannelToSendTo = (nextChannelToSendTo + 1) % 下游算子并行度,如果是数据源倾斜的场景, source 后,调用 rebalance,就可以解决数据源的数据倾斜。3、rescale 缩放:实现轮询,局部组队,比 rebalance 更高效。4、broadcast 广播:发送给下游所有的子任务。5、global 全局:全部发往第一个子
2024-01-23 12:23:21
1131
原创 【Flink-1.17-教程】-【四】Flink DataStream API(3)转换算子(Transformation)【用户自定义函数(UDF)】
用户自定义函数(UDF),即用户可以根据自身需求,重新实现算子的逻辑。函数类匿名函数富函数类。Flink 暴露了所有 UDF 函数的接口,具体实现方式为接口或者抽象类,例如 MapFunction、FilterFunction、ReduceFunction 等。所以用户可以自定义一个函数类,实现对应的接口。“富函数类”也是 DataStream API 提供的一个函数类的接口,所有的 Flink 函数类都有其 Rich 版 本 。 富函数类一般是以抽象类的形式出现的。例如:RichMapFunction 、
2024-01-22 20:44:49
721
原创 【Flink-1.17-教程】-【四】Flink DataStream API(2)转换算子(Transformation)【基本转换算子、聚合算子】
全面讲解各个算子:map / filter / flatMap、keyBy、sum / min / max / minBy / maxBy、reduce。全面讲解各个算子的难点要点。数据源读入数据之后,我们就可以使用各种转换算子,将一个或多个 DataStream 转换为新的 DataStream。我们只需要基于 DataStream 调用 map() 方法就可以进行转换处理。方法需要传入的参数是接口 MapFunction 的实现;返回值类型还是 DataStream,不过泛型(流中的元素类型)可能改变。
2024-01-22 20:44:27
1236
1
原创 【Flink-1.17-教程】-【四】Flink DataStream API(1)源算子(Source)
DataStream API 是 Flink 的核心层 API。一个 Flink 程序,其实就是对 DataStream 的各种转换。Flink 可以从各种来源获取数据,然后构建 DataStream 进行转换处理。一般将数据的输入来源称为数据源(data source),而读取数据的算子就是源算子(source operator)。所以,source 就是我们整个处理程序的输入端。Flink 直接提供了很多预实现的接口,此外还有很多外部连接工具也帮我们实现了对应的 Source,通常情况下足以应对我们的实
2024-01-21 20:19:01
1700
1
原创 【MySQL-Bug】MySQL 出现 You can‘t specify target table for update in FROM clause 错误的解决方法
在 MySQL 中,可能会遇到 You can't specify target table '表名' for update in FROM clause 这样的错误它的意思是说,不能在同一语句中,先 select 出同一表中的某些值,再 update 这个表,即不能依据某字段值做判断再来更新某字段的值。解决方法:select 的结果再通过一个中间表 select 多一次,就可以避免这个错误。
2024-01-19 15:47:32
3573
原创 【Hive-基础】表数据的导出、导入(HDFS、本地)
并且后边跟 select 语句时,select 之前不能加 as,加了 as 会报错,一定要跟下面的 as select 区分开。export 和 import 主要用于两个 Hadoop 平台集群之间 Hive 表迁移,不能直接导出的本地。:表示从本地加载数据到hive表;(overwrite会把之前的数据文件删除,在把新的数据文件传上去)插入select的表,的字段、类型要匹配,否则报错。:表示覆盖表中已有数据,否则表示追加。(3)加载数据覆盖表中已有的数据。:表示加载数据的路径。
2024-01-19 15:28:24
1488
原创 【Flink-CDC】Flink CDC 介绍和原理概述
CDC是(Change Data Capture 变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据 或 数据表的插入INSERT、更新UPDATE、删除DELETE等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。经过以上对比,我们可以发现基于日志 CDC 有以下这几种优势:能够捕获所有数据的变化,捕获完整的变更记录。在异地容灾,数据备份等场景中得到广泛应用,如果是基于查询的 CDC 有可能导致两次查询的中间一部分数据丢失每次 DML 操作均
2024-01-19 15:03:12
1844
原创 【Flink-1.17-教程】-【三】Flink 运行架构、Flink 核心概念【并行度、算子链、任务槽】、Flink 作业提交流程
1、提交 job,执行运行程序的脚本(flink run)后,会生启动一个客户端进程。2、客户端进程中会解析一些参数,如:-c(全类名)3、生成逻辑流图(StreamGraph),通过 Operator Chain 对算子优化后,生成作业流图(JobGraph)4、对解析完成的参数进行封装,然后通过内部的 Actor 通信系统(基于 RPC)提交、或取消(flink cancel)、或更新,将任务发送给 JobManager。5、JobManager 自身也会有一个 Actor 通信系统
2024-01-19 11:02:37
1525
原创 【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 运行模式
YARN 上部署的过程是:客户端把 Flink 应用提交给 Yarn 的 ResourceManager,Yarn 的 ResourceManager 会 向 Yarn 的 NodeManager 申 请 容 器 。 在 这 些 容 器 上 , Flink 会 部 署 JobManager 和 TaskManager 的实例,从而启动集群。Flink 会根据运行在 JobManger 上的作业所需要的 Slot 数量动态分配 TaskManager 资源。
2024-01-16 11:21:33
3957
原创 【Flink-1.17-教程】-【一】Flink概述、Flink快速入门
对于Flink而言,流才是整个处理逻辑的底层核心,所以流批统一之后的 DataStream API 更加强大,可以直接处理批处理和流处理的所有场景。下面我们就针对不同类型的输入数据源,用具体的代码来实现流处理。Flink 还具有一个类型提取系统,可以分析函数的输入和返回类型,自动获取类型信息,从而获得对应的序列化器和反序列化器。但是,由于 Java 中`泛型擦除`的存在,在某些特殊情况下(比如 Lambda 表达式中),自动提取的信息是不够精细的——只告诉 Flink 当前的元素由“船头、船身、船尾”构
2024-01-15 17:37:11
1573
2
原创 【Kafka-3.x-教程】-【七】Kafka 生产调优、Kafka 压力测试
那么当生产者向一个未创建的主题发送消息时,会自动创建一个分区数为 num.partitions(默认值为1)、副本因子为 default.replication.factor(默认值为 1)的主题。:默认是 none,不压缩,但是也可以使用 lz4 压缩,效率还是不错的,压缩之后可以减小数据量,提升吞吐量,但是会加大 producer 端的 CPU 开销。服务器台数 = 2 * (生产者峰值生产速率 * 副本 / 100) + 1 = 2 * (20m/s * 2 / 100) + 1 = 3 台。
2024-01-10 16:36:18
1530
原创 【Kafka-3.x-教程】-【六】Kafka 外部系统集成 【Flume、Flink、SpringBoot、Spark】
(3)在 main 下创建 scala 文件夹,并右键 Mark Directory as Sources Root -> 在 scala 下创建包名为 com.test.spark。可以用于 Kafka 的生产者,也可以用于 SpringBoot 的消费者。可以用于 Kafka 的生产者,也可以用于Flume 的消费者。Flink 是一个在大数据开发中非常常用的组件。可以用于 Kafka 的生产者,也可以用于Flink 的消费者。可以用于 Kafka 的生产者,也可以用于Spark 的消费者。
2024-01-10 16:36:06
1460
2
原创 【Kafka-3.x-教程】-【五】Kafka-监控-Eagle
Kafka-Eagle 框架可以监控 Kafka 集群的整体运行情况,在生产环境中经常使用。1)MySQL 环境准备Kafka-Eagle 的安装依赖于 MySQL,MySQL 主要用来存储可视化展示的数据。如果集群中之前安装过 MySQL 可以跨过该步。
2024-01-10 16:35:48
1370
原创 【Kafka-3.x-教程】-【四】Kafka-消费者-Consumer
1、一个消费者可以消费多个分区的数据。消费者之间是完全独立的。2、每个分区的数据只能由消费者组中的一个消费者进行消费。3、Kafka 的 offset(偏移量)负责记录消费者或消费者组消费数据的位置。4、新版本的 Kafka 由 __consumer_offsets 这个主题来记录 offset。老版本是存储在 ZK 的 consumer 目录下,会产生消费者和 ZK 的大量频繁的交互,网络压力较大。5、Kafka 的 offset 是持久化到硬盘中的,所以数据安全性得以保障。
2024-01-10 16:35:35
1577
原创 【Kafka-3.x-教程】-【三】Kafka-Broker、Kafka-Kraft
1、Broker 启动后向 ZK 进行注册,ZK 记录好存活的 Broker。2、每个 Broker 中都有 Controller,谁的 Controller 先注册谁就是 Controller Leader。3、Controller Leader 上线后监听已经注册的 Broker 节点的变化。4、Controller 开始选举 Leader(1)选举规则:在 ISR 中存活着的节点,按照 AR 中排在前面的优先,Leader 也会按照 AR 中的排列顺序进行轮询。(2)AR:Kafk
2024-01-10 16:35:14
1765
1
原创 【Kafka-3.x-教程】-【二】Kafka-生产者-Producer
在消息发送的过程中,涉及到了两个线程 — — main 线程和 Sender 线程。在 main 线程中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator,Sender 线程不断从 RecordAccumulator 中拉取消息发送到 Kafka Broker。1、外部数据通过 Producer 生产者中的 main 线程,调用 send 方法后,会经历三个阶段,分别是 Interceptors(拦截器)、Serializer(序列化器)
2024-01-10 16:34:58
1601
原创 【Kafka-3.x-教程】-【一】Kafka 概述、Kafka 快速入门
Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。缓冲/消峰:有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况。解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。异步通信:允许用户把一个消息放入队列,但并不立即处理它,然后在需要的时候再去处理它们。kafka的安装部署、kafka的基本命令。
2024-01-10 16:34:39
1503
原创 【Hadoop-HDFS-S3】HDFS 和存储对象 S3 的对比
虽然 Apache Hadoop 以前都是使用 HDFS 的,但是当 Hadoop 的文件系统的需求产生时候也能使用 S3。之前的工作经历中的大数据集群存储都是用HDFS,当前工作接触到对象存储S3,在实践中比较两者的不同之处。
2024-01-03 14:23:44
2011
原创 【Spark-HDFS小文件合并】使用 Spark 实现 HDFS 小文件合并
需求描述:1、使用 Spark 做小文件合并压缩处理。2、实际生产中相关配置、日志、明细可以记录在 Mysql 中。3、core-site.xml、hdfs-site.xml、hive-site.xml、yarn-site.xmlx 等文件放在项目的 resources 目录下进行认证。4、下面的案例抽取出了主体部分的代码,具体实现时需要结合 HDFS 工具类,利用好 Mysql 做好配置、日志、以及相关明细,结合各自业务进行文件合并。2)代码实现2.1.HDFSUtils2.2.MergeFile
2023-12-26 17:20:57
1676
1
原创 【Flink-Kafka-To-Mongo】使用 Flink 实现 Kafka 数据写入 Mongo(根据对应操作类型进行增、删、改操作,写入时对时间类型字段进行单独处理)
需求描述:1、数据从 Kafka 写入 Mongo。2、相关配置存放于 Mysql 中,通过 Mysql 进行动态读取。3、此案例中的 Kafka 是进行了 Kerberos 安全认证的,如果不需要自行修改。4、Kafka 数据为 Json 格式,获取到的数据根据操作类型字段进行增删改操作。5、读取时使用自定义 Source,写入时使用自定义 Sink。6、消费 Kafka 数据时自定义反序列化。7、Mongo 使用 Document 进行封装操作。8、此示例中通过 db.collection 传参的方式进
2023-12-26 08:30:00
1304
原创 【Flink-Kafka-To-Mysql】使用 Flink 实现 Kafka 数据写入 Mysql(根据对应操作类型进行增、删、改操作)
需求描述:1、数据从 Kafka 写入 Mysql。2、相关配置存放于 Mysql 中,通过 Mysql 进行动态读取。3、此案例中的 Kafka 是进行了 Kerberos 安全认证的,如果不需要自行修改。4、Kafka 数据为 Json 格式,获取到的数据根据操作类型字段进行增删改操作。5、读取时使用自定义 Source,写入时使用自定义 Sink。6、消费 Kafka 数据时自定义反序列化。这里的依赖比较冗余,大家可以根据各自需求做删除或保留。
2023-12-25 16:45:19
3234
原创 【Flink-Kafka-To-Kafka】使用 Flink 实现 Kafka 数据写入 Kafka
需求描述:1、数据从 Kafka 写入 Kafka。2、相关配置存放于 Mysql 中,通过 Mysql 进行动态读取。3、此案例中的 Kafka 是进行了 Kerberos 安全认证的,如果不需要自行修改。4、Kafka 数据为 Json 格式,通过 FlatMap 扁平化处理后完成写入。5、读取时使用自定义 Source,写入时使用自定义 Sink。6、本地测试时可以编辑 resources.flink_backup_local.yml 通过 ConfigTools.initConf 方法获取配置。这里
2023-12-25 12:12:36
1739
原创 【Git-IDEA】在 IDEA 中使用 Git(clone、pull、push、merge、建立本地分支与远程分支的连接)
Git 作为非常强大的分布式版本管理系统,在版本控制中使用非常广泛,因此学会 Git 非常重要。IDEA 开发工具中集成了 Git,使得我们可以进行可视化操作 Git,进行版本控制,提高了效率。【Git-Git的安装了解与使用】了解Git & 安装Git & 使用Git【Git-Git克隆代码与提交代码】使用Git命令方式拉取代码至本地以及上传代码到云端。
2023-12-22 15:59:05
7406
4
大数据常见面试题2022
2023-03-01
各企业的大数据面试真题
2023-03-01
大数据相关面试题Spark,Kakfa等
2023-03-01
各大企业大数据面试题目总结
2023-03-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人