自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (1)
  • 收藏
  • 关注

原创 一次复杂场景处理

maxcompute 练习题

2023-01-05 14:46:47 160

原创 maxcompute 表数据恢复

maxcompute 表恢复

2022-09-21 20:21:06 791

原创 dataworks 下载表数据

背景:dataworks 下载只能下载10000条数据,如果表大小超出大小,需要limit 几次,或者导出到数据库,再从数据库中进行下载。 pyodps 可以通过python代码的方式操作表,这样就可以将表数据下载到文件,之后将文件通过邮件的方式发送给自己(这里还可以用来所pyodps数据推送,集成在dataworks上)邮件推送csv格式文件from odps import ODPSimport csvfrom email.mime.multipart import MIMEMultipar

2022-04-19 14:18:12 2117 6

原创 dataworks 生成表血缘依赖

背景: 工作中用到了阿里云的dataworks,业务需求还没有到购买更高级的版本必要,没法查看表的血缘依赖。需要自己去实现血缘依赖。思路: maxcompute 提供Information_Schema元数据查询,可以其中TASKS_HISTORY 表,可以查询到任务执行的日志, sql任务对应的执行sql 放在了operation_text,存在执行的sql,可以通过...

2022-04-12 13:44:35 1713

原创 dataworks 小时任务同步设置

背景: 在用dataworks的时候,有一个场景,存在任务a,b a依赖于b, b需要执行2次, 但是a不必等b二次都执行完再执行,需要执行顺序为 b->a->b。 b可以设置为小时任务,a设置为日任务b 任务配置如下: 00:10和08:10分别执行一次,调度依赖上周期,这样a任务就不用等b都执行完再执行。生成的血缘依赖如下:...

2021-12-15 10:16:24 798

原创 maxcompute导出到polardb 特殊符号不支持

背景从maxcompute 将数据导出到polardb, 由于string 内容中包含特殊字符,emoji符号,导致同步数据时候,自动剔除含有特殊字符的数据。问题排查方案:1数据库和客户端编码格式不一致,需先修改编码格式。 浏览器编码和数据库或客户端编码格式不一致,需先统一编码格式,然后进行数据预览。 修改数据库相关的编码格式为utf8mb4。例如,在RDS控制台修改RDS的数据库编码格式。 说明 设置RDS数据源编码格式命令:set names utf8mb4。查看RDS数据库编.

2021-09-27 16:57:20 239

转载 Flink之状态管理--容错--检查点

有状态的分布式流式处理流式处理流式处理简单地说就是一个无穷尽的数据源在持续的收数据,以代码作为数据处理的基础逻辑,然后输出,这就是流式处理的基本原理。分布式流式处理Stream需要做分区,设置相同的Key,并让同样的Key流到一个computition instance做相同的运算。有状态分布式流式处理代码中定义了变量X,X在数据处理过程会进行读写操作,变量X会影响最后的结果输出。比如计算每个使用者出现的次数,次数即所谓的状态。Checkpointing作..

2021-08-17 11:09:24 337

原创 kettle 数据库资源库

一、简介 资源库,顾名思义,是存放转换和作业脚本的地方。不是业务数据库。文件资源库: 将脚本保存在本地创建的目录中,打开资源库可以管理所有的脚本。可以解决在作业中引用其它脚本带来的路径问题,避免因不同平台(如Windows 和 Linux )中的路径分隔符不同,造成运行失败。因为脚本文件为文本文件,通过与其他版本管理工具(如 SVN 和 GIT )配合,可以管理不同版本的脚本。但是因为脚本保存在本地计算机中,只能在本地运行,不能远程调用。数据库资源库: 将脚本保存数据库中,kettle...

2021-08-17 10:29:22 1804

转载 Hive 数据倾斜问题定位排查及解决(实际案例)

多数介绍数据倾斜的文章都是以大篇幅的理论为主,并没有给出具体的数据倾斜案例。当工作中遇到了倾斜问题,这些理论很难直接应用,导致我们面对倾斜时还是不知所措。今天我们不扯大篇理论,直接以例子来实践,排查是否出现了数据倾斜,具体是哪段代码导致的倾斜,怎么解决这段代码的倾斜。当执行过程中任务卡在 99%,大概率是出现了数据倾斜,但是通常我们的 SQL 很大,需要判断出是哪段代码导致的倾斜,才能利于我们解决倾斜。通过下面这个非常简单的例子来看下如何定位产生数据倾斜的代码。表结构描述先来了解下这些表中我

2021-08-05 18:10:20 1621 2

原创 yarn 资源调度之Capacity Scheduler

什么是capacity schedulerCapacity Scheduler调度器以队列为单位划分资源。简单通俗点来说,就是一个个队列有独立的资源,队列的结构和资源是可以进行配置的,如下图:default队列占30%资源,analyst和dev分别占40%和30%资源;类似的,analyst和dev各有两个子队列,子队列在父队列的基础上再分配资源。队列以分层方式组织资源,设计了多层级别的资源限制条件以更好的让多用户共享一个Hadoop集群,比如队列资源限制、用户资源限制、用户应用程序数目限

2021-07-26 14:49:05 2005

原创 flink on yarn Per-job模式High Availability 配置

背景:flink on yarn Per-job 模式下flink 程序会经常挂掉,直接原因是是对应节点上的 flink的 job manager 挂掉了,导致程序失败,flink的重启策略,只对于task manager生效 。 因此为保证稳定性,需要配置job manager 高可用。实现方案官方:当运行一个高可用的 YARN 集群时,我们不会运行多个 JobManager(ApplicationMaster) 实例,而是只运行一个,在失败时由 YARN 重新启动。确切的行为取决于您使用...

2021-07-22 14:58:41 2065

原创 yarn flink,spark实时程序监控

背景: 生产上的spark和flink程序偶尔会挂掉,虽然是基于阿里云配置了邮箱告警,但是由于程序的重启策略配置,导致重启后的程序,下次挂掉不会再被监控到。所以需要手动监控yarn,实现方案yarn 提供的api, 可以访问集群yarn web ui 接口数据,对Application Type进行过滤 ,每2分钟调用api,对比前后2次运行的实时程序,判断第一次的列表是否都还存在,不存在则发送邮件1.环境配置 导入依赖,导入相关hadoop配置文件yarn-site...

2021-07-20 13:33:17 643 1

转载 Yarn 调度器Scheduler详解

理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源。在Yarn中,负责给应用分配资源的就是Scheduler。其实调度本身就是一个难题,很难找到一个完美的策略可以解决所有的应用场景。为此,Yarn提供了多种调度器和可配置的策略供我们选择。一、调度器的选择在Yarn中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,FairS cheduler

2021-07-20 11:14:10 448

原创 kettle集群模式部

1下载安装 官方地址,下载khttps://sourceforge.net/projects/pentaho/files/

2021-06-16 18:29:20 1081

转载 数据仓库如何确定主题域

什么是主题主题是在较高层次上将企业信息系统中的数据进行综合、归类和分析利用的一个抽象概念,每一个主题基本对应一个宏观的分析领域。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。简单说,一个主题对应一个分析对象。分析对象就是在决策、分析时重点关注的东西,这个东西其实是非常主观的,在不同的企业,或者企业的不同发展时期,所关注的点会不一样,从而影响有些主题可能存在或者不存在。数据仓库是面向主题的应用,主要功能是将数据综合、归类并进行分析利用。数据仓库模型设计除横向的分层外,通常还需要根据

2021-06-09 09:56:56 1386

原创 kettle操作hive数据

需求: 需要对hive表中的数据进行操作,比如说读取a表中的数据,写入b表实现fan

2021-06-02 16:46:35 1067

原创 kettle设置共享数据库连接

kettle设置共享数据库连接,用于多个转换之间共用数据库连接,不用每次都手动创建主对象树->转换->xxx->DB连接->需要共享的连接名称

2021-06-02 15:54:37 1039

原创 kettle整合 java代码

需求: 通过kettle脚本控件调用java项目的中方法步骤: 1 创建输入

2021-06-02 15:22:53 1816 1

原创 clickhouse实现rank,row_number,dense_rank

clickhouse实现排序的开窗函数, 学习这个需要先了解clickhouse 一些函数,了解过直接跳到步骤31.数组相关函数arrayEnumerate -- 传入数组,返回序号数组,序号不重复arrayEnumerateDense -- 传入数组,返回序号数组,序号可重复arrayEnumerateUniq -- 传入数组,根据数组位置返回当前元素出现的次数SELECT arrayEnumerate([10, 20, 30,...

2021-04-30 11:24:48 2769

原创 spark编写工具根据参数,和文件创建对应的hive表

背景 由于经常给业务做一些导数工作,他们回提供一些id,数量2000以内的时候,可以直接用in 但是记录多了,需要再hive中创建对应表,关联查询得到结果集,经常需要通过hue创建表,上传文件,为了能够偷懒,编写文件,打算实现一个功能。 通过传参方式,根据文件地址,表名称,表字段结构。生成对应的hive表。实现过程 步骤通过spark 连接hive 通过不同参数,创建所对应的表(难点) 传参中可能每次所需创建表的字段都不一样,如何动态的创建不同的表,实现方法有...

2021-04-27 11:36:56 652

原创 clickhouse Parametric Aggregate Functions的使用

sequenceMatch sequenceMatch(pattern)(timestamp, cond1, cond2, …) 检查序列是否包含与模式匹配的事件链 参数pattern 模式字符串 (?N)— 在位置N匹配条件参数。 条件在编号[1, 32]范围。 例如,(?1)匹配传递给cond1参数。 .*— 匹配任何事件的数字。 不需要条件参数来匹配这个模式。 (?t operator value)— 分开两个事件的时间。 例...

2021-03-20 16:06:20 1956

原创 datax windows 安装和使用

datax windows 安装和使用window部署 下载地址https://github.com/alibaba/DataX 在页面中【Quick Start】--->【Download DataX下载地址】进行下载。下载后的包名:datax.tar.gz。直接解压 需要安装python环境,如果是python3需要替换对应的文件 https://github.com/WeiYe-Jing/datax-web/tree/master/doc/da...

2021-02-19 18:05:20 1783

原创 使用java 反射map转对象 IllegalArgumentException: argument type mismatch

背景:由于业务需要,需要将java中的map转化为对应的实体类,由于map ,key和value都是String类型, 当使用java反射进行强转对象时候,就会提示类型不匹配,调用反射的方法实际上调用的是属性的set方法场景描述:由于map<String,String> 当里面的属性不是string类型转化为对象的时候,就会抛出异常 IllegalArgumentException: argument type mismatch, public cl...

2020-12-19 10:25:38 1349 1

原创 一次java 堆溢出问题记录

背景: 分页读取mysql中的数据,一次读取5000条,在同步hbase 的批量操作方式,将数据写入到hbase ,最终版代码如下(缺少工具类,不可运行)正常情况下,5000条数据,从读取,到写入,差不多耗时6s, 理论上数据库4千w条数据,本地跑的话24个小时应该可以同步完成,问题: 随着程序的运行,发现一次同步的的时间在不断增大, 最终程序直接oom 内存溢出了,第一步:发现问题后,先测试性的让数据,同步70次,手动进行一次gc,并手动的把使用过的集合对象clear(),结果: 使.

2020-12-09 11:47:49 250 1

原创 flink 自定义trigger

背景:一般情况下, 窗口操作都有默认的窗口触发器,有时候默认的trigger不满足条件,就需要我们自己去定义相应的trigger 去决定处理窗口数据的时间。Trigger抽象类触发器接口有五种方法,允许触发器对不同的事件作出反应onElement()添加到每个窗口的元素都会调用此方法。onEventTime()当注册的事件时间计时器触发时,将调用此方法。onProcessingTime()当注册的处理时间计时器触发时,将调用此方法。onMerge()与有状态触发器相关,并在两个触.

2020-11-23 16:50:03 1328

原创 flink java flatMap 使用java8 lambda写法

背景:利用java 8的lambda新特性,写flink可以简化一部分代码, 写一些类似于map,fliter,keyby 操作非常方便方便,只需要定义一个匿名函数,得到一个返回值, flatMap 操作时没有返回值的,通过Collector将数据进行输出到下一个算子。flatMap算子需要自己去实现方法FlatMapFunction<in,out> 定义输入输出参数类型,重写flatMap方法,将数据通过Collector进行输出 StreamExecutionEnvi..

2020-11-23 09:49:19 3053

原创 通过maven管理不同环境下的配置文件

1 在pom 文件中添加信息1 在build 内添加如下配置<resources> <resource> <!--这里是关键! 根据不同的环境,把对应文件夹里的配置文件打包--> <directory>src/main/resources/${environment}</directory> </resource>.

2020-10-12 15:55:42 233

原创 python 使用 wechatsogou wkthmltopdf 导出微信公众号文章

1.安装wkhtmltopdf下载地址:https://wkhtmltopdf.org/downloads.html2 编写python 代码导出微信公众号文章不能直接使用wkhtmltopdf 导出微信公众号文章,导出的文章会缺失图片,所以需要使用wechatsogou 将微信公众号文章页面抓取,之后将html文本转化为pdf pip install wechatsogou --upgradepip install pdfkit踩坑!!!,看了很多人的代码,都是一个模...

2020-08-28 17:31:52 8794 4

原创 mysql 分组排序 取前top n

力扣mysql 题目为:Employee 表包含所有员工信息,每个员工有其对应的工号Id,姓名 Name,工资 Salary 和部门编号 DepartmentId 。+----+-------+--------+--------------+| Id | Name | Salary | DepartmentId |+----+-------+--------+--------------+| 1 | Joe | 85000 | 1 || 2 | Henr...

2020-08-27 14:10:00 7911 1

原创 小程序生成海报(java后端)

实现方案前端人员,提供相关的html页面, 后端人员提供接口,前端人员通过参数设置html页面需要渲染的内容, 最后使用wkhtmltoimage或者phantomjs 对html 进行截图生成海报, 个人感觉wkhtmltoiamge 比phantomjs 要快一点,稳定一点我主要说下wkhtmltoimage的实现方案实现步骤 安装环境 官网地址:https://wkhtmltopdf.org/ windows: 下载安装包安装即可 linux: 下...

2020-07-28 09:59:34 12310

原创 使用xjar 对Spring-Boot JAR 包加密运行工具,避免源码泄露以及反编译

1 Xjar 介绍Spring Boot JAR 安全加密运行工具,同时支持的原生JAR。基于对JAR包内资源的加密以及拓展ClassLoader来构建的一套程序加密启动,动态解密运行的方案,避免源码泄露或反编译。功能特性无需侵入代码,只需要把编译好的JAR包通过工具加密即可。完全内存解密,杜绝源码以及字节码泄露或反编译。支持所有JDK内置加解密算法。可选择需要加解密的字节码或其...

2020-07-06 10:34:57 32458 17

原创 xjar 源码流程分析

xjarxjar是什么xjar的定义Spring Boot JAR 安全加密运行工具,同时支持的原生JAR。基于对JAR包内资源的加密以及拓展ClassLoader来构建的一套程序加密启动,动态解密运行的方案,避免源码泄露或反编译功能特性无需侵入代码,只需要把编译好的JAR包通过工具加密即可。完全内存解密,杜绝源码以及字节码泄露或反编译。支持所有JDK内置加解密算法。可选择需要加解密的字节码或其他资源文件,避免计算资源浪费。xjar如何使用xjar githubd地址:htt

2020-07-06 10:25:13 4152 1

原创 linux 安装phantomJs 用于截图,处理中文乱码,和样式问题

1,下载安装phantomJs 使用淘宝提供的地址:https://npm.taobao.org/dist/phantomjs/下载后解压文件,看情况配置环境变量tar -jxvf phantomjs-2.1.1-linux-x86_64.tar.bz22 相关踩坑2.1 问题演示 中文乱码问题:bin/phantomjs examples/rasterize.js /root/phantomjs-2.1.1-linux-x86_64/index.html a.pn...

2020-06-18 17:37:06 5532

原创 安装redis 集群

1 下载编译redis 1.1 下载安装包可以根据自己需要安装版本,建议用和我一样的,这样跟着当前博客出错的概率就小了 wget http://download.redis.io/releases/redis-4.0.11.tar.gz上传redis包到指定路径1.2 安装编译所需要的依赖gcc psmiscyum install gccyum install psmisc1.3解压并编译redistar -zxvf redis-4....

2020-05-21 16:04:49 6037

原创 JVM内存模型及垃圾回收

定义通俗的来讲,jvm主要分为5个部分程序计数器、虚拟机枝、本地方法枝、 Java 堆、 方法区, 引用大佬总结的概括程序计数器用于存放下一条运行的指令,虚拟机栈和本地方法栈用于存放函数调用堆栈信息, Java 堆用于存放 Java 程序运行时所需的对象等数据,方法区用于存放程序的类元数据信息 。 程序计数器: 是一块很小的内存空间,每个线程私有,可以看作当前线程...

2020-04-02 17:44:26 11605

原创 spring cloud 搭建高可用注册中心(踩坑)

先写一下整理过程, 之后总结一下踩的坑,(参考了翟永超的书籍,和一些相关博客)Eureka高可用的作用之所以进行eureka集群的搭建,在于我们平时的生产环境中,很难保证单节点的eureka服务能提供百分百不间断的服务,如果eureka无响应了,整个项目应用都会出现问题,因此要保证eureka随时都能提供服务的情况下,最好的方式就是采用eureka的集群模式,也就是搭建eure...

2020-01-02 15:07:17 734 1

原创 使用spark 对hbase 进行先删除,后插入 ,部分数据没有插入成功,

问题描述, 我们的业务需要我们对hbase 中的数据进行修改操作, 因此需要对数据先删除,后插入, 期间发现部分hbase rowkey 确实删除了, 但是没有插入数据?问题产生的原因,delete 和put 默认使用的 timestamp 插入当前hbase 服务器最后的时间, 如果 put的时间<=delete 的时间,当前rowkey 对应的列 都保存这删除的时...

2019-08-01 16:47:09 7492

原创 kafka 相关笔记

kafka 设计概要 吞吐量/延时 消息持久化 负载均衡和故障转移 伸缩性一些常用命令通过GetOffsetShell 工具类查看 topic 分区消息./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 192.168.2.52:9092 --topic test查...

2019-08-01 15:18:28 8750

原创 Java 版spark Streaming 维护kafka 的偏移量

基于Direct API 手动维护kafka 的偏移量, 将偏移量同步导了 redis 中,我将对比较重要的代码拿出来说明, 完整代码在下方:首先是通过Direct AIP 获取JavaInputDStream 对象 ,JavaInputDStream<String> message = KafkaUtils.createDirectStream(jssc, ...

2019-04-28 17:01:43 10439 2

原创 liunx环境下 python使用stmplib 发邮箱

linux 发送邮箱存在一些问题, 首先 必须使用SSL 加密操作, 端口 必须为465, 同时使用SSL 的时候还有一些问题, 必须再构造函数中传入Host(邮箱网站地址) , 终于成功了, smtp_obj = smtplib.SMTP_SSL(host=HOST)详细代码在下方, 大概说下流程我使用的是163邮箱 ,首先你得 在163邮箱设...

2019-03-15 15:59:03 10808 1

shell脚本编写的飞行棋

备注挺详细的 , 小白也能看的懂 , 拿过去也可以直接运行,如果发现了bug 请联系

2018-08-27

空空如也

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

TA关注的人

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