自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jiny_li的博客

Search for peace of mind

  • 博客(26)
  • 收藏
  • 关注

原创 Flink DataStream使用EventTime和Watermarks解决乱序数据

场景分析       流处理从事件产生,到流经source,再到operator,中间是有一个过程和时间的。虽然大部分情况下,流到operator的数据都是按照事件产生的时间顺序来的,但是也不排除由于网络延迟等原因,导致乱序的产生,特别是使用kafka的话,多个分区的数据无法保证有序。所以在进行window计算的时候,我们又不能无限期的等下去,必须要有个机制来保证一个特定的时间后,必须触发w...

2019-01-16 23:57:11 1405

原创 Flink DataStream API 之 Time

基本介绍针对stream数据中的时间,可以分为以下三种•Event Time:事件产生的时间,它通常由事件中的时间戳描述。•Ingestion time:事件进入Flink的时间•Processing Time:事件被处理时当前系统的时间 设置Time类型Flink中,默认Time类似是ProcessingTime,可以在代码中设置final StreamEx...

2019-01-16 23:36:03 237

原创 Flink DataStream API 之 windows聚合分类

 基本介绍增量聚合•窗口中每进入一条数据,就进行一次计算•reduce(reduceFunction)•aggregate(aggregateFunction)•sum(),min(),max() 全量聚合•等属于窗口的数据到齐,才开始进行聚合计算【可以实现对窗口内的数据进行排序等需求】•apply(windowFunction)•process(pr...

2019-01-16 23:22:10 1336

原创 Flink DataStream API 之 windows类型介绍

Window的类型窗口通常被区分为不同的类型:•tumbling windows:滚动窗口 【没有重叠】•sliding windows:滑动窗口 【有重叠】tumbling windows:滚动窗口 【没有重叠】 使用demoDataStream<T> input = ...;// tumbling event-time windowsin...

2019-01-16 23:00:25 235

原创 Flink Kafka-Connector Producer详解

Kafka Producer的容错-Kafka 0.9 and 0.10如果Flink开启了checkpoint,针对FlinkKafkaProducer09 和FlinkKafkaProducer010 可以提供 at-least-once的语义,还需要配置下面两个参数•setLogFailuresOnly(false)•setFlushOnCheckpoint(true)注意...

2019-01-14 19:31:54 2465

原创 Flink Kafka-Connector Consumer详解

Kafka Consumer消费策略1、setStartFromGroupOffsets()【默认消费策略】默认读取上次保存的offset信息,如果是应用第一次启动,读取不到上次的offset信息,则会根据这个参数auto.offset.reset的值来进行消费数据2、setStartFromEarliest()从最早的数据开始进行消费,忽略存储的offset信息3、setS...

2019-01-14 19:17:38 3400

原创 Flink 并行度详解

TaskManager与Slot介绍     Flink的每个TaskManager为集群提供solt。 solt的数量通常与每个TaskManager节点的可用CPU内核数成比例。一般情况下你的slot数是你每个节点的cpu的核数。并行度(Parallel)     一个Flink程序由多个任务组成(source、transformation和 sink)。 一个任务由多个...

2019-01-14 18:58:56 12106

原创 Flink状态管理之savePoint

基本介绍1、Flink通过Savepoint功能可以做到程序升级后,继续从升级前的那个点开始执行计算,保证数据不中断2、全局,一致性快照。可以保存数据源offset,operator操作状态等信息3、可以从应用在过去任意做了savepoint的时刻开始继续消费checkPoint vs savePointcheckPoint•应用定时触发,用于保存状态,会过期•内...

2019-01-13 16:23:16 1653

原创 Flink状态管理之Restart Strategies(重启策略)

基本介绍1、Flink支持不同的重启策略,以在故障发生时控制作业如何重启。集群在启动时会伴随一个默认的重启策略,在没有定义具体重启策略时会使用该默认策略。 如果在工作提交时指定了一个重启策略,该策略会覆盖集群的默认策略2、默认的重启策略可以通过 Flink 的配置文件 flink-conf.yaml 指定。配置参数 restart-strategy 定义了哪个策略被使用。3、常用的重...

2019-01-13 16:01:14 2626

原创 Flink状态管理之State Backend(状态的后端存储)

基本介绍1、默认情况下,state会保存在taskmanager的内存中,checkpoint会存储在JobManager的内存中。2、state 的store和checkpoint的位置取决于State Backend的配置(env.setStateBackend(…))3、一共有三种State Backend:MemoryStateBackend、FsStateBackend、R...

2019-01-13 15:22:35 11178 1

原创 Flink状态管理之checkPoint

简介1、state一般指一个具体的task/operator的状态【state数据默认保存在java的堆内存中】,而checkpoint【可以理解为checkpoint是把state数据持久化存储了】,则表示了一个Flink Job在一个特定时刻的一份全局状态快照,即包含了所有task/operator的状态注意:task是Flink中执行的基本单位。operator指算子(transf...

2019-01-13 15:07:01 2245

原创 Flink DataSet API 之 Distributed Cache(分布式缓存)

基本介绍       Flink提供了一个分布式缓存,类似于hadoop,可以使用户在并行函数中很方便的读取本地文件。此缓存的工作机制如下:程序注册一个文件或者目录(本地或者远程文件系统,例如hdfs或者s3),通过ExecutionEnvironment注册缓存文件并为它起一个名称。当程序执行,Flink自动将文件或者目录复制到所有taskmanager节点的本地文件系统,用户可以通过这个...

2019-01-12 15:02:21 627

原创 Flink DataSet API 之 Accumulators & Counters(累加器)

基本介绍1、Accumulator即累加器,与Mapreduce counter的应用场景差不多,都能很好地观察task在运行期间的数据变化。可以在Flink job任务中的算子函数中操作累加器,但是只能在任务执行结束之后才能获得累加器的最终结果。2、Counter是一个具体的累加器(Accumulator)实现。例如:IntCounter, LongCounter 和 DoubleCo...

2019-01-12 14:50:11 1049

原创 Flink DataSet API 之 Broadcast(广播变量)

基本介绍1、广播变量允许编程人员在每台机器上保持1个只读的缓存变量,而不是传送变量的副本给tasks2、广播变量创建后,它可以运行在集群中的任何function上,而不需要多次传递给集群节点。另外需要记住,不应该修改广播变量,这样才能确保每个节点获取到的值都是一致的。可以理解为是一个公共的共享变量,我们可以把一个dataset 数据集广播出去,然后不同的task在节点上都能够获取到,这个...

2019-01-12 14:38:29 1478

原创 Flink DataSet API之partition

基本介绍Rebalance:对数据集进行再平衡,重分区,消除数据倾斜Hash-Partition:根据指定key的哈希值对数据集进行分区,某一key集中时还是会出现数据倾斜 (partitionByHash())Range-Partition:根据指定的key对数据集进行范围分区   (.partitionByRange()) Custom Partitioning:类似于DSt...

2019-01-11 14:04:12 1864

原创 Flink DataSet API之Transformations

算子介绍Map:输入一个元素,然后返回一个元素,中间可以做一些清洗转换等操作FlatMap:输入一个元素,可以返回零个,一个或者多个元素MapPartition:类似map,一次处理一个分区的数据Filter:过滤函数,对传入的数据进行判断,符合条件的数据会被留下Reduce:对数据进行聚合操作,结合当前元素和上一次reduce返回的值进行聚合操作,然后返回一个新的值Ag...

2019-01-11 13:55:04 498

原创 Flink DataStream API之Data Sink

基本介绍writeAsText():将元素以字符串形式逐行写入,这些字符串通过调用每个元素的toString()方法来获取print() / printToErr():打印每个元素的toString()方法的值到标准输出或者标准错误输出流中自定义输出addSink【kafka、redis】Sink 容错性保证 Sink  语义保证 ...

2019-01-10 13:52:25 439

原创 Flink DataStream API之partition

Random partitioning:随机分区dataStream.shuffle()Rebalancing:对数据集进行再平衡,重分区,消除数据倾斜dataStream.rebalance()从源码中关键代码,可看出是partition的数据重新分配,以达到完全的均衡import org.apache.flink.annotation.Internal;impo...

2019-01-10 13:32:56 1947

原创 Flink DataStream API之Transformations

map:输入一个元素,然后返回一个元素,中间可以做一些清洗转换等操作flatmap:输入一个元素,可以返回零个,一个或者多个元素filter:过滤函数,对传入的数据进行判断,符合条件的数据会被留下keyBy:根据指定的key进行分组,相同key的数据会进入同一个分区两种典型用法dataStream.keyBy("someKey") // 指定对象中的 "someKey"字段作...

2019-01-09 23:30:46 459

原创 Flink DataStream API之Data Sources

1、介绍基于文件    readTextFile(path) 读取文本文件,文件遵循TextInputFormat 读取规则,逐行读取并返回。基于socket  socketTextStream  从socker中读取数据,元素可以通过一个分隔符切开。基于集合  fromCollection(Collection) 通过java 的collection集合创建一个数据流,集...

2019-01-09 19:39:04 431

原创 Flink on yarn 集群HA 配置

1. HA 集群环境规划    flink on yarn 的HA 其实是利用yarn 自己的恢复机制。在这需要用到zk,主要是因为虽然flink-on-yarn cluster HA 依赖于Yarn 自己的集群机制,但是Flink Job 在恢复时,需要依赖检查点产生的快照,而这些快照虽然配置在hdfs,但是其元数据信息保存在zookeeper 中,所以我们还要配置zookeeper 的信息...

2019-01-08 13:55:59 539

原创 Flink on Yarn的两种运行方式

Flink on Yarn的两种运行方式第一种【yarn-session.sh(开辟资源)+flink run(提交任务)】•启动一个一直运行的flink集群•./bin/yarn-session.sh -n 2 -jm 1024 -tm 1024 [-d]•附着到一个已存在的flink yarn session•./bin/yarn-session.sh -id applic...

2019-01-06 19:36:52 5045 1

原创 Flink基础入门

Flink简介lApache Flink 是一个开源的分布式,高性能,高可用,准确的流处理框架。l主要由 Java 代码实现。l支持实时流(stream)处理和批(batch)处理,批数据只是流数据的一个极限特例。lFlink原生支持了迭代计算、内存管理和程序优化。Flink架构图Flink的流处理与批处理l在大数据处理领域,批处理任务与流处理任务一般被认为是两种不...

2019-01-06 19:27:22 618 1

原创 DStream算子updateStateByKey实现全局统计计数

updateStateByKey操作,可以让每个key维护一份state,并持续不断的更新该state。1、首先,要定义一个state,可以是任意的数据类型;2、其次,要定义state更新函数——指定一个函数如何使用之前的state和新值来更新state。对于每个batch,Spark都会为每个之前已经存在的key去应用一次state更新函数,无论这个key在batch中是否有

2018-01-07 19:29:10 2186

原创 Hive处理json格式数据

1、数据示例假设info表中存有两个字段,分别是id,contentcontent={"resultCode":"0000","message":"处理成功","properties":[{"birthday":"1996-2-22","issued_by":"公安局","valid_date":"2017.03.19-2027.03.19","address":"XX

2017-12-19 20:45:49 2459

原创 flume-ng学习之spooling directory类型source配置深入及解析

flume概述Flume是一个分布式、可靠、高可用的海量日志聚合系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据的简单处理,并写到各种数据接收方的能力。Flume主要由3个重要的组件构成:Source、Sink、Channel。flume的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到

2016-06-27 16:41:33 3558

空空如也

空空如也

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

TA关注的人

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