自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LVS+Keepalived 实现高可用 服务永远在线

1、背景在业务量达到一定量的时候,往往单机的服务是会出现瓶颈的。此时最常见的方式就是通过负载均衡来进行横向扩展,实现负载均衡,当有服务出现异常,也能够自动剔除。但是负载均衡服务自身也可能出现故障,因此需要引入其他的软件来实现负载均衡服务的高可用。业界通常用 LVS+Keepalived 的方式,来实现高可用 Web 集群...

2023-10-12 14:57:17 147

原创 使用CDH调整yarn的内存和CPU资源大小

1、登录CDH后选择YARN2、更改CPU在yarn配置页面,搜索 在类别->资源管理中找到【容器虚拟 CPU 内核】或者直接搜索 yarn.nodemanager.resource.cpu-vcores这里改的是单个服务器可以用的CPU的核心数,假设有3台服务器,每台这里设置32那总的yarn集群可用的c...

2023-08-17 17:50:03 1013

原创 es写入时报TransportError(413, '')

问题现象:写入时单条或一批次的总数据大小超过es限制就会报 TransportError(413, '')解决:修改es配置文件 elasticsearch.yml增加max_content_length,具体大小看实际环境需求,越大性能越差http.max_content_length: 1024mbFile ...

2023-08-17 17:20:23 497

原创 python3 安装clickhouse_sqlalchemy(greenlet) 失败

环境信息: centos7操作系统,python3.8执行pip3 install clickhouse_sqlalchemy或者pip3 install greenlet报以下报错:Command "/opt/python3.6.10-customized/bin/python3.6 -u -c "import se...

2023-08-17 15:55:31 1436

原创 Flink TaskManager OutOfMemoryError: Metaspace 处理记录

一个很有意思的Flink任务异常处理记录一、环境信息Flink1.12 Standalone 模式,单台机器,由于客户环境基本很长时间会看不到运行状态二、问题现象现场同事反馈设备在客户现场运行了一段时间后Flink Job全挂,在Flink DashBoard上所有的Job都看不到了,TaskManager已经挂掉...

2022-11-23 18:59:39 1347 1

原创 Splunk入门体验

放一段介绍,Splunk是一款功能强大,功能强大且完全集成的软件,用于实时企业日志管理,可收集,存储,搜索,诊断和报告任何日志和机器生成的数据,包括结构化,非结构化和复杂的多行应用程序日志。​它允许您以可重复的方式快速,可重复地收集,存储,索引,搜索,关联,可视化,分析和报告任何日志数据或机器生成的数据,以识别和解决...

2022-11-22 23:03:08 1119

原创 Spring Boot 各种请求与静态资源记录

Spring Boot中各种请求处理记录PathVariable -获取路径中的参数这里的pv是指拿到所有的请求参数@GetMapping("/car/{id}/owner/{username}") public Map<String, Object> getCar(@PathVariable("...

2022-05-04 10:10:17 344

原创 centos8 部署mariadb备忘

安装mysqlyum install mariadb-server -y启动[root@localhost ~]# systemctl start mariadb[root@localhost ~]# systemctl enable mariadb # 开机启动初始化安全配置1.设置root密码...

2022-04-07 07:46:07 2061

原创 zookeeper最新版部署测试

环境准备zookeeper依赖于java,所以先安装java,可以参考: https://blog.51cto.com/mapengfei/5166517安装zookeeper我这里选择最新版是3.8.0, 在这个页面中找到最新的zookeeper版本https://zookeeper.apache.o...

2022-04-07 07:00:49 11127

原创 java 环境常用安装命令记录

安装java11java11 安装:yum install java-11-openjdk-devel安装java8java8 安装:yum install java-1.8.0-openjdk-devel安装完成之后可以使用java --version 来验证java切换版本如果装了2个版...

2022-03-31 15:57:03 1928

原创 Flink on yarn 环境从0-1

1.环境信息[root@kafka2 ~]# cat /etc/hosts10.0.83.71 kafka1 node-110.0.83.72 kafka2 node-210.0.83.73 kafka3 node-3JobManager: 10.0.83.71TaskManager: 10.0....

2022-03-22 10:02:56 171

原创 线上服务器too many open files 问题排查记录

问题起因周末在家瘫着突然接到反馈网站访问打开直接500错误,然后上去排查,发现很多服务启动不了,手动起服务提示too many open files,这句提示的原因是程序打开的文件/socket连接数量超过系统设定值。登录服务器第一件事,先看下当前机器文件打开的最大限制(open files这行)我这里是65535说明已经...

2021-12-13 09:57:21 312

原创 YARN && Hadoop 集群环境准备

准备搞一个Flink 集群计算环境,顺手记一下过程,Flink和Spark一样有三种部署模式,分别是Local,Standalone Cluster和Yarn Cluster。本文主要是介绍在Yarn Cluster模式下的环境搭建,最终先跑一个简单的计算文件中单词出现次数的demo,证明YARN集群是没问题...

2021-12-10 09:20:58 735

原创 KAFKA最新版 3.0.0集群部署测试

关于kafka的信息可以参考官方文档: https://kafka.apache.org/documentation/ (如果英文不好直接右击翻译成中文就可以,比看网上一堆文章都强)环境信息:IP角色10.0.83.71zookeeper、kafka10.0.83.72zo...

2021-12-06 10:51:18 3268 2

原创 Apache Metron从入门到落灰

p>之前在安全方面有大数据处理方面需求,所以调研了几款处理引擎框架,就看到Apache Metron了,结果发现网上没几个文章写这个的。。。。 其中涉及到的组件会比较多,有部署软件用的Ambari(也可以用cdh)、zookeeper、Storm、HADOOP、KAFKA和数据处理的Nifi先贴一些看下来总结的流程Metron数据处理流程1.Metron介绍Metron是一...

2021-08-06 09:43:19 772 1

原创 开发规范分享

最近要准备新同事的开发规范培训,所以大概理了理开发过程中总结的一些注意点和规范,有git管理、代码编写和API设计原则这3个方面# git分支开发管理## Git三大特色之Branch(分支)```主分支:master: origin/master 分支上的最新代码永远是版本发布状态(这个分支只能从其他分支合并,不能在这个分支直接修改)。develop:origin/de...

2021-06-09 21:14:35 112

原创 prometheus+ Grafana监控全家桶

在调研监控工具,之前一直用的zabbix很平稳(从没出过问题),监控内容大概有系统级别的cpu、内存、硬盘之类的, 也有服务的运行情况、elasticsearch、hive、kafka的lag等等,但有几个问题没法解决:1、zabbix没法监控flink(虽然可以通过api调用方式,但flink指标有几百个一个一个加,并且zabbix机制为一个一个指标取的,极其麻烦和低效)2、jvm级别的es...

2021-05-13 10:04:17 931 2

原创 线上mysql的binlog导致磁盘暴增的排查记录

事情由来:一大早突然收到zabbix告警,说磁盘就剩不到15了,赶紧上去瞅瞅什么情况排查过程1、df -ah 看看确认是/data目录占用91%了已经2、找到具体/data下的哪个目录用的,最终定位到是mysql的binlog占用,这很明显是binlog写的太多导致的了,ps, 这里排查过程那个图忘了截了,可以用du -ah -d 1 看具体某个目录下的所有子目录的占用大小 -d 是代...

2021-03-29 09:20:33 1010 1

原创 Flink实战-订单支付和对账情况监控(分别使用CEP和ProcessFunction来实现)

在电商网站中,订单的支付作为直接与钱挂钩的一环,在业务流程中非常重要。对于订单而言,为了正确控制业务流程,也为了增加用户的支付意愿,网站一般会设置一个支付失效时间,超过一段时间没支付的订单就会被取消。另外,对于订单的支付,还应该保证最终支付的正确性,可以通过第三方支付平台的交易数据来做一个实时对账第一个实现的效果,实时获取订单数据,分析订单的支付情况,分别实时统计支付成功的和15分钟后支付超时的...

2021-01-31 21:46:49 899

原创 Flink实战-恶意登录行为检测-CEP

FlinkCEP是在Flink上层实现的复杂事件处理库。 它可以让你在无限事件流中检测出特定的事件模型,有机会掌握数据中重要的那部分。官网文档: https://ci.apache.org/projects/flink/flink-docs-stable/zh/dev/libs/cep.html这里给个demo,对比下不用cep和用cep的区别, 实现目标: 从目标csv中读取...

2021-01-25 09:14:59 996

原创 Flink实战-页面广告分析,并实时检测恶意点击行为

网站一般都需要根据广告点击量来制定对应的定价策略和调整市场推广的方式,一般也会收集用户的一些偏好和其他信息,这里实现一个统计不同省份/或者市用户对不同广告的点击情况,有助于市场部对于广告的更精准投放,并且要防止有人恶意点击,不停的点同一个广告(当然同一个ip一直点不同的广告也是一样)准备的日志文件ClickLog.csv:543462,1715,beijing,beijing,15126524...

2021-01-24 16:56:41 384

原创 Flink实战,APP推广情况分析

接着 https://blog.51cto.com/mapengfei/2581240 这里用Flink来实现对APP在每个渠道的推广情况包括下载、查看、卸载等等行为的分析因为之前的文章都是用scala写的,这篇用纯java来实现一波,分别演示下用aggregate 聚合方式和process 方式的实现和效果整体思路1、准备好数据源: 这里用SimulatedSource 来自己随机造一批数...

2021-01-10 21:13:17 201 1

原创 Flink实战,实时流量统计 TOPN访问URL

跟 https://blog.51cto.com/mapengfei/2580330 类似场景,来从Nginx、Apache等web服务器的日志中读取数据,实时统计出来访问热度最高的TOPN访问URL,并且要确保数据乱序的处理,lag等情况下,还要确认数据的准确性目标:从log文件中读取数据(也可以参考上一篇从kakfa中),取http 的method为get的请求,并且把静态文件访问过滤掉,...

2021-01-03 17:09:18 899

原创 Flink实战-实时读取日志文件和kafka,持续统计TOP10热门商品

从日志中读取数据做一些统计聚合,最终把想要的数据输出,基本是每个公司都会有的场景,比如用户分析,商品分析,实时大屏等等,我们最早的做法是全部读出来,写到redis或者es去,然后web端再去实时查询统计,其实有很多的弊端要么每次请求都会去重新算一遍耗性能不说还慢的不行,业务方接受不了或者直接把统计信息存进去,但要实时统计就比较麻烦,比如1小时存一个点,那业务方可能要的是当前10:05-11:0...

2021-01-01 23:23:20 3347 1

原创 Flink从入门到真香(22、基础最后一篇,各种UDF函数)

Flink Table API和SQL提供了一批用于数据转换的内置函数,也是在日常开发过程中最常用、最重要的一个点SQL中支持很多的函数,Table API和SQL都已经做了实现,基本常用的都已经全覆盖,一般可以不用自己写方法像sql里面比较用的: =, <>, >, >=, <=,is,is not,BETWEEN,EXISTS,IN等等这种操作符基本都...

2020-12-25 09:31:15 580

原创 Flink从入门到真香(21、Table转换DataStream及窗口)

Flink提供了Table形式和DataStream两种形式,可以根据实际情况自己选择用哪些方式来实现,但实际开发过程中可能会有需求两种形式互相转换,这里介绍下操作方法表可以转换为DataStream或DataSet,这样自定义流处理或批处理程序就可以继续在Table API或SQL查询的结果上运行了将表转换为DataStream或DataSet时,需要指定生成的数据类型,即要将表的每一行转换成...

2020-12-24 13:45:19 971

原创 Flink从入门到真香(20、使用flink table api 输出到mysql和es)

接着 https://blog.51cto.com/mapengfei/2554700 输出到kafka和文件,这2种都是只支持追加模式,那要实现 撤回模式(Retract)和更新插入模式(upsert),大部分场景是在操作数据库中,像mysql,es,mongo等,这里实现下输入到mysql和es再贴一下集中模式的区别:追加模式(Append)--文件系统只支持追加模式表只做插入操作,和...

2020-12-16 23:14:55 1468 2

原创 Flink从入门到真香(17、使用flink table api 输出到文件和kafka)

对于流式查询,需要声明如何在表和外部连接器之间进行转换与外部系统交换的消息类型,由更新模式(update model)指定,下面3种,能使用那种模式取决于输出的目标,比如如果输出到文件你就没法用更新和撤回模式,因为不知道,只能追加,但是如果换成mysql就都可以用追加模式(Append)--文件系统只支持追加模式表只做插入操作,和外部连接器只交换插入(insert)消息撤回模式(Retrac...

2020-11-25 22:26:50 638

原创 Flink从入门到真香(19、使用flink table api 输出到文件和kafka)

对于流式查询,需要声明如何在表和外部连接器之间进行转换与外部系统交换的消息类型,由更新模式(update model)指定,下面3种,能使用那种模式取决于输出的目标,比如如果输出到文件你就没法用更新和撤回模式,因为不知道,只能追加,但是如果换成mysql就都可以用追加模式(Append)--文件系统只支持追加模式表只做插入操作,和外部连接器只交换插入(insert)消息撤回模式(Retrac...

2020-11-25 22:26:50 834

原创 Flink从入门到真香(18、使用flink table api 从文件和kafka中读取数据)

还是一样,要先引入依赖,在pom.xml<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-planner_2.12</artifactId> <version>1.10.1</version>...

2020-11-25 22:17:42 981

原创 Flink从入门到真香(17、Flink 重磅功能 Table API(Flink SQL))

Flink对批处理和流处理,提供了统一的上层APITable API是一套内嵌在java和scala语言中的查询api,它允许以非常直观的方式组合来自一些关系运算符的查询Flink的sql支持基于实现了sql标准的Apache calcite先来个栗子感受下: demo效果: 在数据源txt中读取,输出id和temperature 这2个字段,按照id做筛选,输出,分别用table api和...

2020-11-25 22:09:16 465 1

原创 Flink从入门到真香(16、Flink内置的一些Process Function)

之前的转换算子是无法访问事件的时间戳信息和水位线信息的,而这在一些应用场景下,极为重要。例如MapFunction这样子的map转换算子就无法访问时间戳或者当前事件的事件事件。基于此,DataStream API提供了一系列LOW-LEVEL的转换算子调用。可以访问时间戳,watermark以及注册定时事件,还可以输出特定的一些事件,例如超时时间等。process function用来构建事件驱...

2020-11-25 21:54:42 284

原创 Flink从入门到真香(15、Flink状态管理)

```由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态可以认为状态就是一个本地变量,可以被任务的业务逻辑访问Flink会进行状态管理,包括状态一致性、故障处理以及高效存储和访问,以便开发人员可以专注于应用程序的逻辑![](https://s4.51cto.com/images/blog/202011/25/b01f8ef37075517674b5808283db2e32.pn...

2020-11-25 21:44:09 92

原创 Flink从入门到真香(14、Flink必备知识-Watermark)

对于Flink来说,Watermark是个很难绕过去的概念,有的翻译为水位线,有的翻译为水印,都是同一个东西,watermark是一种衡量Event Time进展的机制,它是数据本身的一个隐藏属性。通常基于Event Time的数据,自身都包含一个timestamp.watermark是用于处理乱序事件的,而正确的处理乱序事件,通常用watermark机制结合window来实现。流处理从事件产...

2020-11-25 21:35:54 242

原创 Flink从入门到真香(13、时间语义的定义)

在watermark之前先说下时间的概念,在https://blog.51cto.com/mapengfei/2554577 里面有各种时间窗口,实际生产中那是以哪个时间为准产生的窗口呢? 事件发生的时间? 进入flink程序的时间?还是flink开始处理的时间Flink提供了一套设计解决方案设置可以在代码中env直接设置val env = StreamExecutionEnvironment....

2020-11-25 20:16:50 178

原创 Flink从入门到真香(12、Flink一大利器-时间窗口)

flink中支持多种窗口,包括:时间窗口,session窗口,统计窗口等等,能想到的基本都可以实现时间窗口(Time Windows)最简单常用的窗口形式是基于时间的窗口,flink支持三种种时间窗口:第一个: 翻滚时间窗口(tumbling time window)翻滚时间窗口的窗口是固定的,比如设定一个1分钟的时间窗口,该时间窗口将只计算当前1分钟内的数据,而不会管前1分钟或后1分钟的数...

2020-11-25 20:10:30 260

原创 Flink从入门到真香(11、Sink自定义数据输出-以写入MySQL为例)

目标: Flink从txt文件中读取数据,写入到mysql中环境准备: 如果没有mysql,可以按照下面命令安装一下wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpmyum -y install mysql80-community-release-el7-3.noarch.rpmyum insta...

2020-11-06 10:26:36 332 2

原创 Flink从入门到真香(10、Sink数据输出-Elasticsearch)

目标: 从txt文件中读取数据,写入es,我这里用的es7.9,如果用的es7之前的版本下面代码中有个.type("_doc") 类别需要设置如果没有es和kibana(可选)环境可以先安装安装es7wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-x86_64.rpmwget ht...

2020-11-06 09:58:34 899 1

原创 Flink从入门到真香(9、Sink数据输出-Redis)

如果没有redis环境,可以先在虚拟机上装一个sudo yum install epel-release -ysudo yum -y install redissystemctl start redis默认是监听在127.0.0.1的,如果要调整可以改/etc/redis.conf配置文件把#bind 127.0.0.1 改为 bind 0.0.0.0 再重启redis服务即可(如果发现还...

2020-11-06 09:53:30 228 1

原创 Flink从入门到真香(8、Sink数据输出-Kafka)

关于kafka可以参考:kafka概念:https://blog.51cto.com/mapengfei/1926063kafka安装: https://blog.51cto.com/mapengfei/1926065消费者和生产者demo: https://blog.51cto.com/mapengfei/1926068Flink输出kafka样例主要是实现从txt文件中读取出来,写入kafk...

2020-11-06 09:51:00 575

空空如也

空空如也

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

TA关注的人

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