- 博客(70)
- 资源 (3)
- 收藏
- 关注
原创 Flume实战:Kafka Channel的使用配置场景
使用Flume采集数据时,我们可能会遇到各种场景,一个数据采集任务的标准配置都是Source->Channel->Sink。对于Channel组件的选择常用的有Memory Channel、File Channel。Kafka作为数据源,将Kafka中的数据同步到其他组件中Kafka作为目标端,将其他如文件中的数据采集到Kafka的Topic中Kafka作为中转,将数据从Source采集到Sink中对于以上3种场景,在配置Flume的job时,可能就涉及到不同的组件配置模板。
2025-03-21 18:44:09
544
原创 docker默认网段和宿主机环境冲突时的处理
在某些云环境中(如公司机房的私有云),172.17.0.0/16 这个网段已被云中的网络设备使用,在这种环境下,docker0 不能正常打开,这时候需要修改它的网段。或者 docker0 创建后,占用的 172.17.0.0/16 这个网段导致客户云环境的其他功能出现异常,这种场景下也需要修改 docker0 的网段。默认情况下,它的IP地址段是172.18.0.0/16,对吧?可能有时候这个网段和现有的网络冲突了,所以需要改。可以看到,docker_gwbridge的网段已经更改过来了。
2025-03-04 11:21:57
567
原创 docker swarm部署xxl-job的踩坑记
最近新入职了一家公司做数据开发,发现之前公司所用的定时任务调度还是Crontab的方式。比较原始,对定时任务的状态、日志等都难以管理和监控。同时项目多了之后也没有一个统一的平台对这些任务进行管理。因为之前本人就有对xxl-job二次开发并使用xxl-job负责整个公司数据任务脚本调度的经验,所以就分配给我来做这个事情。由于之前的项目中都必须使用docker来隔离各个环境,所以此次采用的方案也是给予docker部署。
2024-11-01 16:13:54
1014
原创 docker常用命令整理
该命令来源于docker swarm init的打印信息,在管理节点上执行了docker init 命令后,会输出一个docker swarm join的命令,如果该命令忘记了,也可以在管理节点上执行。将mysql容器连接到网络xxl-job-network, 如果mysql是独立容器,在创建xxl-job-network网络时要添加–attachable 参数,否则网络不允许加入。升级xxl-job-admin服务,使用新的镜像xxl-job-admin:2.0。-t : 镜像名称和版本。
2024-10-24 18:26:05
1324
转载 supervisor启动的程序读不到环境变量
在.bash_aliases里配置了环境变量,在命令行运行程序可以读取到,用supervisor启动的程序却读不到。
2024-09-19 18:00:51
227
原创 Windows平台上达梦数据库的ODBC安装与配置
最近很多公司都在响应信创,需要切换到国产数据库,然而很多数据库的一些基础组件的使用都没有一个很明确的官方文档。为了避免更多的人踩坑,本人将踩过的坑总结成博文,分享给大家。在此文中我将一步步带领大家安装和配置达梦数据库的ODBC驱动。
2023-02-20 16:37:09
8198
3
原创 Linux下ODBC的安装配置
在Linux平台下如果需要使用ODBC连接数据库,则需要先安装unixODBC,然后再安装相应的数据库的ODBC驱动。有些系统如果自带了UnixODBC,则无需安装(执行odbcinst --version 命令检测是否已经安装)。在此文中我将一步步带你在Linux环境中安装和配置unixODBC。
2023-02-20 16:18:56
6202
转载 oracle nvarchar2和varchar2 NCLOB、BLOB、CLOB区别
1、nvarchar2最大值为2000,单位是字符,并且不受字符集编码影响,最大能存2000个字符(无论汉字/字母),每个字符的长度都为2个字节;2、varchar、varchar2、nvarchar2是可变长度,按照实际的长度存储,定义长度为10,不满10个字节的话,以实际长度为准;4、编码:规定每个“字符”分别用一个字节还是多个字节存储,用哪些字节来存储,这个规定就叫编码,即每个字符用二进制在计算中表示存储;(如:保存XML文档)2、字节:一个字节占8位,即1byte(字节)=8bit(位);
2023-02-20 16:08:15
957
原创 SpringBoot学习笔记:SpringBoot集成JPA-01
JPA是一种规范,它简化了现有持久化的开发,并且充分吸收了Hibernate、TopLInk、JDO等框架。SpringData JPA是全自动框架,不需要自己写sql,当然也可以自己写sql实现。而自动生成sql这点是优点,也是缺点,因为生成的sql可读性差,而且一些业务比如执行逻辑删除等还是需要自己来实现sql。本文将一步步带领大家在springboot中集成JPA,让大家能够很快的学会JPA的初步使用。
2023-02-18 00:43:52
528
原创 Hive学习笔记:05Hive中常用分析函数使用解析
本文将介绍Hive SQL中常用的窗口分析函数的使用,这些函数的用法不仅仅适用于Hive,对于很多数数据库来说同样也适用,比如SParkSQL,FlinkSQL以及Mysql8,Oracle,MSSQL等传统的关系型数据库。
2022-11-23 01:05:22
1367
2
原创 Hive学习笔记:04 SQL的窗口函数、OVER的使用
本文将介绍Hive SQL中窗口函数、分析函数以及Over的使用,其实不仅仅是Hive,对于很多数数据库来说同样也适用,比如Mysql8,Oracle,MSSQL等传统的关系型数据库。
2022-11-18 19:01:01
1396
原创 ClickHouse学习笔记:01数据类型和基本DDL
在DDL中的枚举类型也可以使用Enum(‘SZ’=0,‘SH’=1) 这种方式进行定义,ClickHouse会根据枚举的值隐式转换为Enum8或者Enum16,如果枚举的值超过了Int16的表数范围,则会报错。2、ClickHouse自身的数据类型是区分大小写的,例如Int8 就只能这样写,不能写成int8,但是如果是兼容Mysql的数据类型,则既可以大写也可以小写,如BIGINT和bigint都是可以的。简单的查询有非常高的性能,多用于数据量不大,而又需要非常非常高的性能的场景下。
2022-11-16 00:45:34
832
原创 Maxwell 配置实时将MySQL数据同步到Kafka
如果初始时数据表中就有数据,但是后面才配置的maxwell,那么初始时的数据是没有监听到binlog的,也就没办法被maxwell同步到Sink。Maxwell是一个通过解析MySQL的binlog日志,伪装成Mysql的slave实时将master的数据变化同步给外部系统的一个工具。在存放maxwell元数据的mysql服务器(可以与被同步数据的Mysql服务器不是同一个)上中创建maxwell数据库,用于存放maxwell的元数据。JDK的版本太低,升级JDK的版本就可以解决。
2022-10-24 17:50:56
2283
原创 Flume学习笔记:02-Flume Agent内部原理和事务机制
本文详细的总结了Flume的内部对数据的处理流程和Flume的事务机制,通过此文可以非常清晰的了解到数据在Flume中是如何被处理的,同时也可以了解Flume为什么能够保证数据不会丢失。
2022-10-20 00:37:31
838
原创 Azkaban4.0.0编译和部署
本文详细的介绍了如何编译和搭建Azkaban4.0.0的环境,可以让后来者少走弯路,避开很多的雷区,大大节省后来者的时间和降低操作的难度。
2022-10-10 18:28:02
2126
1
原创 SPark学习笔记:14 Spark Stream的Window操作
Spark DStream提供了Window操作,我们可以使用Window算子对数据进行一系列的算子运算。和Flink不同,Spark DStream提供的window操作比较简单。只能基于数据的处理时间来进行运算。Spark的窗口可以分为滚动窗口和滑动窗口两类。滚动窗口窗口的大小是固定大小的时间间隔窗口与窗口之间无交集。窗口每次滑动的步长等于窗口的大小滑动窗口窗口的大小是固定大小的时间间隔窗口与窗口之间有交集。窗口每次滑动的步长小于窗口的大小。
2022-09-07 00:48:00
545
原创 Flume学习笔记:01-Flume的安装与简单入门示例
Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。基于流式架构,使用灵活简单,最主要的作用就是读取服务器本地磁盘的数据,将数据写入到HDFS。
2022-08-30 18:44:22
817
原创 SPark学习笔记:13 Spark Streaming 的Transform算子和Action算子
和RDD类似,DStreams也有一些转换算子用于处输入流中的数据。DStream中有很多转换算子和RDD的转换算子一样,同时也提供了一些额外的算子。此文将总结DStreams的各种算子的使用。
2022-08-17 18:21:47
1221
原创 Pyspider 使用带认证redis集群作为消息队列
最近使用pyspider作为调度部署一个项目,因为客户方提供需要使用redis集群作为消息队列。所以在网上搜索了好多,都说不支持redis集群。静下心来一想,这么常规的需求不应该不支持呀。本着一切都在源码中的宗旨,打开了pyspider的源码,果然让我发现了其实是支持redis集群的。但是如果redis集群需要认证的话,就不支持了。因此,需要对pyspider的代码做一个改造,让它支持redis集群带认证的方式。......
2022-08-08 23:32:27
387
原创 SPark学习笔记:12 Spark Streaming 的简单应用WordCount
Spark Streaming是Spark Core Api的一个扩展,用于流式数据的处理。支持的数据源有很多,例如:Kafka、Flume、Twitter、ZeroMQ、TCP、HDFS/S3等等。数据输入后可以使用Spark的高度抽象原语进行运算。运算完毕后,将结果存放在如HDFS、关系型数据库等等Sink中。严格意义上来说,SparkStreaming采用的并不是实时的流处理方式(来一条数据处理一条)。...
2022-08-02 18:30:15
493
原创 SPark学习笔记:11 SparkSQL 的用户自定义函数UDF、UDAF、UDTF
本文详细的介绍了SparkSQL中用户自定义UDF、UDAF、UDTF函数的实现,并提供完整的示例讲解每一种用户自定义函数的实现。
2022-08-01 18:50:24
1425
原创 SPark学习笔记:10 SparkSQL 数据源之Spark on Hive
ApacheHive是Hadoop上的SQL引擎,SparkSQL编译时可以包含Hive支持,也可以不包含。包含Hive支持的SparkSQL可以支持Hive表访问、UDF(用户自定义函数)以及Hive查询语言(HiveQL/HQL)等。需要强调的一点是,如果要在SparkSQL中包含Hive的库,并不需要事先安装Hive。一般来说,最好还是在编译SparkSQL时引入Hive支持,这样就可以使用这些特性了。...
2022-07-27 00:20:13
841
原创 SPark学习笔记:09SparkSQL 数据源之文件和JDBC
SparkSQL支持通过DataFrame的接口操作各种各样的数据源。DataFrame既能够使用传统的算子做转换操作,也可以通过注册成临时视图的方式通过SQL来操作。这篇文章将总结Spark的各种数据源,以及如何将数据落地到文件或者传统的关系型数据库中。...
2022-07-26 16:21:45
764
原创 SPark学习笔记:08-SParkSQL的DataFrame和DataSet操作
在Spark中DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库的二维表格。和python的Pandas的DataFrame非常类似。DataFrame和RDD的区别主要在于,DataFrame带有Schema元信息,即DataFrame锁表示的二维表格数据集的每一列都带有名称和类型。DataSet是分布式的数据集合,在Spark1.6中添加的一个新的抽象,是DataFrame的一个扩展。DataSet和DataFrame的关系DataSet的特性。...
2022-07-22 15:27:09
1074
原创 SPark学习笔记:06-SPark的累加器和广播变量
Spark核心的三大数据结构是RDD、累加器、和广播变量。前面的文章中已经详细的讲解了RDD的使用,在此文中将详细的讲解累加器和广播变量的使用。
2022-07-19 18:34:26
532
原创 SPark学习笔记:05-SPark RDD的持久化
我们知道RDD是不存储数据的,由上面的流程我们知道,在Action算子触发执行完毕后启动单独的job来执行将RDD的数据写入到checkpoint目录中,这时RDD的计算已经完成,RDD中没有存储数据,就需要重新从头开始计算得出RDD的数据,再写入到checkpoint目录中,效率会比较低,所以推荐和cache或者persist一起使用,这样就不需要重新计算RDD的数据。当我们持久化一个RDD时,每个节点将其所计算的每个分区持久化到内存中,这样用到这些数据的其他的行动算子就可以复用这一部分数据。......
2022-07-15 18:14:11
678
原创 SPark学习笔记:04-SPark RDD的Transformations和Action算子操作
Rdd的支持两种类型的算子操作,一类是Transformations,一类是Action算子。本文以代码结合文字的形式最全面,最详细的总结了Spark中的各类算子的操作。
2022-07-15 00:18:03
1109
原创 SPark学习笔记:03-SPark的RDD详解
Resilient Distributed Datasets(RDDs),中文名称是弹性分布式数据集。Spark的所有操作围绕着RDDs展开。它是一组可容错的、可并行操作的数据的集合。我们可以通过两种方式来创建一个RDDs:基于文件创建RDD深入理解RDDRDD(Resilient Distributed Dataset),弹性分布式数据集。它具有以下5大特性:要理解以上几点,我们先来看一张RDD的数据图:在上面的示例中结合上图所示,我们基于文件使用sparkContext.TextFile()创
2022-07-12 18:58:59
701
原创 Hive学习笔记:03Hive的数据类型与HiveQL的常用操作
Hive的SQL“方言被称为”HiveQL,他是SQL-92、MYSQL和Oracle SQL语言的混合体。所以很多操作都和传统的数据库的操作非常类似,尤其是MySQL。Hive的基本类型和MySQL数据库的类型基本一致,但是也有些细微的区别:HiveQL数据库DATABASE/SCHEMAHive中也有数据库的概念,使用HiveQL的操作如下:示例删除数据库语法:示例:查看数据库切换数据库语法:use + 数据库名称示例:表的DDL操作创建表语法:
2022-07-12 00:16:05
461
原创 SPark学习笔记:01-SPark集群搭建之Standalone模式
Spark集群有4种搭建的方式,分别是Standalone、Yarn、Mesos和Kubernetes的方式。其中Mesos以前在国外用的比较多,现在新的版本中已经被移除了。关闭防火墙ssh免密登录安装JDK,配置环境变量等搭建Hadoop集群,搭建方式见:《Hadoop学习笔记系列:01-Hadoop-Yarn高可用HA集群的搭建》安装配置步骤1、下载安装包到官网下载对应Hadoop版本的Spark安装包,由于我的hadoop 集群是Hadoop3.3.1版本的,所以我准备安装Spark
2022-07-11 19:26:51
420
原创 SPark学习笔记:02-SPark简单应用WordCount
File–>Project Structure -->Modules,添加scala依赖库Spark统计WordCount编写完成后可以在idea中运行测试,看到运行结果。Tips:如果需要提交到spark集群上运行,需要先打成jar包,然后使用命令的方式提交。当然在代码中conf.setMaster()就不能写成“local”了。总结开发一个Spark应用的流程:如果报错Failed to load class可能是因为使用Scala打包时没有生成class文件,这时需要在pom.xml中添加
2022-07-11 19:24:27
1195
原创 Hive学习笔记:01-Hive环境的搭建
Hive安装包的官网地址是https://dlcdn.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz在shell中执行命令,下载hive的安装包2、解压文件3、配置hive的环境变量touch /etc/profile.d/apache-hive.sh ,在文件中添加下列内容:刷新环境变量,使配置生效4、在HDFS中创建hive的相关目录由于hive依赖hadoop,所以必须在HIVE的安装机器上已经部署好hadoop环境,并且配
2022-06-15 16:41:07
399
转载 mysql5.7性能提升一百倍调优宝典
全文中一共有常用的(事实上你如果花1-2周阅读、理解、自己动手设一下后是需要这么多参数的)76个参数,笔者把近10年里3个亿万级项目的数据库调优用此篇浓缩到了可能读者只需要2周时间就可以掌握,同时我是按照:每一个参数干吗?在某些典型硬件配置下的db上参数该设多少?设会怎么样?不设会怎么样?有什么坑如何填坑?有些参数怎么算、算法又如何这种style来写的,相信此篇会对一些使用mysql的尤其是正在或者将要面临万级并发的项目、网站有所帮助。具体请看文档!一千个DBA就有一千种配置方式!大家一定记得不
2022-06-14 16:19:17
1104
原创 Hadoop学习笔记系列:06-MapReduce的详细过程图解及源码解读之Map
一个MapReduce作业是客户端需要执行的一个工作单元:它包括输入数据,MapReduce程序和配置信息。Hadoop将作业分为若干个task来执行,其中主要包括两类:map任务和reduce任务。这些任务运行在集群的节点上,并通过YARN进行调度。一个完整的MapReduce程序由client,map,reduce这三大块组成。由上图我们知道,有多少一个Input Split就会对应多少个map,hadoop会为每一个input split创建一个map任务,所以map的数量是由input split的
2022-06-07 15:59:55
699
原创 Hadoop学习笔记系列:05-MapReduce的详细过程图解及源码解读之Client
一个MapReduce作业是客户端需要执行的一个工作单元:它包括输入数据,MapReduce程序和配置信息。Hadoop将作业分为若干个task来执行,其中主要包括两类:map任务和reduce任务。这些任务运行在集群的节点上,并通过YARN进行调度。一个完整的MapReduce程序由client,map,reduce这三大块组成。Hadoop将MapReduce的输入数据划分成为等长的的小数据块,称为输入分片(Input Split),如上图所示。Hadoop为每个分片构建一个map任务,并由改任务来运行
2022-06-07 15:59:14
390
原创 Hadoop学习笔记系列:04-第一个MapReduce程序WordCount
文章目录一、idea新建maven项目,配置scala环境二、配置pom.xml,添加依赖三、编写代码,完整的代码如下:四、打成jar包,上传到Linux服务器上,执行命令:五、总结入口类的编写流程Mapper类的实现Reduce类的实现六:可能遇到的错误和应当避免的坑小心导包错误,导致程序的错误一、idea新建maven项目,配置scala环境File–>Project Structure -->Modules二、配置pom.xml,添加依赖<?xml version="1.0"
2022-05-26 18:59:43
200
原创 Hadoop学习笔记系列:03-Hadoop-Hdfs的Java Api的常用操作
文章目录概述一、添加pom.xml依赖HDFS的java API 操作创建Hdfs的FileSystem 环境创建目录判断文件或者目录是否存在创建文件上传本地文件到hdfs下载文件到本地删除文件或目录查看文件列表信息使用文件流的方式写hdfs文件使用文件流的方式下载文件完整的代码示例报错:java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.报错解决报错: Permission denied: user=TianTi
2022-05-26 00:25:19
789
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人