自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ZooKeeper操作

ZooKeeper的shell操作客户端连接运行 zkCli.sh –server ip 进入命令行工具。cd /export/server/zookeeper-3.4.6bin/zkCli.sh -server node1:2181shell基本操作操作命令操作实例1:创建普通永久节点 create /app1 hello2: 创建序列化的永久节点create -s /app2 world3:创建临时节点create -e /tempnode world4:创

2021-08-09 22:44:48 245 2

原创 Apache ZooKeeper

Zookeeper基本知识ZooKeeper概述Zookeeper是一个分布式协调服务的开源框架。主要用来解决分布式集群中应用系统的一致性问题。ZooKeeper本质上是一个分布式的小文件存储系统。提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。从而用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。ZooKeeper特性1.全局数据一致:集群中每个服务器保存一份相同的数据副本,client无论连接到哪个服务器,展示的

2021-08-08 20:17:15 394

原创 Linux之shell编程

简介shell脚本执行方式Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务。它类似于 DOS 下的 command 和后来的 cmd.exe。Shell 既是一种命令语言,又是一种程序设计语言。Shell script 是一种为 shell 编写的脚本程序。Shell 编程一般指 shell脚本编程,不是指开发 shell 自身。Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。Linux 的

2021-08-07 22:05:34 198

原创 Linux高级命令(二)-awk命令补充

段之间的连接符OFSOFS用来指定输出记录分隔符案例1::打印1,2,3段,指定#为连接符awk '{OFS="#"}{print $1,$2,$3}' test_awk.txt指定分隔符-F 来指定分隔符准备工作,现在有个文件test_awk2.txt,内容如下:aaa:111:333bbb:444:555ccc:666:777:888ddd:999:222:999:cccc案例1: 打印出test_awk2.txt的第1段awk -F ':' '{print $1}' tes

2021-08-05 22:39:20 406 1

原创 Linux高级命令(二)

uniq命令uniq 命令用于检查及删除文本文件中重复出现的行,一般与 sort 命令结合使用,通过sort排序将相同的行放在一起,然后实现去重。目标uniq 命令用于检查及删除文本文件中重复出现的行,一般与 sort 命令结合使用。路径第一步:实现去重效果第二步:不但去重,还要统计出现的次数实现第一步:实现去重效果准备工作vim uniq_demo.txt张三 98李四 100王五 90赵六 95麻七 70李四 100王五 90赵六 95麻七 70实现1:简单

2021-08-04 22:32:27 133

原创 Linux高级命令

按照我的习惯所有操作都在/export/data/shell目录进行,请提前创建该目录.mkdir -p /export/data/重定向命令1、重定向 >Linux 允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。如:ls >test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )。案例:将/目录下文件的详情保存到test.txt文件中ll / > test.txt查看文件内容:cat test.txt总用量

2021-08-03 20:35:48 229

原创 虚拟机网络配置

VMware网卡配置模式虚拟机网卡默认有三种配置模式:桥接模式、NAT模式、仅主机模式,在本课程中,我们配置的是NAT模式。桥接模式需要依赖外部网络环境,VMware 虚拟出来的操作系统就像是局域网中的一台独立的主机,需要手工为虚拟系统配置IP地址,虚拟机的ip必须和宿主机(windows)的ip是同一个网段。开发环境下可能会使用, 学习环境不用, 类似于虚拟机和主机就好比插在同一台交换机上的两台电脑NAT模式使用 NAT 模式,就是让虚拟系统借助 NAT(网络地址转换)功能,通过宿主机器所在

2021-08-01 21:26:16 1650 14

原创 大数据必知必会的-Linux命令(三)

用户的创建和删除命令用户创建和密码设置useradd 用户名passwd 用户名useradd itheima #创建新用户itheimapasswd itheima #设置用户itheima密码用户删除user -r 用户名userdel -r itheima #删除用户itheima权限管理命令文件权限概述Linux操作系统是多任务多用户操作系统,用户是Linux系统工作中重要的一环, 用户管理包括 用户与组管理LInux对于不同的系统资源拥有不同的使用权限,Linux

2021-07-31 23:28:38 204

原创 大数据必知必会的-Linux命令(二)

文件操作命令touch命令touch命令创建文件touch 文件路径touch a.txt #在当前目录创建a.txt文件 touch /root/a.txt #在/root目录创建a.txt文件mv命令通过mv 命令可以用来移动文件或目录, 也可以给文件或目录重命名1)将文件移动另一个目录中:mv 文件 目录/touch a.txt mkdir dir mv a.txt dirls dir2)重命名mv 旧文件名 新文件名mv a.txt b.txt #重命名文件 m

2021-07-30 23:09:25 149

原创 大数据必知必会的-Linux命令

终端命令格式command [-options] [parameter]说明:command : 命令名, 相应功能的英文单词或单词的缩写[-options] : 选项, 可用来对命令进行控制, 也可以省略parameter : 传给命令的参数, 可以是 零个、一个 或者 多个显示文件列表命令ls 是英文单词list的简写, 其功能为列出目录的内容,是用户最常用的命令之一ls常用选项ls #查看当前目录内容 (缺点: 隐藏文件看不到,以 .开头的文件) !ls -a #查看当前目

2021-07-29 22:11:23 141

原创 从0到1Flink的成长之路- Flink 原理探析接着干干干

Slot SharingBy default, Flink allows subtasks to share slots even if they are subtasks ofdifferent tasks, so long as they are from the same job.Slot可以被多个SubTask共享使用,需要满足一下条件:SubTask必须是不同Task,也就是说一个Slot中的SubTask属于不同Operator操作;SubTask属于一个Job中任务,必须是一个Job

2021-07-26 22:09:06 177 4

原创 从0到1Flink的成长之路- Flink 原理探析接着干干

Job Managers, Task Managers, ClientsFlink 应用运行时包含2个组件:JobManager和TaskManagers:JobManagers,也称为Masters,协调Flink Job分布式执行。1.They schedule tasks, coordinate checkpoints, coordinate recovery on failures, etc.2.至少一个JobManager,针对高可用HA,可以启动多个JobManager,其中一个是le

2021-07-25 22:59:11 327 3

原创 从0到1Flink的成长之路- Flink 原理探析接着干

Transport PatternStream(流)可以在2个Operator之间传输数据,有两种不同Parttern(模式)传输:One-to-One streams:一对一,前一个Operator中一个SubTask将数据传输给后一个Operator中1个SubTask。类似Spark RDD中窄依赖,父RDD1个分区数据给子RDD1个分区。Redistributing streams:重分配,前一个Operator中一个SubTask将数据给后一个Operator中多个SubTask。类似

2021-07-24 23:00:08 121

原创 从0到1Flink的成长之路- Flink 原理探析

Flink 原理探析Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。Levels of Abstraction在Flink中提供不同层次抽象开发批处理Batch和流计算Streaming。abstractionProgram ModelProgram Model编写Flink 应用程序,主要分为5个步骤,如下所示:第一步、执行环境(Environment):Obt

2021-07-23 21:22:07 182 2

原创 从0到1Flink的成长之路-Flink Action 综合案例-BroadcastState 动态更新

BroadcastState 动态更新需求实时过滤出配置中的用户,并在事件流中补全这批用户的基础信息。事件流:表示用户在某个时刻浏览或点击了某个商品,格式如下。{"userID": "user_3", "eventTime": "2019-08-17 12:19:47", "eventType": "browse", "productID": 1}{"userID": "user_2", "eventTime": "2019-08-17 12:19:48", "eventType": "cli

2021-07-22 22:56:40 248 1

原创 从0到1Flink的成长之路-Flink Action 综合案例-订单自动好评

订单自动好评需求在电商领域会有这么一个场景,如果用户买了商品,在订单完成之后,一定时间之内没有做出评价,系统自动给与五星好评,使用Flink 定时器Timer来简单实现这一功能。Flink TimerTimer(定时器)是Flink Streaming API提供的用于感知并利用处理时间/事件时间变化的机制。Ververica blog上给出的描述如下:对于普通用户来说,最常见的显式利用Timer的地方就是KeyedProcessFunction,在其processElement()方

2021-07-21 22:25:51 172 3

原创 从0到1Flink的成长之路-Flink Action 综合案例

Flink Action 综合案例需求在大数据的实时处理中,实时大屏展示已经成了一个很重要的展示项,比如最有名的双十一大屏实时销售成交额展示。除了这个,还有一些其他场景的应用,比如在后台系统实时的展示网站当前的pv、uv等等,其实做法都是类似的。做一个最简单的模拟电商统计大屏的小例子,需求如下:1.实时计算出当天零点截止到当前时间的销售总额2.计算出各个分类的销售top33.每秒钟更新一次统计结果window: [2020-10-25 19:08:31]: 男装 = 1051.2wi

2021-07-20 21:39:12 551 3

原创 从0到1Flink的成长之路-Flink SQL 常用算子

Flink SQL 常用算子SELECTSELECT 用于从 DataSet/DataStream 中选择数据,用于筛选出某些列。示例:SELECT * FROM Table;// 取出表中的所有列SELECT name,age FROM Table;// 取出表中name 和 age 两列与此同时 SELECT 语句中可以使用函数和别名,例如上面提到的 WordCount 中:SELECT word, COUNT(word) FROM table GROUP BY word;WHE

2021-07-20 00:07:44 343 2

原创 从0到1Flink的成长之路-Table API& SQL巩固案例

流计算需求使用Flink SQL进行实时交易订单数据基本统计分析:每隔5秒统计最近5秒的每个用户的订单总数、订单的最大金额、订单的最小金额自定义数据源Source,模拟产生交易订单数据,订单实体类:OrderInfopackage xx.xxxxxx.flink.stream;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@NoArgsConstruct

2021-07-17 20:41:50 146 3

原创 从0到1Flink的成长之路-Table API& SQL巩固案例

批处理数据有sql_students.txt 保存学生信息:id,name,classname1,张三,1班2,李四,1班3,王五,2班4,赵六,2班5,田七,2班有sql_scores.txt 保存成绩:id,chinese,math,english1,100,90,802,97,87,743,70,50,434,100,99,995,80,81,82需求1.初始化flink env2.读取文件数据,读取student.txt、scores.txt两张表3.数

2021-07-16 22:54:57 84 2

原创 从0到1Flink的成长之路-Table API& SQL入门案例

入门案例:流计算使用Flink Table API和SQL分别对流计算编写入门案例,具体如下所示。SQL 案例Flink SQL流式数据处理案例演示,官方Example案例,具体代码如下所示:package xx.xxxxxx.flink.start.stream;import lombok.*;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.e

2021-07-15 23:49:20 139 3

原创 从0到1Flink的成长之路-Table API& SQL入门案例

入门案例依赖依赖<!-- Either... --><dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-api-java-bridge_2.11</artifactId> <version>1.10.0</version> <scope>provided</scope></

2021-07-14 22:33:04 123 1

原创 从0到1Flink的成长之路-Table API& SQL发展历程

Table API& SQL发展历程自2015年开始,阿里巴巴开始调研开源流计算引擎,最终决定基于 Flink 打造新一代计算引擎,针对 Flink 存在的不足进行优化和改进,并且在 2019 年初将最终代码开源,也就是Blink。Blink 在原来的 Flink 基础上最显著的一个贡献就是 Flink SQL 的实现。随着版本的不断更新,API 也出现了很多不兼容的地方。在 Flink 1.9 中,Table 模块迎来了核心架构的升级,引入了阿里巴巴Blink团队贡献的诸多功能,Flink

2021-07-13 22:30:18 151 3

原创 从0到1Flink的成长之路(二十一)-Flink Table API 与 SQL

Flink Table API 与 SQLProcessFunction 函数如下图,在常规的业务开发中,SQL、Table API、DataStream API比较常用,处于Low-level的Porcession相对用得较少,通过实战来熟悉处理函数(Process Function)。处理函数有很多种,最基础的应该ProcessFunction类,从它的类图可见有RichFunction的特性open、close,然后自己有两个重要的方法processElement和onTimer。实际项目中往

2021-07-12 23:36:56 83 4

原创 从0到1Flink的成长之路(二十一)-异步IO

异步IO介绍Async I/O是阿里巴巴贡献给社区的一个呼声非常高的特性,于1.2版本引入。主要目的是为了解决与外部系统交互时网络延迟成为了系统瓶颈的问题。异步IO操作的需求asynico.html流计算系统中经常需要与外部系统进行交互,通常的做法,如向数据库发送用户A的查询请求,然后等待结果返回,在之前,程序无法发送用户B的查询请求。这是一种同步访问方式,如下图所示左图所示:通常实现方式是向数据库发送用户a的查询请求(例如在MapFunction中),然后等待结果返回,在这之前,无法发送用户

2021-07-11 18:01:38 106 5

原创 从0到1Flink的成长之路(二十一)-Flink+Kafka实现End-to-End Exactly-Once代码示例

Flink+Kafka实现End-to-End Exactly-Oncehttps://ververica.cn/developers/flink-kafka-end-to-end-exactly-once-analysis/package xx.xxxxxx.flink.exactly;import org.apache.flink.api.common.serialization.SimpleStringSchema;import org.apache.flink.streaming.api.C

2021-07-10 22:18:59 296 3

原创 从0到1Flink的成长之路(二十一)-Flink+Kafka:End-to-End Exactly-Once代码示例

Flink+Kafka:End-to-End Exactly-Once代码示例analysis/package xx.xxxxxx.flink.exactly;import org.apache.flink.api.common.serialization.SimpleStringSchema;import org.apache.flink.streaming.api.CheckpointingMode;import org.apache.flink.streaming.api.datastrea

2021-07-08 22:07:24 105 2

原创 从0到1Flink的成长之路(二十一)-Flink+Kafka:End-to-End Exactly-Once

Flink+Kafka:End-to-End Exactly-OnceFlink的 End-to-End Exactly-Once需要Checkpoint+事务的提交/回滚操作,在分布式系统中协调提交和回滚的方法就是使用两阶段提交协议。了解下Flink的TwoPhaseCommitSinkFunction是如何支持End-to-End Exactly-Once的。版本说明Flink 1.4版本之前,支持Exactly Once语义,仅限于应用内部。Flink 1.4版本之后,通过两阶段提交(Two

2021-07-07 23:19:19 181 8

原创 从0到1Flink的成长之路(二十一)-Sink

Sink需要支持幂等写入或事务写入(Flink的两阶段提交需要事务支持)。1)、幂等写入(Idempotent Writes)幂等写操作是指:任意多次向一个系统写入数据,只对目标系统产生一次结果影响。例如,重复向一个HashMap里插入同一个Key-Value二元对,第一次插入时这个HashMap发生变化,后续的插入操作不会改变HashMap的结果,这就是一个幂等写操作。HBase、Redis和Cassandra这样的KV数据库一般经常用来作为Sink,用以实现端到端的Exactly-Once。

2021-07-06 23:53:02 318 2

原创 从0到1Flink的成长之路(二十)-Flink 高级特性(二)之End-to-End Exactly-Once 实现

End-to-End Exactly-Once 实现Flink内部借助分布式快照Checkpoint已经实现了内部的Exactly-Once,但是Flink自身是无法保证外部其他系统“精确一次”语义的,所以Flink 若要实现所谓“端到端(End to End)的精确一次”的要求,那么外部系统必须支持“精确一次”语义;然后借助一些其他手段才能实现StructuredStreaming 流式应用程序精确一次性语义实现:Flink 流式应用程序精确一次性语义实现Source发生故障时需要支持重设数

2021-07-05 23:37:27 159 6

原创 从0到1Flink的成长之路(二十)-Flink 高级特性(二)之扩展:End-to-End Exactly-Once

扩展:End-to-End Exactly-Once流处理的数据处理语义对于批处理,fault-tolerant(容错性)很容易做,失败只需要replay,就可以完美做到容错。对于流处理,数据流本身是动态,没有所谓的开始或结束,虽然可以replay buffer的部分数据,但fault-tolerant做起来会复杂的多。流处理(有时称为事件处理)可以简单地描述为是对无界数据或事件的连续处理。流或事件处理应用程序可以或多或少地被描述为有向图,并且通常被描述为有向无环图(DAG)。在这样的图中,每个边

2021-07-04 23:40:57 111 10

原创 从0到1Flink的成长之路(二十)-Flink 高级特性(二)之Savepoint

Savepoint保存点由用户手动创建、拥有和删除,它们的用例用于有计划的、手动的备份和恢复。savepointsSavepoint 介绍Savepoint:保存点,类似于以前玩游戏的时候,遇到难关/遇到boss,赶紧手动存个档,然后接着玩,如果失败了,赶紧从上次的存档中恢复,然后接着玩。在实际开发中,可能会遇到这样的情况:如要对集群进行停机维护/扩容…那么这时候需要执行一次Savepoint,也就是执行一次手动的Checkpoint,也就是手动的发一个barrier栅栏,那么这样的话,程序的

2021-07-03 23:27:13 141 4

原创 从0到1Flink的成长之路(二十)-Flink 高级特性(二)之自动重启策略和恢复

自动重启策略和恢复1)、重启策略配置方式配置文件在flink-conf.yml中可以进行配置,示例如下:restart-strategy: fixed-delayrestart-strategy.fixed-delay.attempts: 3restart-strategy.fixed-delay.delay: 10 s代码中可以在代码中针对该任务进行配置,示例如下:env.setRestartStrategy(RestartStrategies.fixedDelayRestart(

2021-07-02 23:28:41 327 8

原创 从0到1Flink的成长之路(二十)-Flink 高级特性(二)之状态恢复和重启策略

状态恢复和重启策略手动重启并恢复1.把程序打包2.启动Flink集群(本地单机版,集群版都可以)/export/server/flink/bin/start-cluster.sh3.访问webUIhttp://node1.itcast.cn:8081/#/overview4.使用FlinkWebUI提交cn.itcast.flink.checkpoint.StreamCheckpointDemohdfs://node1.itcast.cn:8020/flink-checkpo

2021-07-01 23:23:18 162 4

原创 从0到1Flink的成长之路(二十)-Flink 高级特性(二)之Checkpoint 配置方式

Checkpoint 配置方式1)、全局配置修改flink-conf.yaml#jobmanager(即MemoryStateBackend), #filesystem(即FsStateBackend), #rocksdb(即RocksDBStateBackend)state.backend: filesystem state.checkpoints.dir: hdfs://namenode:8020/flink-checkpoints/checkpoint2)、在代码中配置//1.Me

2021-06-30 21:45:15 283 6

原创 从0到1Flink的成长之路(二十)-Flink 高级特性(二)之State 状态后端

State 状态后端注意:前面学习Checkpoint其实就是Flink中某一时刻,所有的Operator的全局快照,那么快照应该要有一个地方进行存储,而这个存储的地方叫做状态后端(StateBackend)。Flink中的State状态后端有很多种:state_backends1)、MemStateBackend内存存储,即MemoryStateBackend,构造方法是设置最大的StateSize,选择是否做异步快照。对于State存储在 TaskManager 节点也就是执行节点内存中

2021-06-29 21:39:57 191 4

原创 从0到1Flink的成长之路(二十)-Flink 高级特性(二)之 Flink 容错机制

Flink 容错机制checkpointsCheckpointState Vs CheckpointState:维护/存储的是某一个Operator的运行的状态/历史值,是维护在内存中。一般指一个具体的Operator的状态(operator的状态表示一些算子在运行的过程中会产生的一些历史结果,如前面的maxBy底层会维护当前的最大值,也就是会维护一个keyedOperator,这个State里面存放就是maxBy这个Operator中的最大值);State数据默认保存在Java的堆内存中/T

2021-06-28 22:48:01 179 18

原创 从0到1Flink的成长之路(二十)-Flink 高级特性(二)之存储 State 数据结构

存储 State 数据结构前面说过:有状态计算其实就是需要考虑历史数据,而历史数据需要搞个地方存储起来。Flink为了方便不同分类的State的存储和管理,提供了如下API/数据结构来存储State。1)、Keyed StateKeyed State 通过 RuntimeContext 访问,这需要 Operator 是一个RichFunction。保存Keyed state的数据结构:  ValueState:即类型为T的单值状态。这个状态与对应的key绑定,是最简单的状态。它可以通过upd

2021-06-27 19:52:44 713 5

原创 从0到1Flink的成长之路(二十)-Flink 高级特性(二)之状态分类

状态分类working-with-state1 组织形式划分转态State存在的两种形式(Forms):Managed(管理)和Raw(原始)。从Flink是否接管角度,状态可以分为:ManagedState(托管状态)RawState(原始状态)两者的区别如下:从状态管理方式的方式,Managed State 由 Flink Runtime 管理,自动存储,自动恢复,在内存管理上有优化;而 Raw State 需要用户自己管理,需要自己序列化,Flink不知道 State中存入的数据是

2021-06-26 22:31:33 219 4

原创 从0到1Flink的成长之路(二十)-Flink 高级特性(二)之什么是状态

什么是状态state-fault先回顾一下到底什么是 state,流式计算的数据往往是转瞬即逝, 当然,真实业务场景不可能说所有的数据都是进来之后就走掉,没有任何东西留下来,那么留下来的东西其实就是称之为state,中文可以翻译成状态。在下面这个图中,所有的原始数据进入用户代码之后再输出到下游,如果中间涉及到 state 的读写,这些状态会存储在本地的 state backend(可以对标成嵌入式本地 kv 存储)当中。状态分类working-with-state1.组织形式划分转态Stat

2021-06-25 23:40:11 189

空空如也

空空如也

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

TA关注的人

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