- 博客(225)
- 资源 (3)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 踩坑填坑-个人总结持续更新
===================================== AirFlow 部分========================================1.Airflow 任务假死问题版本:Airflow 1.10.9现象:日志出现: dependency ‘Task Instance State’ FAILED: Task is in the ‘running’ state which is not a valid state for execution. The task
2021-10-26 09:09:45
2318
原创 复习一下 crontab
定时执行:cron 需要复习一下 分钟 小时 日期 月份 周几 * * * * * sh /1.sh 【每分钟执行一次】 1.分钟0~59 小时0~23 日期1-31 月份1-12 星期0~7(0和7表示周天) 2. * 取值范围内的所有数字 ,代表所有 / 每过多少个数字 ,代表每隔n长时间 - 从X到Z ,代表一段时间范围 ,散列数字,代表分割开多个值 demo:实例1:每1分钟执行一次* * * * * /root/backup.sh实例2:每小时的第3
2022-04-12 14:53:09
606
原创 Flink1.13 cumulate window 累加窗口的使用
import org.apache.flink.api.common.eventtime.SerializableTimestampAssigner;import org.apache.flink.api.common.eventtime.WatermarkStrategy;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.streaming.api.datastream.SingleOu.
2022-04-02 14:45:27
7215
原创 Flink CDC通过分流的方式将多个库表写入不同的Kafka Topic
import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.alibaba.ververica.cdc.connectors.mysql.MySQLSource;import com.alibaba.ververica.cdc.connectors.mysql.table.StartupOptions;import com.alibaba.ververica.cdc.debezium.Debez
2022-03-31 11:11:07
6267
原创 一次数据库扩容导致FlinkCDC作业挂掉引发的思考
查看yarn日志发现报下面的错org.apache.flink.runtime.JobException: Recovery is suppressed by NoRestartBackoffTimeStrategy谷歌了一下 发现说是 导致数据源不太稳定 导致的,同时建议把开启自动重启功能,这里我看了下线上的代码,发现重启策略配置的是 失败不重启,本以为很离谱,但是后来问了才发现说 原来任务是1.5版本起的,在没有完全全量阶段的数据的ck之前,重启会锁表,导致业务出现问题,所以这里配置的不重启,
2022-03-01 18:09:18
2714
原创 Hive生产最jia实践
原始数据 新增数据 如何做增量full join (不支持map join)改写为未变化的数据(left join 子表为空) union all 新增以及变化的数据 (即子表)
2022-02-25 11:16:24
802
原创 Flink生产最jia实践
内存使用最佳实践: 关键在于资源情况能不能抗住高峰时期每秒的数据量JM2~4G 足够单个 TM2~8G 足够numberOfTaskSlots 与容器核数相关 [1slot :1core 或 1slot :2core]CPU利用最佳实践:使 用 DominantResourceCalculator 策 略 并 指 定 容 器vcore 数bin/flink run -t yarn-per-job -d -p 5 -Drest.flamegraph.enabled=true -Dya
2022-02-22 15:21:47
879
原创 Flink 架构浅析 & 并行度 Slot 的关系
JobManager 和 TaskManager之间的通信都是借助于 Akka Framework,包括任务的状态以及Checkpoint 触发等信息Flink中每一个worker(TaskManager)都是一个JVM进程,它可能会在独立的线程(Solt)上执行一个或多个subtask一般一个Slot启动一个subtaskFlink的每个TaskManager为集群提供SoltSlot的数量由集群中flink-conf.yaml配置文件中设置taskmanager.numberOfTaskSlo
2022-02-22 14:01:25
2591
原创 DataX 浅入浅出
DataX定位:是一个异构数据源之间的离线同步工具架构:采用Framework + Plugin架构构建,将数据源读取和写入抽象成为Reader/Writer插件核心模块:DataX完成单个数据同步的作业,我们称之为Job,DataX接受到一个Job之后,将启动一个进程来完成整个作业同步过程。DataX Job模块是单个作业的中枢管理节点,承担了数据清理、子任务切分(将单一作业计算转化为多个子Task)、TaskGroup管理等功能。DataX Job启动后,会根据不同的源端切分策略,将Jo
2022-02-21 18:55:28
849
原创 Sqoop 浅入浅出
Sqoop一个在Hadoop和关系型数据库之间高效传输数据的工具最新稳定版1.4.7(Sqoop2不建议生产使用)已经从Apache毕业本质其实只是一个命令行工具生产中基本都是 在拼接Sqoop命令完成数据的导入导出底层工作机制:导入导出 在底层实际被翻译为MapReduce程序来实现,主要是对MR的 InputFormat 和 OutputFormat 进行定制学习前提:linux常用命令 RDBMS基操 Hadoop用途和基操安装Sqoop后续的jar包都放在lib目录即可一、sq
2022-02-21 18:34:50
886
原创 MySQL
mysql存储引擎:不同的数据组织形式innodb.frm存放表结构或者元数据.ibd存放表数据和表索引索引文件和数据文件是放在一起的有事务默认支持行锁锁一般是锁数据,但是innodb是锁的索引如果没有索引,也只能是表锁支持外键undolog可以保证事务的原子性,innodb还可以用undolog保证多版本并发控制mvccmyisam.myd 存放表数据.myi 存放表索引.frm 存放表结构等没有事务默认支持表锁不支持外键不同引擎意味着 不同文件的组织形式
2022-02-21 03:27:21
568
原创 垃圾回收GC
gc什么是垃圾:没有引用的对象就是垃圾c和c ➕➕ 不需要你自己清理垃圾tlab 线程本地缓存 不用和其他线程竞争怎么去定位垃圾?1.根可达算法(解决对象循环引用的问题问题:哪些常见的类是根?一般是初始化加载的对象。推荐 《jvm虚拟机规范》2.对象引用次数统计:python就是用的refrence count 。但是不足之处是:无法解决循环应用的问题。内存分为三类:存活对象块未使用块可回收块gc回收算法(声明:各个算法没有优劣之分)1.标记清除???? mark sw
2022-02-21 03:24:58
493
原创 HashMap Redis MySQL 到 分布式 HBase
hashmap redis mysql 分布式 hbase️问题引入:1w个元素数组链表线性表 1.数据有序二分查找才是最快的,o logn2.数据无顺序只能从头到尾 ,此时时间复杂度o(n)3.或者跳跃表或者红黑树????️核心:分治思想如果使用数组为长度为4的,每个下面是一个2500长度的链表接着对每一个元素进行hash,1.每个元素得到一个hash值,2.用hash值对4进行取余那么就把这个元素放到指定位置下后面在查找某一元素的时候就先对查找元素进行hash,然后得
2022-02-21 03:18:09
204
原创 从网络到分布式 从单机到微服务
第一大部分:计算机网络+TCP/IP -=======================================osi七层参考模型 tcpip五层模型 分层解耦 各干各的 提供好标准应用层 传输层 网络层 链路层 物理层tcpdump 网络抓包软件tcpdump -nn -i enp0s3 port 80curl www.baidu.com就会打印三次握手 发送数据 打印数据 四次分手 四个过程提示:一个连接可以看成是一个文件描述符????------------------
2022-02-21 03:08:27
317
原创 记录一次生产Hive表数据恢复过程
写在前面有一张离线同步用到的表 源表新增了一个字段,所以对应的ods的表也要相应改变。这张 表比较特殊,源表数据后端自己维护,只会保留最近几天的数据,对于历史数据是按天分区存放在ods的,所以对于历史数据的查询只能到数仓才行。目前ods的历史数据累计大于3亿多条。公司一个小伙伴在做的时候,一开始不清楚这一点,然后直接把源表给干掉了,源表其实还是使用的外部表,他也直接把HDFS上的文件直接给删除了,然后重建了新的表。然后重新同步了数据,任务也能成功,但就是历史数据也没啦,呜呜呜~~这里其实有一个点:如
2022-02-17 10:24:42
1208
原创 MySQL ON DUPLICATE KEY UPDATE (插入更新) 产生的ID增长过快问题
CREATE TABLE `test_duplicate_key` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id', `name` varchar(255) DEFAULT NULL, `age` int(11) , PRIMARY KEY (`id`), UNIQUE KEY `name_idx` (`name`)) ENGINE=InnoDB;select * from test_duplicate_key1
2022-02-14 14:48:49
2254
3
原创 《BI工程师必读》数据可视化篇 #02
写在前面对于大数据团队来说,我们把计算好的数据,以一种简洁美观的方式展现给产品经理或领导也是十分重要的,其实也就是数据可视化。一种方式就是公司自研一个可视化平台,比如用SpringBoot+Echarts就可以达到一些效果,但是这无疑是比较耗费时间的,所以选择一款高效的可视化工具就显得尤为重要。BI工具目前市面上有很多,像是Tableau、FineBI这种典型代表,他们或多或少都比较商业化一些,无奈没钱啊。。那么开源免费的呢?肯定也是有不少的哈,目前开源比较流行的有,redash metabse s
2021-11-30 09:49:35
585
原创 提升工作效率 终端复用神器Tmux
写在前面不知道小伙伴有没有遇到过一下的情况:1.当你使用vim在服务器上编辑配置文件的时候,这个时候你可能想要看别的配置,你就需要新建一个ssh连接,是不是感觉有点麻烦;2.当你在用一个脚本跑数据的时候、或java -jar 运行某一个服务的时候,可能会因为网络的问题,你的当前ssh连接被断掉,导致你运行的这个进程被无情的kill掉3.最重要的是每次换电脑 登录你都无法继续 从之前的工作目录和内容继续淦,这个体验是十分不好的,要是有一个软件能够保存起来我们之前的工作内容,那岂不是直接起飞~没错!T
2021-11-29 09:42:57
781
原创 Presto 一篇不太正经的全面学习笔记
写在前面本文内容基本来源于官网,然后我结合我自己实际工作中的一些场景 把我认为 重要 且常用 的一些操作给记录下来了。目前presto是拆分为了两个项目 prestodb 和 prestosql,有兴趣的小伙伴可以看一下,这里选用的是prestodb。如果有任何不对的地方,欢迎小伙伴指正!笔芯~~咱们开始把 !#01 概述不是数据库!()Presto是一种分布式高效 大量数据的即席查询工具,简单来说就是对于 TB 或 PB 级数据,能够比较快的得到查询结果。数据可以是传统关系型数据库,也可以是
2021-11-24 09:45:41
3093
原创 《BI工程师必读》日期处理篇 #01
– 天、周、月、季度、年等聚合操作– mysql– 当天日期select date(now())select date_sub(current_date,interval dayofweek(current_date) day)select weekday(current_date()) – 周日 6 周一 0select dayofweek(current_date()) – 周日 1 周一 2– 当天日期的周一 :select date_sub(current_date()
2021-11-16 18:19:04
1550
3
原创 Hive SQL 面试题-【高频&硬核】
create table t (id int,p_date date,quantity int);insert into t values(1001,'2021-01-01',122);insert into t values(1002,'2021-01-01',41);insert into t values(1003,'2021-01-01',56);insert into t values(1001,'2021-01-02',165);insert into t values(1.
2021-11-09 10:16:38
3724
4
原创 保留Hive分区的最新文件
写在前面:目前生产上有一个场景就是有一张HIVE的分区表,每5分钟就会有一个任务往 当天的分区里面写数据,但是本身也只需要当天最新的数据,这样下来,小文件就会巨巨巨多,所以不得避免就需要删除之前的文件了,这样也能提升查询速度。方案:用Python执行Bash HDFS命令代码如下:#!/usr/bin/env python# -*- coding: utf-8 -*-import osimport warningswarnings.filterwarnings("ignore")def
2021-11-08 09:53:59
1944
原创 SQL中on&where的区别
写在前面今天看见群里有小伙伴在问sql中on&where有啥区别,似乎都能实现过滤数据的效果,但又感觉又不太一样,始终有点理不清。这不,这里简单记录下我的理解。如果有误,欢迎指正~笔芯结论就是:1.on先过滤数据再进行表的连接,where先连表得到临时查询结果 最后再对结果进行过滤2.on 后面的过滤条件只会影响当前表的行数,而如果把这个从表的筛选条件 放在了where里面,这样就会影响主表的返回行数所以,也是比较多的场景是:拿left join 举例,如果你需要返回左表的全部数据,这
2021-07-07 10:35:26
348
原创 Airflow + MySQL安装躺坑整理
(2021) [root@hadoop001 airflow]# airflow db initTraceback (most recent call last): File "/root/.virtualenvsi/2021/bin/airflow", line 5, in <module> from airflow.__main__ import main File "/root/.virtualenvsi/2021/lib/python3.9/site-packages/
2021-05-15 12:32:47
490
1
原创 函数式编程 & Lambda表达式 硬核!
函数式编程概述:是相较于 命令式编程 的一种编程范式;是一种如何 搭建应用程序 的方法论,不是一种具体的技术;具体的,能够熟练应用Stream流相关的API ,lamdba 表达式 到工作中,就说明你会函数式编程函数式编程:关注做什么,说白了,内置函数库已经将需要的功能实现好了,直接用命令式编程:关注怎么做,具体实现细节需要我们自己代码编写为什么要使用函数式编程:使用 lambda 能够使得代码更加的简洁Lambda 表达式:其实也是一个匿名函数,它不去关心接口名,方法名,参数名,而是
2021-01-19 23:10:52
1868
原创 Hadoop 集成Snappy 全流程记录 提供依赖组件 【MAC 躺坑记录】
写在前面之前我在本地创键Hive表的时候一般都是以textFile格式进行存储的,最近玩的一些大表确实占用空间的,就想着Parquet格式存储+Snappy压缩来实现数据的存取。殊不知,Caused by: java.lang.UnsatisfiedLinkError: no snappyjava in java.library.path于是我检查了下本地环境:➜ ~ hadoop checknative20/12/20 12:00:33 WARN util.NativeCodeLoader:
2020-12-20 17:21:55
631
1
原创 Hive内部表外部表区别及各自使用场景 【 附录:常规DDL样例】
写在前面ps:干货很多…我们都知道,Hive基本上就是内部表和外部表两种类型,在面试的时候,常会问到这种题目:1.hive内部表和外部表的区别2.什么时候使用内部表,什么时候使用外部表来自官网的定义:Managed tablesA managed table is stored under the hive.metastore.warehouse.dir path property, by default in a folder path similar to /user/hive/wareh
2020-12-20 15:33:20
2043
原创 深圳地铁客流大数据 Spark 技术栈
写在前面学以致用,本项目通过对深圳市开放数据之轨道交通客流情况进行分析,了解深漂的我们每天在上下班都经历了些什么…本系列项目以Spark技术栈为主,花絮SHOW DATABASES;CREATE DATABASE IF NOT EXISTS szdw_ods;CREATE DATABASE IF NOT EXISTS szdw_dwd;CREATE DATABASE IF NOT EXISTS szdw_dws;CREATE DATABASE IF NOT EXISTS szdw_ads;
2020-12-11 00:07:04
885
原创 数仓中的全量表,增量表,拉链表,流水表,快照表 机会终于来了系列
写在前面先简单说明一下这几种表形态的定义:全量表:每天的所有写最新状态的数据1、有无变化,都要报2、每次上报的数据都是所有的数据(变化的+没有变化的)增量表:新增的数据1、增量表,只报变化量,无变化不用报拉链表:1、记录一个事物从开始,一直到当前状态的所有变化的信息2、拉链表每次上报的都是历史记录的最终状态,是记录在当前时候的历史总量流水表:对于表的每一个修改都会记录,可以用户反映实际记录的变更1、拉链表通常是对账户信息的历史变动进行处理保留的结果,流水表是对每天的交
2020-12-08 12:38:11
3520
原创 SQL经典面试题-连续3天登陆用户 机会终于来了系列
写在前面连续登陆问题可以扩展到很多其他方面:1.我们每天使用的某团外卖,就可以统计用户连续点外卖的天数。如果发现你连续5天都没有点外卖,可能就会给你发优惠券,刺激消费2.比如银行贷款你连续预期好多好多天,一直没有处理。银行就会按照自己的流程对你采集一定的措施。反正就是确实在数仓中还是用的比较多的,比较实际的需求。需求:编写hql,统计连续3天登陆的用户分析:如何判断连续,这个是本题的关键可以对user_id进行分组排序后,得到rn,然后用登陆日期减去rn ,就会得到一个日期差,如果是连续的话
2020-12-03 21:55:14
1017
原创 SLF4j + Log4j 、Log4j2、 Logback 日志框架使用【生产场景分析】
写在前面从写代码开始,就陆陆续续接触到了许多日志框架,常用的Log4j 、Log4j2、 Logback等。每次自己写项目时,就copy别人的代码或网上的demo。配置log4j.properties或者logback.xml 能搞定。但是一直没有理清各个框架之前的关系。然后总感觉打印日志的时候并不是随心所欲。特此简单分析分析。SLF4j是日志门面,是一个日志标准,并非真正的日志实现,log4j、log4j2、logback才是真正的日志实现库。也就是说log4j、log4j2、logback 这兄弟
2020-12-02 23:13:24
849
原创 在linux下如何使用yum查看安装了哪些软件包 & yum安装的软件都放到哪个目录下了
问题1: yum安装的软件都放到哪个目录下了答:都放在/var/cache/yum下了问题2: 常常在用yum -y install 软件名,可是真的还不清楚这些sao操作呢//列出所有已安装的软件包yum list installedyum针对软件包操作常用命令:1.使用YUM查找软件包 命令:yum search 2.列出所有可安装的软件包 命令:yum list 3.列出所有可更新的软件包 命令:yum list updates 4.列出所有已安装的软件包 命令:yum l
2020-07-14 18:22:55
2260
原创 疫情一码通背后的超大数据仓库设计
平台层面 + 上层应用层面上层应用从原来每天100w的调用查询量 ==> 提升到每天2000w次的调用查询量 ;1.目前总计(GaussDB加工集群+GaussDB查询集群)250+个节点,共计 1PB的数据量。2.最大集群的规模108个节点,500TB 数据量3.每天有将近1w张表的数据 入库,30亿条数据进行加工处理–> 来生成疫情防控需要的一些专题数据,去支撑疫情防控平台,每张表平均 30w 条数据?2017年正式上华为的公有云,华为的DWS服务DWS2.0 多模引擎 实..
2020-07-06 10:48:51
1508
原创 解决the NTP socket is in use, exiting问题
问题描述:在时钟同步额时候,出现:[root@GaussDB200 ~]# ntpdate ntp1.aliyun.com 5 Jul 01:32:56 ntpdate[2154]: the NTP socket is in use, exiting[root@GaussDB200 ~]# the NTP socket is in use, exiting解决:[root@GaussDB200 ~]# service ntpd stopRedirecting to /bin/systemc
2020-07-05 12:19:28
5323
1
转载 (转载)HCIA-GaussDB 华为认证数据库工程师
// An highlighted block第一、二章主要介绍数据库的发展史,基本概念等内容,第三、四章节主要介绍GaussDB数据库的SQL语法,第...
2020-07-02 15:38:10
1667
1
原创 FastDFS+Nginx 搭建文件服务器 【Easy Peasy】
写在前面一个业务系统 总有这样那样的文件 需要保存把。有许多第三方的对象存储,什么阿里腾讯的OSS,COS,还有七牛云啥的。当然也是可以选择没错了,但是可能基于数据安全还有公司成本,或许我们搭建自己的文件服务器也是不错的。不过这样也会多出一些运维成本了。这个取舍就看自己了吧,仁者见仁智者见智。话不多说,直接开始吧,如果有什么错误的地方,欢迎指正~ 我也还在不断的学习中,大家一起加油!先来两张架构图:Tracker 就相当于一个主节点,负责管理记录多个Storage节点的元信息。类似于Hadoop
2020-07-01 20:46:03
331
下载地址vagrant box.txt
2020-02-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人