自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DataLake — 批流一体化的追风者(2) -- Delta Lake核心原理解析

一、Delta Lake1.Delta Lake基础概述  接上文,我们全面地讲解了Data Lake相关的概念、对比区别以及实际发展历程等。那么这篇首章开篇我们来讲历史最为悠久的Delta Lake。它的定位是流批一体的存储中间层,支持 update/delete/merge。由于出自Databricks,spark的所有数据写入方式,包括基于dataframe的批、流,以及 SQL的Insert、Insert Overwrite等都是支持的(开源版本SQL写暂不支持)。与Iceber...

2021-11-29 20:28:04 1811 1

原创 DataLake — 批流一体化的追风者(1)

技术分享知识经验解决方案架构本次将之前讲解的DataLake相关的课程资料整理后发出,供大家参考学习,后续有问题可知音楼交流。一、DataLake 概述  数据湖从本质上来讲,是一种企业数据架构方法,物理实现上则是一个数据存储平台,用来集中化存储企业内海量的、多来源,多种类的数据,并支持对数据进行快速加工和分析。从实现方式来看,目前Hadoop是最常用的部署数据湖的技术,但并不意味着数据湖就是指Hadoop集群。为了应对不同业务需求的特点,MPP数据库+Hadoop集群+..

2021-11-29 20:19:59 1853

原创 Flink时间窗口实战解析(一)

一、APM服务背景 二、watermark问题定位 2.1 watermark的设置 2.2 assign分发watermark选择 2.3 AssignerWithPeriodicWatermarks 2.4 AssignerWithPunctuatedWatermarks 2.5 BoundedOutOfOrdernessTimestampExtractor 随着业务的增长,培优内部对实时任务的需求也愈..

2021-11-29 20:13:39 1293 1

原创 Apache Flink如何处理背压

Apache Flink如何处理背压经常有人会问Flink如何处理背压问题。其实,答案很简单:Flink没用使用任何通用方案来解决这个问题,因为那根本不需要那样的方案。它利用自身作为一个纯数据流引擎的优势来优雅地响应背压问题。这篇文章,我们将介绍背压问题,然后我们将深挖Flink的运行时如何在task之间传输数据缓冲区内的数据以及流数据如何自然地两端降速来应对背压,最终将以一个小示例来演示它。1.什么是背压像Flink这样的流处理系统需要能够优雅地应对背压问题。背压通常产生于这样一种场景:当一个系统接

2021-02-08 13:17:54 696

原创 将博客搬至CSDN

搬家通知目前为了多路更新,将博客也迁至CSDN,具体地址为:https://blog.csdn.net/weixin_39545874?spm=1011.2124.3001.5343,各位小伙伴后续可以在简书和csdn上来沟通交流,谢谢~...

2021-02-08 11:59:35 62

原创 实时用户画像实践(1)

1.总体方案  想着做用户画像已经是很久之前的事情了,用户画像,顾名思义是我们通过数据化的资产和一定的计算口径来给我们的用户打上具体的标签,然后呈现给业务或者运营,供给使用。这里,标签包含了很多,诸如和用户相关,还有和其所处的消费场景和历史线索相关,很多很多,基础标签,行为标签以及趋势标签等等。今天要谈的不是我们离线计算好,然后通过实时或者准实时的方式写入到接口侧的那一种,二是通过实时涌动的数...

2020-03-12 17:41:09 473

原创 Flink维表join与异步优化(二)

1. Async I/O介绍 由上文可以发现,需要解决维表join的问题,我们可以采用两种方式来进行,一是Async I/O,二是AsyncSourceTable,今天我们先来聊一下Async I/O吧。 异步方法,通常是用来提供系统吞吐的一种方式,与同步方法不同的在于其支持的qps会高很多,同理,在flink去查找外部维表的过程中需要引入外部数据库来进行查询,那么无可避免,在大多数情况下,I...

2020-01-14 19:52:27 655

原创 Flink维表join与异步优化(一)

1. 业务背景 由于运营及产品需要,我们针对之前的离线画像来进行抽取,并将其转换成实时画像来提供给业务方进行接口查询服务。 数据来源为MySQL,维度数据来源于离线hive计算结果,针对本期是针对单用户的查询,所以我们会将具体的用户及相应的查询条件来组合,之后进行hbase单点查询,得到该用户的标签信息,而标签的写入通过flink写入hbase,目前有两个设想,一是将查询条件组合在rowkey...

2020-01-10 11:12:13 1011

原创 kafka处理超大消息的考虑

   Kafka设计的初衷是迅速处理短小的消息,一般10K大小的消息吞吐性能最好(可参见LinkedIn的kafka性能测试)。但有时候,我们需要处理更大的消息,比如XML文档或JSON内容,一个消息差不多有10-100M,这种情况下,Kakfa应该如何处理?1.建议针对这个问题,有以下几个建议:最好的方法是不直接传送这些大的数据。如果有共享存储,如NAS, HDFS, S3等,可以把...

2019-07-30 20:03:07 241

原创 Kafka升级建议及规划

1.从0.8.x, 0.9.x 或 0.10.0.X 升级到 0.10.1.0   0.10.1.0有线协议更改,通过遵循以下建议的滚动升级,在升级期间不会停机。但是,需要注意升0.10.1.0中潜在的突发状况。注意:由于引入了新的协议,要在升级客户端之前先升级kafka集群(即,0.10.1.x仅支持 0.10.1.x或更高版本的broker,但是0.10.1.x的broker向下支持旧版...

2019-07-30 19:39:15 411

原创 kafka-flink性能测试规划(下)

4.3 broker测试   涉及的参数众多,诸如以下:default.replication.factornum.replica.fetchersauto.create.topics.enablemin.insync.replicasunclean.leader.election.enablebroker.racklog.flush.interval.messageslog....

2019-07-30 19:26:46 644

原创 kafka-flink性能测试规划(中)

4.2 consumer测试4.2.1 thread测试脚本./kafka-consumer-perf-test.sh --zookeeper 110.240.0.9:2181,10.240.0.10:2181,10.240.0.13:2181/kafka --topic test_kafka_perf1 --fetch-size 1048576 --messages 100000 ...

2019-07-30 19:26:16 286

原创 kafka-flink性能测试规划(上)

1.压测方案1.1 压测目的   本次性能测试在正式环境下单台服务器上Kafka处理MQ消息能力进行压力测试。测试包括对Kafka写入MQ消息和消费MQ消息进行压力测试,根据不同量级的消息处理结果,评估Kafka的处理性能是否满足项目需求(该项目期望Kafka能够处理上亿级别的MQ消息)。1.2 测试范围及方法1.2.1 测试范围概述   测试使用Kafka自带的测试脚本,通过命令对Ka...

2019-07-30 19:21:21 792 1

原创 6.Otter操作流程

Otter操作流程1.步骤首先要去otter配置相应属性;其次,配合数仓以及实时kafka部分建表建主题;配置otter 从库表信息;开启sqoop倒全量,之后otter开启倒增量;2.详细流程先去到从库--即自己的otter库建一张和原始表结构相同的表;从Otter数据源部分添加master和slave节点信息,包括url,user,pwd等;从Otter数据表部分添加m...

2019-06-03 13:37:04 684

原创 5.Otter常见问题

[toc]常见问题1. canal和otter的关系?答: 在回答这问题之前,首先来看一张canal&otter和mysql复制的类比图.imagemysql的自带复制技术可分成三步:master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);s...

2019-06-03 13:36:54 2517 1

原创 4.Otter操作简介

Adminguide1.几点说明otter系统自带了manager,所以简化了一些admin管理上的操作成本,比如可以通过manager发布同步任务配置,接收同步任务反馈的状态信息等。目前manager的操作可分为两部分:同步配置管理添加数据源canal解析配置添加数据表同步任务同步状态查询查询延迟查询吞吐量查询同步进度查询报警&异常日志mana...

2019-06-03 13:36:07 2022

原创 3.Otter快速上手

QuickStart1.几点说明otter依赖于canal提供数据库日志,针对mysql数据有一些要求,具体请查看: https://github.com/alibaba/canal/wiki/QuickStart有一点特别注意:目前canal支持mixed,row,statement多种日志协议的解析,但配合otter进行数据库同步,目前仅支持row协议的同步,使用时需要注意.环境准备...

2019-06-03 13:35:00 241 2

原创 2.Otter原理介绍

Introduction项目介绍名称:otter ['ɒtə(r)]译意: 水獭,数据搬运工语言: 纯java开发定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库.工作原理image原理描述:基于Canal开源产品,获取数据库增量日志数据。 什么是Canal:https://github.com/alibaba/canal...

2019-06-03 13:32:54 1679

原创 1.Otter初步介绍

Otter初步介绍项目背景阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。otter第一版本可追溯到04~05年,此次外部开源的版本为第4版,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全...

2019-06-03 13:32:00 150

原创 Flink 1.7 State Evolution

1.状态schema演变Apache Flink流应用程序通常设计为无限期或长时间运行。对于所有长期运行的服务,需要更新应用程序以适应不断变化的需求。对于应用程序所针对的数据schema也是如此;它们随着应用程序的发展而发展。本章概述了如何演进状态类型的数据schema。当前的限制因不同类型和state结构(ValueState、ListState等)而不同。需要注意的是,只有在使用由Flin...

2019-03-14 21:14:19 228

原创 flink on yarn 启动源码分析

flink on yarn 启动问题  有两个月没发文了,这次在沉寂了两个月后带来的是我们在日常启动flink时大都会遇到的一个问题,不过也困扰了我断断续续有两天时间,后来在拨云见日之后发现豁然开朗的本质,其实,我们的解决问题时,有时候还是只浮于表面,而没有看到深藏冰面以下的那一角,所以继续努力是少不了的,那么切开问题,我们来从现象入手吧!1.flink启动现象  我们还在用flink on...

2019-03-14 20:37:19 681

原创 Flink UDF 自动注册实践

日前,在更新UDF函数这块的一些功能时,发现一些较为细小但大家都会遇到的问题,作为趟过的坑发出来,希望大家能够避免。1.注册UDF函数1.1 注册相关方法 此处,我们使用的udf函数为标量函数,它继承的是ScalarFunction,该类在我们的使用中,发现它继承自UserDefinedFunction这个类,该处的udf函数由用户自己定义,而函数的注册此处我们自己实现; 函...

2018-11-24 15:51:43 381

原创 Flink UDF

本文会主要讲三种udf:ScalarFunctionTableFunctionAggregateFunction 用户自定义函数是非常重要的一个特征,因为他极大地扩展了查询的表达能力。本文除了介绍这三种udf之外,最后会介绍一个redis作为交互数据源的udf案例。注册用户自定义函数 在大多数场景下,用户自定义函数在使用之前是必须要注册的。对于Scala的Table ...

2018-11-18 19:54:33 93

原创 Apache Flink如何管理Kafka consumer offsets

在我们Flink Friday Tip的这一集中,我们将逐步说明Apache Flink如何与Apache Kafka协同工作,以确保Kafka主题的记录以一次性保证进行处理。检查点是Apache Flink的内部机制,可以从故障中恢复。检查点是Flink应用程序状态的一致副本,包括输入的读取位置。如果发生故障,Flink将通过从检查点加载应用程序状态并从恢复的读取位置继续恢复应用程序,就像没有...

2018-11-16 17:24:59 167

原创 Google-Streaming102

streaming现实中的解决之道简单回顾和路线图在Streaming   101中,首先澄清了一些术语,介绍了有限数据 VS无限数据。有限数据源具有有限的大小,通常被称为“批处理”数据。无限数据源源可能具有无限大小,通常被称为“流”数据。在后边将会尽量避免使用批处理和流式传输来修饰数据源,因为这些名称带有一些令人误解和限制性的含义。   然后,解释了批处理和流处理引擎之间的区别:批处理引擎...

2018-11-16 17:19:02 99

原创 Google-Streaming101

批处理之外的流式世界开宗明义!本文根据Google Beam大神Tyler Akidau的系列文章《The world beyond batch: Streaming 101》(批处理之外的流式世界)整理而成, 主要讨论流式数据处理。在大数据领域,流式数据处理越发地重要了。原因有以下几点:人们越来越想要得到更及时的数据,而切换到流式处理(streaming)无疑是一个降低延时的好办法海量...

2018-11-16 17:16:46 123

原创 Flink高可用集群搭建

一、部署说明flink是apache一款大数据实时计算应用,在生产环境中,用来实时计算应用产生的日志,数据等,满足预警,入库等需求二、系统环境系统版本:centos 7.2java版本: jdk 1.8.0_161zookeeper版本: zookeeper-3.4.9hadoop版本: Hadoop-2.8.3.tar.gzflink版本: flink-1.4.0四个机...

2018-11-16 17:13:30 93

原创 flink on yarn部署

flink on yarn需要的组件与版本如下Zookeeper 3.4.9 用于做Flink的JobManager的HA服务hadoop 2.7.2 搭建HDFS和Yarnflink 1.3.2 或者 1.4.1版本(scala 2.11)Zookeeper, HDFS 和 Yarn 的组件的安装可以参照网上的教程。在zookeeper,HDFS 和Yarn的组件的安装好的前提下,...

2018-11-16 17:10:29 515

原创 Flink设置Java Opts

设置Java Opts可以手动设置环境变量JAVA_HOME或配置项env.java.home中conf/flink-conf.yaml,如果你想手动覆盖Java运行时使用。所有配置都已完成conf/flink-conf.yaml,预计将是具有格式的YAML键值对的扁平集合key: value。系统和运行脚本在启动时解析配置。对配置文件的更改需要重新启动Flink JobManager和T...

2018-11-16 17:07:10 4151

空空如也

空空如也

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

TA关注的人

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