自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(189)
  • 资源 (1)
  • 收藏
  • 关注

原创 Flink流批一体计算(24):Flink SQL之mysql维表实时关联

目前在实时计算的场景中,大多数都使用过MySQL、Hbase、redis作为维表引擎存储一些维度数据,然后在DataStream API中调用MySQL、Hbase、redis客户端去获取到维度数据进行维度扩充。如果超过该值,则最老的行记录将会过期,会被新的记录替换掉。指定缓存中每行记录的最大存活时间。本案例采用MySQL创建维表,与创建MySQL sink表语法相同。在MySQL中创建名为sync_test_3的表。(默认值):缓存空的查询结果。是否缓存空的查询结果。:不缓存空的查询结果。

2023-12-06 15:10:49 771

翻译 面向初学者 - 什么是RabbitMQ?

面向初学者的第一部分解释什么是RabbitMQ和消息队列--该指南还简要说明消息队列并定义重要概念。本指南将进一步阐述建立连接的步骤以及从队列发布/消费消息的基础。RabbitMQ是一种消息队列软件,也称为消息代理或队列管理器。简单地说;它是定义队列的软件,应用程序连接到它以传输一条或多条消息。消息可以包括任何类型的信息。例如,它可以包含应该在另一个应用程序(甚至可以在另一台服务器上)上启动的进程或任务的信息,也可以只是一条简单的文本消息。

2023-12-05 17:43:24 90

原创 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 1036

原创 Flink流批一体计算(21):Flink SQL之Flink DDL

其他类型的列可以在物理列之间声明,但不会影响最终的物理模式。列的数据类型是从给定表达式自动派生的,不必手动声明。但是,在表的模式中声明元数据列是可选的。成为表模式的一部分,可以像常规列一样进行转换和存储,为方便起见,如果列名应用作标识元数据键,则可以省略。主键可以和列的定义一起声明,也可以独立声明为表的限制属性,不管是哪种方式,主键都不可以重复定义,否则。创建的目标表是非原子性的,如果在向表中插入数据时发生错误,该表不会被自动删除。每个元数据字段都由基于字符串的键标识,并具有文档化的数据类型。

2023-11-28 14:37:10 507

原创 Flink流批一体计算(22):Flink SQL之单流kafka写入mysql

Kafka是分布式、高吞吐、可扩展的消息队列服务,广泛用于日志收集、监控数据聚合、流式数据处理、在线和离线分析等大数据领域。

2023-11-28 14:34:03 477

原创 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 1171

原创 Flink流批一体计算(19):PyFlink DataStream API之State

处理一定条数的状态数据后,会使用当前时间戳来检测 RocksDB 中的状态是否已经过期, 你可以通过 StateTtlConfig.newBuilder(...).cleanupInRocksdbCompactFilter(long queryTimeAfterNumEntries) 方法指定处理状态的条数。对于元素序列化后长度不固定的列表状态,TTL 过滤器需要在每次 JNI 调用过程中,额外调用 Flink 的 java 序列化器, 从而确定下一个未过期数据的位置。广播状态是一种特殊的算子状态。

2023-08-28 15:07:39 842

原创 Flink流批一体计算(18):PyFlink DataStream API之计算和Sink

PyFlink DataStream API之计算和Sink

2023-08-25 14:23:14 1034

原创 Flink流批一体计算(17):PyFlink DataStream API之StreamExecutionEnvironment

PyFlink DataStream API之StreamExecutionEnvironment

2023-08-25 14:10:41 1107

原创 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 1312

原创 Flink流批一体计算(15):PyFlink Tabel API之SQL写入Sink

create_statement_set() 创建一个可接受 DML 语句或表的 Statementset 实例。它可用于执行包含多个 sink 的作业。你可以使用 TableResult.collect 将 Table 的结果收集到客户端,结果的类型为迭代器类型。将计算结果写入给 sink 表。也可以通过 SQL 来完成。

2023-08-24 15:14:51 846

原创 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 1505

原创 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 800

原创 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 952

原创 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 1345

原创 Flink流批一体计算(10):PyFlink Tabel API

Apache Flink 提供 Table API 关系型 API 来统一处理流和批,即查询在无边界的实时流或有边界的批处理数据集上以相同的语义执行,并产生相同的结果。,你可以使用它构建可扩展的批处理和流处理任务,例如实时数据处理管道、大规模探索性数据分析、机器学习(Flink 的 Table API 易于编写,通常能简化数据分析,数据管道和ETL应用的编码。所有的 Table API 和 SQL 程序,不管批模式,还是流模式,都遵循相同的结构。根据你需要的抽象级别的不同,有两种不同的。

2023-06-29 11:19:07 656

原创 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 1058

原创 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 1364

原创 Flink流批一体计算(7):Flink优化

Flink是依赖内存计算,计算过程中内存不够对Flink的执行效率影响很大。可以通过监控GC),评估内存使用及剩余情况来判断内存是否变成性能瓶颈,并根据情况优化。监控节点进程的YARN的日志,如果频繁出现Full GC,需要优化GC。

2023-06-28 14:54:05 1150

原创 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 786

原创 Flink流批一体计算(5):部署运行模式

这种模式的好处是可以充分利用集群资源,提高集群机器的利用率,并且只需要1套Hadoop集群,就可以执行MR和Spark任务,还可以执行 Flink 任务等,操作非常方便,不需要维护多套集群,运维方面也很轻松。这种方式创建的 Flink 集群会独占资源,不管有没有 Flink 任务在执行,YARN 上面的其他任务都无法使用这些资源。在local模式下,不需要启动任何的进程,仅仅是使用本地线程来模拟flink的进程,适用于测试开发调试等,这种模式下,不用更改任何配置,只需要保证jdk8安装正常即可。

2023-06-24 15:10:02 628

原创 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 712

原创 Flink流批一体计算(3):FLink作业调度

而学习每一种分布式计算引擎,首先需要搞清楚的就是:我们开发的分布式应用程序是如何在集群中执行的,这其中一定会涉及到与资源管理器的交互。每个slot能够使用的资源是固定的,例如:如果一个TaskManager上配置了3个slot,那每个slot能够使用的内存为TaskManager管理的内存的1/3。由于一个 task可能会被执行多次(比如在异常恢复时),ExecutionVertex的执行是由Execution来跟踪的,每个ExecutionVertex 会记录当前的执行,以及之前的执行。

2023-06-21 10:23:41 1251

原创 Flink流批一体计算(2):Flink关键特性

精确一次语义:Flink的Checkpoint和故障恢复能力保证了任务在故障发生前后的应用状态一致性,为某些特定的存储支持了事务型输出的功能,即使在发生故障的情况下,也能够保证精确一次的输出。无论是来自 Web 服务器的事件数据,证券交易所的交易数据,还是来自工厂车间机器上的传感器数据,其数据都是流式的。服务器的事件数据,证券交易所的交易数据,还是来自工厂车间机器上的传感器数据,其数据都是流式的。时间是流处理应用的重要组成部分,对于实时流处理应用来说,基于时间语义的窗口聚合、检测、匹配等运算是非常常见的。

2023-06-20 16:43:34 1201

原创 Flink流批一体计算(1):流批一体和Flink概述

数字化经济革命的浪潮正在颠覆性地改变着人类的工作方式和生活方式,数字化经济在全球经济增长中扮演着越来越重要的角色,以互联网、云计算、大数据、物联网、人工智能为代表的数字技术近几年发展迅猛,数字技术与传统产业的深度融合释放出巨大能量,成为引领经济发展的强劲动力。第三,数据口径天然一致。无论是离线的流程,还是实时的流程,都是一套引擎,一套 SQL,一套 UDF,一套开发人员,所以它天然是一致的,不存在实时和离线数据口径不一致的问题。第二,数据链路也不存在冗余,明细层的计算一次即可,不需要离线再算一遍。

2023-06-20 16:30:40 1407

原创 rancher部署与使用

yum -y install lrzsz vim gcc glibc openssl openssl-devel net-tools wget curl【没有安装glibc】2.检查此节点配置,发现没有配置echo "net.bridge.bridge-nf-call-iptables=1" >> /etc/sysctl.conf。sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 永久关闭。

2023-06-16 11:16:01 1191

原创 harbor使用问题

在harbor系统上创建项目distribute-train,再次执行,成功。修改harbor服务器和客户端服务器上docker的daemon.json。然后重启docker并启动所有docker进程。

2023-02-16 14:33:37 196

原创 部署 K8s 集群

Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。--image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。--pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致。注:--apiserver-advertise-address 集群通告地址。--service-cidr 集群内部虚拟网络,Pod统一访问入口。

2023-02-14 16:16:23 600 2

原创 部署 NFS

问题:mount.nfs: Connection timed out。nlockmgr服务端口更新没有效果,可能与源地址设置有关,有带验证。检查是否启动了rpcbind服务并监听着 111端口。在客户端机器安装nfs-utils和rpcbind包。nfs服务端未开放相关服务组件访问端口。确认nfs相关服务组件及端口占用如下。查看 NFS 服务器上的共享目录。查看服务端rpc状态信息,其中。nfs服务端防火墙策略配置。端口不固定,需人为修改固定。端口不固定,需人为修改固定。更改相关服务为固定端口。

2023-02-14 14:54:12 411

原创 nginx配置https

5. 申请成功后,在证书列表中,点击:下载,根据服务器类型选择nginx证书,将下载的zip文件上传到网站服务器。查看configure arguments: 参数值是否包含--with-http_ssl_module。将***.com_bundle.crt ***.com.key文件拷贝到nginx/conf下。注意: nginx -s reload无效,因为无法启动443端口服务。查看nginx是否安装http_ssl_module模块。7. 检查443端口是否开启,如果没有,开放443端口。

2023-01-31 14:28:21 683

原创 nginx配置域名映射

同一个域名,多个端口,对应不同的服务。比如,9400是http服务,1900是websocket服务。需要配置域名访问,映射到端口80,配置在同一个nginx.conf。要点2:将http升级为websocket。修改上述 location /mqtt。比如,nginx配置端口5001服务。要点1:配置多个location。1. 支持websocket。

2022-12-15 12:22:32 5108

原创 rabbitmq管理端口开放

1)/etc/sysconfig/network-scripts/ifcfg-eth0|ifcfg-lo,增加IPV6INIT=no。netstat-nltp|grep6003(15672)没有问题,只是tcptcp6都有。最终,通过直面问题,从rabbitmq本身去确定为什么无法通过15672端口登陆管理页面?docker部署rabbitmq,想通过web管理功能及时查看队列状态。telnet*.*.*.*6003却不通。但是却不能访问,检查外网端口已开。tcp6解决,但是已就不能访问。...

2022-07-20 11:31:42 1464 1

原创 docker部署gitlab内存占用过大的解决

1. gitlab几乎占内存50%,需要修改配置文件,进行优化2. vi gitlab.rb注意:所有修改需要掉注释,在注释的情况下默认是服务器上的所有线程。减少数据库缓存postgresql['shared_buffers'] = "64MB"减少数据库并发数postgresql['max_worker_processes'] = 1减少sidekiq并发数sidekiq['concurrency'] = 1减少进程数unicorn['worker_processes'] = 1nginx['worker

2022-06-30 11:32:41 3513

原创 部署harbor

1. 安装docker-composeyum -y install docker-composedocker-compose --version---1.18需要进行升级yum -y remove docker-composecurl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composech

2022-06-02 12:49:19 214

原创 kibana部署

1. 下载 & 解压# 下载wget https://artifacts.elastic.co/downloads/kibana/kibana-7.1.1-linux-x86_64.tar.gz# 解压tar xvf kibana-7.1.1-linux-x86_64.tar.gz# 软链ln -s kibana-7.1.1-linux-x86_64 kibana2. 配置 kibana.ymlvim config/kibana.yml# 详情如下:server.port: 5

2021-12-20 16:34:02 138

原创 简要flink

1.flink运行模式基于流式处理模型,支持批流计算,SLA(服务等级协议)不通2.10大特性:有状态计算(exactly-once)\带有事件时间语义的流式处理和窗口处理\高度灵活的窗口方便、快速的做出失败重试操作\通过轻量的state snapshots实现轻量的容错处理\高吞吐、低延迟、高性能的流式处理\支持保存点(savepoint)机制\支持大规模集群模式\具有背压功能\支持迭代计算\JVM内部实现了自己的内存管理3.2大API:流式处理DataStream API

2021-12-20 16:02:07 148

原创 tomcat自启动

vim /etc/init.d/tomcat添加脚本内容#!/bin/bash# description: Tomcat7 Start Stop Restart# processname: tomcat7# chkconfig: 234 20 80CATALINA_HOME=/usr/local/tomcat/apache-tomcat-7.0.77case $1 in start) sh $CATALINA_HOME/bin/startu...

2021-12-20 15:54:42 188

原创 ycsb尝试

1.初始化测试数据 (loading阶段)bin/ycsb load redis -s -P workloads/workloada -p "redis.host=127.0.0.1" -p "redis.port=6379" workloada,定义recordcount=10002.执行测试操作(transaction阶段)bin/ycsbrunredis -s -P workloads/workloada -p "redis.host=127.0.0.1" -p "redis.port..

2021-12-20 15:26:31 1354

原创 Delta Lake

1.Delta Lake 简介Delta Lake 是可提高数据湖可靠性的开源存储层。Delta Lake 提供 ACID 事务和可缩放的元数据处理,并统一流和批数据处理。 Delta Lake 在现有 Data Lake 的顶层运行,与 Apache Spark API 完全兼容。具体来说,Delta Lake提供:Spark ACID事务:可序列化的隔离级别确保用户永远不会看到不一致的数据。可扩展的元数据处理:利用Spark的分布式处理能力,可以轻松处理数十亿个文件的PB级表的所有元数据。

2021-12-20 15:20:33 1494

原创 python基础

1. Python2 的默认编码是 ascii,Python3 的默认编码是 utf-8,import syssys.getdefaultencoding()2.常用数据类型列表(list)元组(tuple)字符串(string)字典(dict)集合(set)列表、元组和字符串都属于序列类型,它们可以进行某些通用的操作,比如索引、分片等;字典属于映射类型,每个元素由键(key)和值(value)构成;集合是一种特殊的类型,它所包含的元素是不重复的字符串和元组是不可变的,而列表是可变

2021-12-20 14:16:20 706

Django Web开发指南.pdf

Django Web开发指南

2012-11-06

空空如也

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

TA关注的人

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