自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 大白话flink watermark 水位线 最大乱序时间

flink watermark水位线是什么?最大乱序时间是什么?初次接触者往往比较蒙,可能有人理解是这样:如果最大乱序时间设为10s,是不是指本应该触发窗口计算的时间点延后10s计算,以便等待更多的数据,这样不就达到处理迟到的数据的目的了么事实是这样么?我们先来说说在已事件时间作为窗口时间的计算触发规则:没什么为什么,就是这么定义的:1.窗口内有数据,2.水位线时间>=窗口的结束时间我们先假定窗口内肯定有数据,那水位线时间怎么样能>=窗口时间呢?大白话解释一下:水位线其实就是一个

2020-07-21 21:51:32 531

原创 flink写es报分片不足

flink写es报分片不足:ERROR org.apache.flink.streaming.connectors.elasticsearch.ElasticsearchSinkBase [] - Failed Elasticsearch item request: ElasticsearchException[Elasticsearch exception [type=illegal_argument_exception, reason=Validation Failed: 1: this action

2021-07-21 10:54:13 525

原创 flink写hive hdfs一直挂在.inprogress状态

flink1.12写hive,一直查不出数据,查看hdfs文件,每个分区的文件正常在生成,但都处于.inprogress状态,没有success文件,查看相关资料,是checkpoint失败的问题,解决checkpoint失败问题,数据正常写入

2021-04-21 16:11:25 2262 4

原创 flink日志配置

1.引入依赖 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version> </dependency> <dependency>

2020-09-08 19:30:54 941

原创 flink 本地idea运行,并访问webui

flink本地运行,访问webui方法:添加依赖:flink-runtime-web一定要添加这个依赖,否则访问页面是会报{“errors”:[“Not found.”]} <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-runtime-web_2.11</artifactId>

2020-08-25 22:11:39 2705 1

原创 kafka通过ip:9092连接,无法解析hostsname的问题

cdh6.2 应用程序(python,java,go)使用comsumer消费kafka 使用ip:9092连接,总是去访问主机名,反过来解析不到ip解决办法1:把kafka broker hosts信息配置到应用端hosts解决办法2:去zk中获取kafka ids相关信息:zookeeper-clientls /brokers/idsget /brokers/ids/104结果显示,zk中是去解析hostsname的,以上不同版本的kafka可能路径不一样,酌情调整查询在cdh cm界

2020-08-17 10:18:39 4412

原创 白话数据仓库概念

数据仓库不是什么高深的技术,但却是一套高深的方法论来自度娘的词条:数据仓库是面向主题的,集成的,不可更新的,反映历史变化的,非规范化的,用以对数据进行重组织,重存储,用于支持管理决策白话一下上面的几个词:面向主题:经典数仓理论"主题"是一个比较抽象概念:指的是数据应用逻辑关注点,如关注销售,就是销售主题,关注用户行为:就是用户行为主题.然后基于这些主题进行建模进入移动互联时代后的数仓主题:可以理解面向业务,他就相当于一个命名空间,当一个数据仓库收集到来自各个不同的业务数据时,对这些不同的业务的数据

2020-08-12 16:09:02 162

原创 flink1.11 消费kafka 流式写入hive

目前网上对于flinksql1.11消费kafka流式写入hive资料比较少,且大多是直接在flink中新建kafka表写入hive,但对多层嵌套的json解析不知支持力度几何 ,我这是使用streaming api 消费kafka先将json解析拉平,再转成临时表,最后流式写入hive,且看代码:package com.xxx.xxximport java.sql.Timestampimport java.util.Propertiesimport java.time.Durationimpo

2020-08-12 14:30:54 2128 3

原创 spark 实现sqoop类似功能的数据同步工具

一年多前写的用spark 实现sqoop类似功能的数据同步工具,拿出来分享一下优点:1.用配置代替sqoop命令,维护简单,添加新增同步表或下线同步表,只需在sql中增加或删除即可2.实测性能比sqoop好,当然前提是内存资源足够实现功能:1.通过配置需要同步的表清单元数据,实现多表并行从mysql同步到hive2.通过配置表同步类型,实现全量同步,增量同步,是否重跑功能2.通过配置表的并行分区字段,分区度(并行度),实现表数据分区并行同步3.同步过程中,动态检测源表表结构字段变化,并做相应

2020-07-24 15:59:41 2256 1

原创 hive使用中的问题,优化,总结

下面是几年来hive使用过程中的一些问题总结,可能随着版本升级这些问题都不是问题,写下来留个纪念数据倾斜解决:数据量大不怕,就怕数据倾斜a. 从sql语句入手,优化语句a1.尽量用分区过滤,减少数据量,a2.每个表单独用where过滤不需要的数据,再拉出数据集,不要将过滤条件放在最后或on后面(过滤条件放where后与inner join时等价,left join时影响很大)由于where 和join的的天然属性,需要遵循 先过滤再join,勿先join再过滤a3.过滤掉关联键,groupb

2020-07-22 19:44:50 508

原创 hbase rowkey设计实战

根据7位userid + 用户行为时间戳timestamp设计hbase rowkey根据hbase特性,rowkey高位散列,防止数据热点,低位连续,利于查询rowkey设计如下,用userid反转,放在高位,则rowkey第一位从0~9散列,用户行为时间timestamp放低位,用于连续由于userid不规整,或=0,或缺位,则需要补齐,补齐规则如下如果userid是正常7位,则直接反转,用类型1表示如果userid=0 或null,取7位随机数,不反转,用类型2表示如果userid少于7

2020-07-22 19:28:44 324

原创 spark开发中遇到的一些问题及解决方法总结

1.Exception in thread “main” java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet;解决:scala版本不对,将scala 2.11 换成scala 2.102.win7 运行saprk程序会报如下报错误:Failed to locate the winutils binary in the hadoop b

2020-07-22 19:14:14 1143 1

原创 flink集成到cdh

cdh目前没有flink的parcels包,那么怎么把flink集成到cdh集群呢,其实很简单,把flink包拷到cdh某台主机,即插即用,具体步骤如下:flink下载页面:https://flink.apache.org/downloads.htmlflink官方文档:https://ci.apache.org/projects/flink/flink-docs-release-1.10/官网下载flink-1.10.1-bin-scala_2.11.tgz拷上集群,那个机器需要提交任务就拷到哪个

2020-07-22 18:40:41 793

原创 使用shell调用hive sql实现hive表小文件合并

之前文章写到用sparksql实现hive表小文件合并,这里使用一下用shell调用hivesql来合并hive表文件,思路是一样的#!/bin/bashsource /etc/profile####################################################################################purpose:hive 表批量合并小文件#author:#date:2018/08/11#date: 2019/03/08 由原来循环串

2020-07-22 18:25:44 733

原创 使用shell监控,重启flink,sparkstreaming任务

在flink,sparkstreaming等实时任务难免在运行过程中各种各样的原因挂掉的情况,下面的代码在yarn平台使用shell来监控任务,如果挂掉就发送告警,并尝试重启任务#/bin/bash#==================================================#purpose: flink&spark任务运行监控,每一分钟检查一次本地进程和yarn任务进程#author:#date:2019/10/12#=====================

2020-07-22 18:15:47 851

原创 使用sparksql实现hive表小文件合并

在使用spark streaming将数据灌入hive时,或者spark批处理时如果分区设得很大,会导致hive表生成很多hdfs小文件,这个问题到目前位置spark都没有比较好的解决方法(不知道spark3.0情况是什么样的)折中解决:hive表按小时分区,sparkstreaming灌入hive后,在每个小时节点设置一个合并任务,将上一个小时分区数据的小文件进行合并,其实就是将分区数据读出来使用spark重新分区减少分区量,再灌入原分区,则合并后改分区的文件数就是spark计算中的分区数,下面是代码

2020-07-22 16:55:08 1358

原创 使用flink进行一天的UV(dau)统计

使用flink1.9进行实时dau统计难点:窗口时间长(24小时),dau统计不能增量统计,需全窗口去重实现:实现ProcessAllWindowFunction使用mapstate配合和rocksDB做全窗口数据缓存,基于processtime每20s触发一次从0点到当前的去重计算,即为实时dau优化点:使用evictor方法,移除掉已经缓存进mapstate的数据,使进入到process()方法的数据量减少,减少性能损耗不足:由于全窗口计算,dau又无需keyby,导致计算部分始终一个并行度在运

2020-07-22 16:24:56 7836 3

原创 scala 基于jdk8日期格式转换工具类

开发中经常要将日期格式进行转换,下面是自己日常开发中常用的基于jdk8日期格式转换工具类package com.opsimport java.text.SimpleDateFormatimport java.time.format.DateTimeFormatterimport java.time.temporal.{ChronoUnit, TemporalAccessor}import java.time._import java.util.{Calendar, Date, Locale,

2020-07-22 11:25:01 132

原创 scala 基于jackson自动解析json

对于做数据的同学来说,经常需要解析json,有时json嵌套层次很多,解析起来很麻烦,有没有方法不根据key一个一个去解析,而直接通过程序自动解析整个json,尝试了一下,功能实现了,但在大数据量的情况下可能性能有问题,仅供参考,代码:package com.opsimport java.utilimport com.fasterxml.jackson.databind.{JsonNode, ObjectMapper}import com.fasterxml.jackson.databind.no

2020-07-22 10:56:29 816

空空如也

空空如也

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

TA关注的人

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