6 程序猿进阶

尚未进行身份认证

我要认证

梦想成为自由职业者

等级
TA的排名 7k+

YARN 的优化与实践

目录YARN 简介YARN 生态圈YARN 架构字节跳动对 YARN 的定制利用率提升多种负载场景优化稳定性优化异地多活未来工作团队介绍本文从利用率提升、多负载场景优化、稳定性提升、异地多活四个方面介绍了字节跳动在四年来对 Hadoop YARN 进行的一系列的优化,以及生产环境中的实践经验。YARN 简介YARN 生态圈YARN (Yet Another Resource Negotiator) 是 Hadoop 集群的资源管理系统,是 Hado

2020-08-11 21:12:28

Kafka 管理【主题、分区、消费者组】

主题操作使用 kafka-topics.sh 工具可以执行主题的大部分操作。可以用它创建、修改、删除和查看集群里的主题。要使用该工具的全部功能,需要通过 --zookeeper参数提供 Zookeeper的连接字符串。kafka 的大部分命令行工具直接操作 Zookeeper 上的元数据,并不会连接到 broker上。因此,要确保所使用工具版本与集群里的 broker版本相匹配。直接使用集群 broker自带的工具是最保险的。创建主题在集群中创建一个主题需要3个参数:主题名字(可以包含字

2020-08-10 22:04:40

Flink 状态一致性

状态一致性有状态的流处理,内部每个算子任务都可以有自己的状态,对于流处理器内部来说,所谓的状态一致性,其实就是我们所说的计算结果要保证准确。一条数据不应该丢失,也不应该重复计算。在遇到故障时可以恢复状态,恢复以后的重新计算,结果应该也是完全正确的。状态一致性分类:【1】AT-MOST-ONCE(最多一次):当任务故障时,最简单的做法是什么都不干,既不恢复丢失的状态,也不重播丢失的数据。AT-MOST-ONCE语义的含义是最多处理一次事件。效率非常高,牺牲了容错性和正确性。【2】AT-LEAST-

2020-08-05 21:31:47

Flink 容错机制 Checkpoint & Savepoint

一致性检查点(checkpoint)Flink 故障恢复机制的核心,就是应用状态的一致性检查点。有状态流应用的一致检查点,其实就是所有任务的状态,在某个时间点的一份拷贝(一份快照);这个时间点,应该是所有任务都恰好处理完一个相同的输入数据的时候。如上图所示:数据按照一定的顺序进行处理,Source 表示当前处理的队列。sum_even 表示统计偶数的和6=2+4,sum_odd表示统计奇数的和9=1+3+5。此时5这个数从头到尾都处理完了。因此状态保存的是处理完之后的状态,Source = 5、sum

2020-08-04 20:17:59

SpringCloud 系列(九)------ Gateway 网关

网关定义API 网关是一个反向路由:屏蔽内部细节,为调用者提供统一入口,接收所有调用者请求,通过路由机制转发到服务实例。API网关是一组“过滤器”集合:可以实现一系列与核心业务无关的横切面功能,如安全认证、限流熔断、日志监控。网关在系统中所处的位置:网关的功能Zuul 与 Spring Cloud Gateway 比较 优点 缺点 Gateway 1、线程开销小 2、使用轻量级 netty 异步io实现通信 3、支持各种长连接,websocke.

2020-08-04 20:17:49

JVM 线程 Dump 分析

Thread Dump 是非常有用的诊断 Java应用问题的工具。每一个 Java虚拟机都有及时生成所有线程在某一点状态的 thread-dump的能力,虽然各个 Java虚拟机打印的 thread dump略有不同,但是大多都提供了当前活动线程的快照,及 JVM中所有 Java线程的堆栈跟踪信息,堆栈信息一般包含完整的类名及所执行的方法,如果可能的话还有源代码的行数。Thread Dump能在各种操作系统下使用,同时能在生产环境下使用而不影响系统的性能和能将问题直接定位到应用程序的代码行上;Threa

2020-08-03 22:12:02

Flink 使用场景

Apache Flink 功能强大,支持开发和运行多种不同种类的应用程序。它的主要特性包括:批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障等。Flink 不仅可以运行在包括 YARN、 Mesos、K8s 在内的多种资源管理框架上,还支持在裸机集群上独立部署。在启用高可用选项的情况下,它不存在单点失效问题。事实证明,Flink 已经可以扩展到数千核心,其状态可以达到 TB 级别,且仍能保持高吞吐、低延迟的特性。世界各地有很多要求严苛的流处理应用都运行在 Flink 之上。事件驱动型

2020-08-01 22:21:48

Flink ProcessFunction API

之前学习的转换算子是无法访问事件的时间戳信息和水位线信息的。而这在一些应用场景下,极为重要。例如 MapFunction 这样的 map 转换算子就无法访问时间戳或者当前事件的事件时间。基于此,DataStreamAPI 提供了一系列 Low-Level 转换算子,可以访问时间戳、watermark 以及注册定时事件。还可以输出特定的一些事件,例如超时事件等。ProcessFunction 用来构建事件驱动的应用以及实现自定义的业务逻辑(使用之前的 window 函数和转换算子无法实现)例如,FlinkSQ

2020-08-01 10:08:48

Flink SQL 编程+实战

Flink将数据处理接口抽象成四层链接,下面主要整理最高层的 FlinkSQL。Flink SQL 是什么(纯文本API)声明式API:属于 Flink 最高层的API,易于使用,只需要知道我需要什么东西,底层会帮用户完成;自动优化:屏蔽了 State的复杂性,自动做到最优处理。底层具有优化引擎;流批统一:相同的统计逻辑,即可以流模型运行,也可以批模式运行;应用广泛:ETL,统计分析,实时报表,实时风控。Window 聚合(Aggregation)我们需要在一个无线的数据流上,进行缓冲的工作

2020-07-29 23:31:00

Flink 指标、监控与告警

监控报警的链路美团点评的指标监控报警的链路如下图所示。首先是我们对日志和指标都会进行统一的集中化的收集。Reporter 把 Flink 作业的指标作为一条条日志打出来。然后再通过日志收集收上去,收到 Kafka 里面。接下来会通过实时作业做解析和聚合,再将得到的指标落到 Kafka 里,作为实时数据源。指标:衡量和描述对象的方式(可量化、标准化、多维度)监控:对指标进行监测和控制(实时、易用、可查询历史)下游会根据不同的需求,对不同的数据做不同的处理和展示。日志数据会落到 ES 里供查询使

2020-07-29 23:30:48

Flink 在快手的应用实践与技术演进之路

作为短视频分享跟直播的平台,快手有诸多业务场景应用了 Flink,包括短视频、直播的质量监控、用户增长分析、实时数据处理、直播 CDN 调度等。 本文将从 Flink 在快手的应用场景以及目前规模、Flink 在落地过程的技术演进过程、未来计划这三个方面详细介绍 Flink 在快手的应用与实践。Flink 在快手应用场景与规模快手计算链路是从 DB/Binlog 以及 WebService Log 实时入到 Kafka 中,然后接入 Flink 做实时计算,其中包括实时 ETL、实时分析、I..

2020-07-29 23:30:06

Flink Watermark和时间语义

Flink 中的时间语义时间语义:EventTime:时间件创建时间;Ingestion Time:数据进入 Flink 的时间;Processing Time:执行操作算子的本地系统时间,与机器无关。不同的时间语义有不同的应用场合,我们往往更关系事件时间(Event Time)。数据生成的时候就会自动注入时间戳,Event Time 可以从日志数据的时间戳(timestamp) 中提取。设置 Event Time我们可以直接在代码中,对执行环境调用 setStreamTimeCharacter

2020-07-27 23:41:26

字节跳动基于 Flink的 MQ 到 Hive实时数据集成

在数据中台建设过程中,一个典型的数据集成场景是将 MQ (Message Queue,例如 Kafka、RocketMQ 等)的数据导入到 Hive 中,以供下游数仓建设以及指标统计。由于 MQ-Hive 是数仓建设第一层,因此对数据的准确性以及实时性要求比较高。本文主要围绕 MQ-Hive 场景,针对目前字节跳动内已有解决方案的痛点,提出基于 Flink 的实时解决方案,并介绍新方案在字节跳动内部的使用现状。已有方案及痛点字节跳动内已有解决方案如下图所示,主要分了两个步骤:...

2020-07-15 18:03:31

Flink State 管理

State 概念流式计算的数据往往是转瞬即逝,当然,真实业务场景不可能说所有的数据都是进来之后就走掉,没有任何东西留下来,那么留下来的东西其实就是称之为 state,中文可以翻译成状态。在下面这个图中,我们的所有的原始数据进入用户代码之后再输出到下游,如果中间涉及到 state 的读写,这些状态会存储在本地的 state backend(可以对标成嵌入式本地 kv 存储)当中接下来我们会在四个维度来区分两种不同的 state:operator state 以及 keyedstate:1. 是

2020-07-27 21:16:54

Flink Connector 开发

Flink Streaming ConnectorFlink 是新一代流批统一的计算引擎,它需要从不同的第三方存储引擎中把数据读过来,进行处理,然后再写出到另外的存储引擎中。Connector 的作用就相当于一个连接器,连接 Flink 计算引擎跟外界存储系统。Flink 里有以下几种方式,当然也不限于这几种方式可以跟外界进行数据交换:【1】Flink 里面预定义了一些 source 和 sink;【2】Flink 内部也提供了一些 Boundled connectors;【3】可以使用第三方 A

2020-07-26 22:11:19

Flink Window API

窗口(Window)【1】一般真实的流都是无界的,怎么处理无界的数据?【2】可以把无限的数据流进行切分,得到有限的数据集进行处理。也就是得到有界流。【3】窗口(Window)就是将无限流切割为有限流的一种方式,它会将流数据分发到有限大小的桶(bucket)中进行分析。时间窗口(Time Window)/计数窗口(Count Window)【1】滚动时间窗口/滚动计数窗口:将数据依据固定的窗口长度等长的对数据进行切分。时间对齐,窗口长度固定,没有重叠。【2】滑动时间窗口/滑动计数窗口:固定

2020-07-26 20:38:18

Flink 输出至 MySql

【1】引入 pom 依赖,我的 Mysql版本为 5.7.19<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.

2020-07-25 15:37:16

Flink Kafka[输入/输出] Connector

本章重点介绍生产环境中最常用到的 Flink kafka connector。使用 Flink 的同学,一定会很熟悉 kafka,它是一个分布式的、分区的、多副本的、 支持高吞吐的、发布订阅消息系统。生产环境环境中也经常会跟 kafka 进行一些数据的交换,比如利用 kafka consumer 读取数据,然后进行一系列的处理之后,再将结果写出到 kafka中。这里会主要分两个部分进行介绍,一是 Flink kafka Consumer,一个是 Flink kafka Producer首先看一个例子来串

2020-07-25 14:04:08

Flink 输出至 Elasticsearch

【1】pom.xml 文件依赖<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-elasticsearch6_2.12</artifactId> <version>1.10.0</version></dependency>【2】ES6 Scala 代码package c

2020-07-24 23:44:16

Flink 四层转化流程【Program、StreamGraph、JobGraph、ExecutionGraph、物理执行计划】

Flink Job 执行作业的流程,文章将从两个方面进行分享:一是如何从 Program 到物理执行计划,二是生成物理执行计划后该如何调度和执行。Flink四层转化流程Flink有四层转换流程,第一层为 Program到 StreamGraph;第二层为 StreamGraph到 JobGraph;第三层为 JobGraph到ExecutionGraph;第四层为 ExecutionGraph到物理执行计划。通过对 Program的执行,能够生成一个DAG执行图,即逻辑执行图。如下:第一层 Str.

2020-07-22 23:32:38

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 分享达人
    分享达人
    成功上传6个资源即可获取