自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OneForAll采坑记录

OneForAll是一款功能强大的子域收集工具。支持子域爆破、子域名验证、子域名置换、接管等功能。处理功能强大,速度极快,体验良好。注意事项:python3.10 -m pip install 和 pip3 install 是两种安装 Python 包的方式,它们之间有一些重要的区别:使用 python3.10 -m pip install这种方法是通过指定 Python 解释器的完整路径来运行 pip 模块进行安装。具体来说:python3.10 是你希望使用的 Python 解释器的路径。

2024-06-28 17:18:19 584

原创 Supabase 自托管部署实践

Supabase 是一个开源的后端即服务(BaaS)平台,提供了一系列工具和服务,帮助开发者快速构建和部署应用程序。实时数据同步和协作应用Supabase 提供了实时功能,可以让开发者轻松实现数据同步和实时更新,这对于需要协作和同步功能的应用程序非常有用。例如:聊天应用:用户之间的消息可以实时同步。协作编辑器:多个用户可以同时编辑文档,并实时看到对方的修改。实时仪表盘:数据变化可以即时反映在用户界面上。2. Web 和移动应用的后端。

2024-06-28 16:10:19 818

原创 Spark算法应用与实现

一、 word count应用场景统计过去一年中访客的浏览量、最近一段时间相同查询的数量和海量文本的词频等。代码实现:object WC_Test { def main(args: Array[String]): Unit = { val spark: SparkSession = SparkSession.builder() .master("local[1]") .appName("test") .config("spark.seriailzer"

2020-07-16 16:11:18 625

原创 Spark核心知识拾遗

前言总结了一些核心的知识点,需要的请收藏点赞。1.Spark的架构中的基本组件(1)ClusterManager:在Standalone模式中即为Master(主节点),控制整个集群,监控Worker。在YARN模式中为资源管理器ResourceManager。(2)Worker:从节点,负责控制计算节点,启动Executor或Driver。在YARN模式中为NodeManager,负责计算节点的控制。(3)Driver:运行Application的main( )函数并创建SparkContext

2020-07-08 15:56:33 1030

原创 Spark+Jieba实现中文分词

本案例使用jieba分词,jieba 是目前最好的 Python 中文分词组件,使用Spark同样也能实现中文分词。实现步骤如下:1.导入依赖<dependency> <groupId>com.huaban</groupId> <artifactId>jieba-analysis</artifactId> <version>1.0.2</version&g

2020-07-08 15:36:59 2004

原创 Flink 的复杂事件处理 CEP

一、什么是CEP?复杂事件处理(CEP)是一种基于流处理的技术,将系统数据看作不同类型的事件,通 过分析事件之间的关系,建立不同的事件关系序列库,并利用过滤、关联、聚合等技术,最 终由简单事件产生高级事件,并通过模式规则的方式对重要信息进行跟踪和分析,从实时数 据中发掘有价值的信息。复杂事件处理主要应用于防范网络欺诈、设备故障检测、风险规避 和智能营销等领域。Flink 基于 DataStrem API 提供了 FlinkCEP 组件栈,专门用于对复杂 事件的处理,帮助用户从流式数据中发掘有价值的信息。

2020-07-02 17:26:17 562

原创 Flink Table API开窗分组聚合

业务需求:每隔5秒钟,统计通话数量,假设数据延迟最大3秒。代码实现object TestWindowByTableAPI { // 每隔5秒钟,统计通话数量,假设数据延迟最大3秒,需要watermark def main(args: Array[String]): Unit = { val env = StreamExecutionEnvironment.getExecutionEnvironment // eventTime env.setStreamTimeChara

2020-07-01 17:07:50 1433

原创 Flink Table API运用与UDF实现

本文使用Table Api实现word count,自定义UDF实现单词切割。object TestUDFByWordCount { def main(args: Array[String]): Unit = { val env = StreamExecutionEnvironment.getExecutionEnvironment val settings = EnvironmentSettings.newInstance().useBlinkPlanner().inStreamin

2020-07-01 16:30:54 332

原创 实用工具类之——Scala时间格式转换

时间格式转换是项目中频繁用到的,以下总结了一些实用的方法。import java.text.SimpleDateFormatimport java.util.{Calendar, Date, Locale}import org.joda.time.DateTimeobject TimeUtils { /** * 一个小时的毫秒值 */ final val ONE_HOUR_MILLISECONDS = 60 * 60 * 1000 /** * yyyy-MM-

2020-07-01 11:52:02 547

原创 实用工具类之——Java动态获取类属性

在使用Java反射机制的时候,动态生成class,需要获取类的属性(成员变量名称、成员变量类型,构造函数信息)。以下方法轻松助你实现。 /** * 获取类成员变量名称 * @param o * @return */ public static String getOlapFieldNames(Object o) { Field[] fields = o.getClass().getDeclaredFields(); St

2020-07-01 11:40:15 1083

原创 Flink迟到数据处理

一、迟到的数据如何处理?Event Time语义下我们使用Watermark来判断数据是否迟到。一个迟到元素是指元素到达窗口算子时,该元素本该被分配到某个窗口,但由于延迟,窗口已经触发计算。目前Flink有三种处理迟到数据的方式:(1)直接将迟到数据丢弃:会造成数据丢失(2)将迟到数据发送到另一个流:输出到侧输出流,保证数据的完整性,可更新计算结果(3)重新执行一次计算,将迟到数据考虑进来,更新计算结果:数据准确率高,保证数据完整性二、业务实现:将迟到数据输出到侧输出流import org.ap

2020-06-29 22:23:56 2194

原创 Filebeat收集服务端日志

一、什么是Filebeat?Filebeat是轻量级本地文件的日志数据采集器,可监控日志目录或特定日志文件,并将它们转发给Elasticsearch或Logstatsh进行索引、kafka等。带有内部模块(auditd,Apache,Nginx,System和MySQL),可通过一个指定命令来简化通用日志格式的收集、解析和可视化,能做到实时收集日志,延迟在秒级,配置非常简单方便,占用资源少。二、业务背景?公司后端服务都是使用Golang开发的,服务部署在多台节点上,日志没有统一收集,异常问题排查困难,

2020-06-24 15:37:32 1589

原创 Hadoop&HDFS知识点整理

创作之初最近抽时间看了下Hadoop权威指南一书,对原理有了更深刻的理解,顺便整理了一些重要的知识点,工作或面试中能用得上,需要的请收藏点赞。知识点总结1.尽量在计算节点上存储数据,以实现数据的本地快速访问,数据本地化特性是hadoop数据处理的核心。2.hadoop为每个分片构建一个map任务,小文件会导致大量的map任务。一个合理的分片大小趋向于HDFS的一个块的大小,默认是128MB。3.map任务将其输出写入本地硬盘,而非HDFS。因为map输出是中间结果,中间结果由reduce任务处理后

2020-06-23 17:15:47 1743

原创 实时日志数据写入Clickhouse

一、背景每天上百亿的日志数据实时查询是个挑战,在架构设计上采用了Kafka + Flink + Clickhouse+Redash,实现海量数据的实时分析。计算层,我们开发了基于Flink计算引擎的实时数据平台,简化开发流程,数据通过配置化实现动态Schema生成,底层数据解析统一,无需重复造轮子,整个数据链路,从数据的采集,转换,存储,可视化,无需写一行代码,配置化完成。本文主要介绍实时日志数据写入Clickhouse的实践。Flink Clickhouse Sink<dependency&g

2020-06-19 18:11:45 3842 18

原创 Kafka consumer Job异常重置offset

一、业务场景Kafka consumer 任务出现异常的时候如何保证数据的质量?在以往的经验中,为了保证数据的精准一次,使用mysql表记录下程序异时数据的partition和offset,任务重启的时候查询下mysql 表中是否有程序异常的记录,如果有就从mysql表中取出对应partition的offset,重置consumer的消费。以下案例为使用Kafka consumer消费kafka的数据,ETL之后写入HBase。二、代码实践package scala.com.qsq.report.co

2020-06-19 16:05:25 452 1

原创 Flink WaterMark原理与实现

一、WaterMark作用在使用 EventTime 处理 Stream 数据的时候会遇到数据乱序的问题,流处理从 Event(事 件)产生,流经 Source,再到 Operator,这中间需要一定的时间。虽然大部分情况下,传输到 Operator 的数据都是按照事件产生的时间顺序来的,但是也不排除由于网络延迟等原因而导致乱序的产生,特别是使用 Kafka 的时候,多个分区之间的数据无法保证有序。因此, 在进行 Window 计算的时候,不能无限期地等下去,必须要有个机制来保证在特定的时间后, 必须触发

2020-06-18 18:40:57 560

原创 Spark定期合并Hive表小文件

一、需求背景App端的埋点日志通过LogerServer收集到Kafka,再用Flink写入到HDFS,按天或天加小时分区,文件格式为text 或者Parquet,Checkpoint间隔为5分钟,Sink 并行度为10,每个小时产生600个小文件,由于数据量大,每天几十亿的数据,产生的小文件很多,Namenode压力大,影响Hive Sql & Spark Sql的查询性能。定期对HDFS小文件合并成为迫切的问题,也是数据治理的重点。开始尝试使用Hive Job定期合并小文件,带来的问题是占用资

2020-06-17 22:14:44 807

原创 ClickHouse深度解析

一、什么是ClickHouse?ClickHouse由俄罗斯第一大搜索引擎Yandex于2016年6月发布, 开发语言为C++,ClickHouse是一个面向联机分析处理(OLAP)的开源的面向列式存储的DBMS,简称CK, 与Hadoop、Spark这些巨无霸组件相比,ClickHouse很轻量级,查询性能非常好,使用之后会被它的性能折服,非常值得安利。二、适用场景1.日志数据行为分析2.标签画像的分析3.数据集市分层4.广告系统和实时竞价广告5.电商和金融行业6.实时监控和遥感测量7.

2020-06-17 15:50:35 6347

原创 Flink 1.11 Table & SQL深度解读

1. kafka table DDL 动态table,后者定义覆盖前者, 一次创建多次使用2.clone table 完整继承、或者覆盖OPTION3.性能测试体验提升4.kafka table options 提升5.source & Sink重构(1)ChangeLog:kafka sink 支持update delete(2) NoMatchingFactory 异常修复(3)table schema 类型异常6.Hive 流批一体7.Hive Diale

2020-06-16 17:52:36 608

原创 Docker 安装Elasticsearch、Kibana实战--避免踩坑

一、Docker安装Elasticsearch1.拉取对应版本的镜像docker pull elasticsearch:7.6.02.设置配置文件elasticsearch.yamlcluster.name: "docker-cluster"node.name: node-1node.master: truenetwork.host: 0.0.0.0http.cors.enabled: truehttp.cors.allow-origin: "*"3.宿主机配置文件/opt/elk/

2020-06-12 19:03:17 576

原创 Flink 异步IO实践

一、Aysnc I/O 是啥?流计算系统中经常需要与外部系统进行交互,比如需要查询外部数据库以关联上用户的额外信息。Flink Async I/O API 允许用户在数据流中使用异步请求客户端访问外部存储。该API处理与数据流的集成,以及消息顺序性(Order)、事件时间(event time)、一致性(容错)等脏活累活。用户只需要专注于业务。二、业务实现:访问外部系统实时获取用户所在位置信息(省市信息、区号等)import com.alibaba.fastjson.JSON;import com.

2020-06-12 15:03:58 237

原创 Flink 窗口聚合函数之ProcessWindowFunction实践

一、ProcessWindowFunction使用场景前面提到的 ReduceFunction 和 AggregateFunction 都是基于中间状态实现增量计算的窗口函数,虽然已经满足绝大多数场景,但在某些情况下,统计更复杂的指标可能需要依赖于窗口中所有的数据元素,或需要操作窗口中的状态数据和窗口元数据,这时就需要使用到 ProcessWindowsFunction,ProcessWindowsFunction 能够更加灵活地支持基于窗口全部数 据元素的结果计算,例如对整个窗口数据排序取 TopN,这

2020-06-12 14:06:19 7907 7

原创 Flink 窗口聚合函数之AggregatFunction实践

一、AggregatFunction概念Flink 的AggregateFunction是一个基于中间计算结果状态进行增量计算的函数,AggregateFunction接口相对ReduceFunction更加灵活,实现复杂度也相对较高,输入数据类型和输出数据类型可以不一致,通常和WindowFunction一起结合使用。二、案例实践:每隔3秒计算最近5秒内,每个基站的日志数量1.创建日志数据对象case class Log(sid:String,var callOut:String, var cal

2020-06-12 11:45:54 1106

原创 Flink 窗口聚合函数之ReduceFunction实践

Flink Window API之ReduceFunction实践一、ReduceFunction的概念Flink使用ReduceFunction来对窗口中的元素进行增量聚合。要求输入和输出的数据类型一致,定义了如何把两个输入的元素进行合并来生成相同类型的输出元素的过程。二、案例实践:每隔5秒统计通话日志的数量1.日志数据对象case class Log(sid:String,var callOut:String, var callIn:String, callType:String, callT

2020-06-11 18:59:17 1592

空空如也

空空如也

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

TA关注的人

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