![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Flink
文章平均质量分 78
victory0508
这个作者很懒,什么都没留下…
展开
-
Flink流批一体计算(23):Flink SQL之多流kafka写入多个mysql sink
WITH提供了一种编写辅助语句以用于更大的查询的方法。这些语句通常被称为公共表表达式(CTE),可以被视为定义仅针对一个查询存在的临时视图。json.fail-on-missing-field:在json缺失字段时是否报错。json.ignore-parse-errors:在解析json失败时是否报错。一般无法保证json格式,所以以上两个配置是比较重要的。注意:针对双流中的每条记录都发触发。mysql 建表语句。原创 2023-12-05 16:07:29 · 1428 阅读 · 0 评论 -
Flink流批一体计算(20):DataStream API和Table API互转
在 PyFlink Table API 中,DDL 是定义 source 和 sink 比较推荐的方式,这可以通过 TableEnvironment 中的 execute_sql() 方法来完成,然后就可以在作业中使用这张表了。由于Flink是一个基于 Java/Scala 的项目,连接器(connector)和格式(format)的实现是作为 jar 包存在的, 要在 PyFlink 作业中使用,首先需要将其指定为作业的依赖。然而,当用户想要将PyFlink任务提交到远程集群时,这种方法并不奏效。原创 2023-08-28 15:18:44 · 1217 阅读 · 0 评论 -
Flink流批一体计算(19):PyFlink DataStream API之State
处理一定条数的状态数据后,会使用当前时间戳来检测 RocksDB 中的状态是否已经过期, 你可以通过 StateTtlConfig.newBuilder(...).cleanupInRocksdbCompactFilter(long queryTimeAfterNumEntries) 方法指定处理状态的条数。对于元素序列化后长度不固定的列表状态,TTL 过滤器需要在每次 JNI 调用过程中,额外调用 Flink 的 java 序列化器, 从而确定下一个未过期数据的位置。广播状态是一种特殊的算子状态。原创 2023-08-28 15:07:39 · 876 阅读 · 0 评论 -
Flink流批一体计算(18):PyFlink DataStream API之计算和Sink
PyFlink DataStream API之计算和Sink原创 2023-08-25 14:23:14 · 1086 阅读 · 0 评论 -
Flink流批一体计算(17):PyFlink DataStream API之StreamExecutionEnvironment
PyFlink DataStream API之StreamExecutionEnvironment原创 2023-08-25 14:10:41 · 1185 阅读 · 0 评论 -
Flink流批一体计算(16):PyFlink DataStream API
图中的Operator Chain表示一个Operator,keyBy表示一个Operator,Sink表示一个Operator,它们通过Stream连接,而每个Operator在运行时对应一个Task,也就是说图中的上半部分有3个Operator对应的是3个Task。紧密度高的算子可以进行优化,优化后可以将多个Operator Subtask串起来组成一个Operator Chain,实际上就是一个执行链,每个执行链会在TaskManager上一个独立的线程中执行。中,程序是并行和分布式的方式运行。原创 2023-08-24 15:26:31 · 1349 阅读 · 0 评论 -
Flink流批一体计算(15):PyFlink Tabel API之SQL写入Sink
create_statement_set() 创建一个可接受 DML 语句或表的 Statementset 实例。它可用于执行包含多个 sink 的作业。你可以使用 TableResult.collect 将 Table 的结果收集到客户端,结果的类型为迭代器类型。将计算结果写入给 sink 表。也可以通过 SQL 来完成。原创 2023-08-24 15:14:51 · 895 阅读 · 0 评论 -
Flink流批一体计算(14):PyFlink Tabel API之SQL查询
create_temporary_view(view_path, table) 将一个 `Table` 对象注册为一张临时表,类似于 SQL 的临时表。sql_query(query) 执行一条 SQL 查询,并将查询的结果作为一个 `Table` 对象。Table API 中的 Table 对象和 SQL 中的 Table 可以自由地相互转换。这些方法返回新的 Table 对象,表示对输入 Table 应用关系操作之后的结果。以下示例展示了一个简单的 Table API 基于行操作的查询。原创 2023-08-18 11:34:51 · 1534 阅读 · 0 评论 -
Flink流批一体计算(13):PyFlink Tabel API之SQL DDL
Catalog 是可扩展的,用户可以通过实现 Catalog 接口来开发自定义 Catalog。想要在 SQL CLI 中使用自定义 Catalog,用户除了需要实现自定义的 Catalog 之外,还需要为这个 Catalog 实现对应的 CatalogFactory 接口。CatalogFactory 定义了一组属性,用于 SQL CLI 启动时配置 Catalog。这组属性集将传递给发现服务,在该服务中,服务会尝试将属性关联到 CatalogFactory 并初始化相应的 Catalog 实例。原创 2023-08-18 11:22:41 · 827 阅读 · 0 评论 -
Flink流批一体计算(12):PyFlink Tabel API之构建作业
当在 mini cluster 环境执行作业(比如,在IDE中执行作业)且在作业中使用了如下API(比如 Python Table API 的 TableEnvironment.execute_sql, Statementset.execute 和 Python DataStream API 的 StreamExecutionEnvironment.execute_async) 的时候,因为这些API是异步的,请记得显式地等待作业执行结束。异步执行 SQL / Table API 作业。原创 2023-07-05 14:24:33 · 973 阅读 · 0 评论 -
Flink流批一体计算(11):PyFlink Tabel API之TableEnvironment
编写 Flink Python Table API 程序的第一步是创建 TableEnvironment。这是 Python Table API 作业的入口类。get_config()返回 table config,可以通过 table config 来定义 Table API 的运行时行为。原创 2023-07-05 14:15:53 · 1412 阅读 · 0 评论 -
Flink流批一体计算(10):PyFlink Tabel API
Apache Flink 提供 Table API 关系型 API 来统一处理流和批,即查询在无边界的实时流或有边界的批处理数据集上以相同的语义执行,并产生相同的结果。,你可以使用它构建可扩展的批处理和流处理任务,例如实时数据处理管道、大规模探索性数据分析、机器学习(Flink 的 Table API 易于编写,通常能简化数据分析,数据管道和ETL应用的编码。所有的 Table API 和 SQL 程序,不管批模式,还是流模式,都遵循相同的结构。根据你需要的抽象级别的不同,有两种不同的。原创 2023-06-29 11:19:07 · 690 阅读 · 0 评论 -
Flink流批一体计算(9):Flink Python
如果您的Flink Python作业中使用了Java类,例如作业中使用了Connector或者Java自定义函数时,则需要指定Connector或者Java自定义函数所在的JAR包。为了使用该Python虚拟环境,您可以选择将该Python虚拟环境分发到集群的所有节点上,也可以在提交PyFlink作业的时候,指定使用该Python虚拟环境。执行 PyFlink job,增加 source和资源文件 ,--pyFiles中指定的文件将被添加到PYTHONPATH中,因此在Python代码中可用。原创 2023-06-29 11:14:17 · 1144 阅读 · 0 评论 -
Flink流批一体计算(8):Flink常见Shell命令
Flink提供了一个命令行界面(CLI)bin/Flink,用于运行打包为JAR文件的程序并控制其执行。CLI是任何Flink设置的一部分,可在本地单节点设置和分布式设置中使用。它连接到conf/flink-conf.yaml中指定的正在运行的JobManager。操作用途使用启动一个常驻的Flink集群,接受来自客户端提交的任务。run提交Flink作业,作业既可以被提交到一个常驻的Flink集群上,也可以使用单机模式运行。以模式执行作业。info用于打印作业的优化执行图。原创 2023-06-28 15:30:35 · 1588 阅读 · 0 评论 -
Flink流批一体计算(7):Flink优化
Flink是依赖内存计算,计算过程中内存不够对Flink的执行效率影响很大。可以通过监控GC),评估内存使用及剩余情况来判断内存是否变成性能瓶颈,并根据情况优化。监控节点进程的YARN的日志,如果频繁出现Full GC,需要优化GC。原创 2023-06-28 14:54:05 · 1182 阅读 · 0 评论 -
Flink流批一体计算(6):Flink配置
JobManager的一些配置参数依赖于Yarn,通过配置YARN相关的配置,使Flink更好的运行在Yarn上。对于作业状态的存储,Flink依赖于state backend,作业的重启依赖于重启策略,用户可以对这两部分进行配置。JobManager启动时,会在同一进程内启动Web服务器,访问Web服务器可以获取当前Flink集群的信息,包括JobManager,TaskManager及集群内运行的Job。Web服务器参数的配置项包括端口,临时目录,显示项目,错误重定向,安全相关等。原创 2023-06-28 14:32:59 · 830 阅读 · 0 评论 -
Flink流批一体计算(4):Flink功能模块
流处理方式:包含Kafka(消息队列)、AWS kinesis(实时数据流服务)、RabbitMQ(消息队列)、NIFI(数据管道)、Cassandra(NOSQL数据库)、ElasticSearch(全文检索)、HDFS rolling file(滚动文件)流处理方式:包含Kafka(消息队列)、AWS kinesis(实时数据流服务)、RabbitMQ(消息队列)、NIFI(数据管道)、Twitter(API)如下图左右两侧框图,其中绿色背景是流处理方式的场景,蓝色背景是批处理方式的场景。原创 2023-06-21 10:25:23 · 730 阅读 · 0 评论 -
Flink流批一体计算(3):FLink作业调度
而学习每一种分布式计算引擎,首先需要搞清楚的就是:我们开发的分布式应用程序是如何在集群中执行的,这其中一定会涉及到与资源管理器的交互。每个slot能够使用的资源是固定的,例如:如果一个TaskManager上配置了3个slot,那每个slot能够使用的内存为TaskManager管理的内存的1/3。由于一个 task可能会被执行多次(比如在异常恢复时),ExecutionVertex的执行是由Execution来跟踪的,每个ExecutionVertex 会记录当前的执行,以及之前的执行。原创 2023-06-21 10:23:41 · 1298 阅读 · 0 评论 -
Flink流批一体计算(2):Flink关键特性
精确一次语义:Flink的Checkpoint和故障恢复能力保证了任务在故障发生前后的应用状态一致性,为某些特定的存储支持了事务型输出的功能,即使在发生故障的情况下,也能够保证精确一次的输出。无论是来自 Web 服务器的事件数据,证券交易所的交易数据,还是来自工厂车间机器上的传感器数据,其数据都是流式的。服务器的事件数据,证券交易所的交易数据,还是来自工厂车间机器上的传感器数据,其数据都是流式的。时间是流处理应用的重要组成部分,对于实时流处理应用来说,基于时间语义的窗口聚合、检测、匹配等运算是非常常见的。原创 2023-06-20 16:43:34 · 1218 阅读 · 0 评论 -
Flink流批一体计算(1):流批一体和Flink概述
数字化经济革命的浪潮正在颠覆性地改变着人类的工作方式和生活方式,数字化经济在全球经济增长中扮演着越来越重要的角色,以互联网、云计算、大数据、物联网、人工智能为代表的数字技术近几年发展迅猛,数字技术与传统产业的深度融合释放出巨大能量,成为引领经济发展的强劲动力。第三,数据口径天然一致。无论是离线的流程,还是实时的流程,都是一套引擎,一套 SQL,一套 UDF,一套开发人员,所以它天然是一致的,不存在实时和离线数据口径不一致的问题。第二,数据链路也不存在冗余,明细层的计算一次即可,不需要离线再算一遍。原创 2023-06-20 16:30:40 · 1450 阅读 · 0 评论 -
简要flink
1.flink运行模式基于流式处理模型,支持批流计算,SLA(服务等级协议)不通2.10大特性:有状态计算(exactly-once)\带有事件时间语义的流式处理和窗口处理\高度灵活的窗口方便、快速的做出失败重试操作\通过轻量的state snapshots实现轻量的容错处理\高吞吐、低延迟、高性能的流式处理\支持保存点(savepoint)机制\支持大规模集群模式\具有背压功能\支持迭代计算\JVM内部实现了自己的内存管理3.2大API:流式处理DataStream API原创 2021-12-20 16:02:07 · 154 阅读 · 0 评论 -
kafka同步数据到ES(nginx filebeat kafka es)
安装配置 nginx 步骤1 安装 nginx: yum -y install nginx步骤2 修改 nginx 配置文件中的日志格式:vim /etc/nginx/nginx.conf设置日志打印格式如下:log_format main '[\"$remote_addr\",\"$remote_user\",\"$time_iso8601\",\"$request\"'',\"$status\",\"$body_bytes_sent\",\"$http_referer\"'',\"$h..原创 2021-12-20 14:04:08 · 4375 阅读 · 0 评论 -
pyflink+alink使用
1.部署alinkpip3 install pyalink-flink-1.11 --user --proxy=http://10.88.0.441:7011892.下载需要的包download_pyalink_dep_jars3.测试代码from pyalink.alink import *useLocalEnv(3, flinkHome='/home/user/flink', config=None)source = CsvSourceBatchOp()\ .setSch..原创 2021-04-13 09:13:52 · 788 阅读 · 0 评论 -
flinkx初探
1. 下载proxychains4 wget https://github.com/DTStack/flinkx/releases/download/1.10.4/flinkx.7z2. 解压sudo yum -y install p7zip7za x flinkx.7z3.运行例子bin/flinkx -mode local -job docs/example/stream_stream.json -pluginRoot syncplugins4.发现的问题4.1BLOB .原创 2021-01-28 19:04:53 · 286 阅读 · 0 评论 -
flink集群执行hbase写入任务
flink集群运行任务,将kafka数据写入hbase,任务执行不下去,hbase没有数据。1. 配置环境变量:HADOOP_HOME=/usr/lib/hadoopHADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduceHADOOP_CLASSPATH=`hadoop classpath`PATH=$PATH:$HADOOP_HOME/bin:......exportHADOOP_HOME HADOOP_MAPRED_HOME HADOOP_CLASSP.原创 2021-01-28 18:47:22 · 314 阅读 · 0 评论 -
Flink standalone/yarn模式部署
1. 规划目录:/home/user/flink2. 解压文件并重命名tar zxvf flink-1.11.1-bin-scala_2.11.tgzmv flink-1.11.1 flink3. 配置conf3.1flink-conf.yaml在Common部分增加或设置如下:env.java.home: /usr/java/defaultstate.savepoints.dir: hdfs:/flink/savepointsjobmanager.rpc.addr...原创 2020-09-22 19:42:35 · 385 阅读 · 0 评论