自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Flink预加载分区维表,实时更新维表配置信息

总体来讲,关联维表有三个基础的方式:实时数据库查找关联(Per-Record Reference Data Lookup)、预加载维表关联(Pre-Loading of Reference Data)和维表变更日志关联(Reference Data Change Stream),而根据实现上的优化可以衍生出多种关联方式,且这些优化还可以灵活组合产生不同效果(不过为了简单性这里不讨论同时应用多种优化的实现方式)。1:job初始化时 每个分区open 只加载自己那部分的配置, 不用每个分区都全量加载。

2023-03-22 16:46:53 2151 2

原创 flink 1.12 批处理读写hive基础教程

flink 1.12批量读写hive基础教程

2021-12-01 13:37:55 5916

原创 Falling back to default Kryo serializer because Chill serializer couldn‘t be found.

受限于 JNI bridge API 的限制,单个 value 只支持 2^31 bytes 大小,如果存在很极限的情况,可以考虑使用 MapState 来替代 ListState 或者 ValueState,因为 RocksDB 的 map state 并不是整个 map 作为 value 进行存储,而是将 map 中的一个条目作为键值对进行存储。代码中使用了ListState, 里面是一个三元组, 三元组其中一个元素是列表, 在rocksdb序列化和反序列化过程中失败, 报上面的错。

2023-03-17 14:29:26 384

原创 java.lang.RuntimeException: Failed to serialize element. Serialized size (> 134217729 bytes) exceeds

java.lang.RuntimeException: Failed to serialize element. Serialized size (> 134217729 bytes) exceeds JVM heap space

2022-10-14 10:26:12 963

原创 flink 出现反压场景, 异常场景造成Exceeded checkpoint tolerable failure threshold.

现象: flink 自定义写hdfs 的addsink 方法处理慢,出现了挤压现象;导致上游反压,后排查发现时 addsink 里面有一个解析rawtrace方法耗时很长, 同时RichSinkFunction 是和平行度一样的线程数, 导致出现了阻塞解决方案: 把解析rawtrace代码放在了keyby, map里, keyby是按照traceId, 将解析rawtrace 放在procesfuntion里, 每来一条数据就解析一次, 而不是在最后写入的时候去解析,这样不会出现阻塞的现象。

2022-10-14 10:13:50 6665

原创 spark on yarn-cluster在生产环境 部署 spark 任务, 同时支持读取外部可配置化文件

spark on yarn-cluster在生产环境部署读取外部可配置化文件

2022-09-29 11:33:21 1264

原创 本地调试spark任务demo

本地电脑联调spark任务入门级

2022-09-28 11:22:55 1393

原创 shell脚本, flink job挂掉自动从上一个checkpoint重启

Flink job中使用MapState缓存数据,保存在Rocksdb里,当Flink job 挂掉后,从最近成功的checkpoint恢复重启,不丢失缓存数据。

2022-06-13 11:04:57 2575

原创 flink批量 async io 写入hbase

flink 采用批量 async io 方式写入hbase    一条一条数据写入hbase太慢了,故采用批量的方式,每2000条数据一个批量写入hbase,提高写入性能    设置一个三秒的翻滚窗口, 将数据聚合在一起, 然后批量的方式, Async IO 异步写入hbaseval RunDataDS: DataStream[FdcData[RunData]] = getDatas() /** *

2021-12-03 14:12:47 3745

原创 G1的mixed gc详细过程

g1的mixed gc详细过程   G1会动态调整年轻代和老年代空间大小,为了达到接近预期的暂停时间;G1提供了两种GC模式,Young GC和Mixed GC,两种都是Stop The World(STW)的。   当达到IHOP阈值-XX:InitiatingHeapOccupancyPercent(老年代占整堆比,默认45%)时,便会触发并发标记周期。   整个并发标记周期将由初始标记(Initial Ma

2021-11-05 16:59:36 4770 2

原创 G1参数调优个人记录

G1内存划分G1看起来和CMS比较类似,但是实现上有很大的不同。传统分代GC将整体内存分为几个大的区域,比如Eden,S0,S1,Tenured等。而G1将内存区域分为了n个不连续的,大小相同的Region,Region具体的大小为1到32M,根据总的内存大小而定,目标是数量不超过2048个。 如下图所示:G1调优参数-XX:+UseG1GC : 使用G1回收器。-XX:G1HeapRegionSize=2m : 指定分区大小(1MB~32MB,且必须是2的幂),默认将整堆划分为2048个分区-X

2021-06-29 14:18:11 1157

原创 jvm 打印log

jvm 打印log选项作用-verbose:gc输出简要GC日志-XX:+PrintGCDetails输出详细GC日志-XX:+PrintGCDateStamps输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)-XX:+PrintReferenceGC打印年轻代各个引用的数量以及时长-Xloggc:/data/tmp/gc.log输出GC日志到文件在JDK 8中,-verbose:gc是-XX:+P

2021-06-28 14:37:03 379

原创 jvm工具实战使用

给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段,这里的数据包括:运行日志、异常堆栈、GC日志、线程快照、堆转储快照(heapdump/hprof文件)等, 这些jvm工具可以加快我们分析数据、定位解决问题的速度主要实战使用这些jvm工具, 帮助定位问题。jpsJVM Process Status Tool,用于显示系统内所有的 HotSpot 虚拟机进程。选项作用-q只输出LVMID, 省略主类的名称-m输出虚拟机进程启动时传递

2021-06-28 11:35:04 179

原创 scala隐式转换

简述:1: 通过隐式转换,程序员可以在编写Scala程序时故意漏掉一些信息,让编译器去尝试在编译期间自动推导出这些信息来,这种特性减少代码量,忽略那些冗长的代码。2: 我们经常引入第三方库,但当我们想要扩展新功能的时候通常是很不方便的,因为我们不能直接修改其代码。scala提供了隐式转换机制和隐式参数帮我们解决诸如这样的问题。Scala中的隐式转换是一种非常强大的代码查找机制。当函数、构造器调用缺少参数或者某一实例调用了其他类型的方法导致编译不通过时,编译器会尝试搜索一些特定的区域,尝试使编译

2021-05-25 14:37:21 1157

原创 在yarn集群中,flink日志输出到kafka

使用的是log4j的方式,因为需要对log做收集处理,方便后续排查问题和告警, 其实在spark中更加的有用, 正常在yarn-cluster中,spark是没法去查看log, 只有等到这个job停掉后, 再去使用yarn logs -applicationId application_1537843504301_3763查看日志在我们的项目中不用加任何的jar包在flink-1.9.0/conf/log4j.properties配置文件log4j.rootLogger=WARN,kafka.

2021-05-20 10:13:02 884

原创 yarn中flink容器的vcore大小总是1

运行flink 在on yarn环境当我使用-p8-ys 2启动flink时,我假设yarn将为唯一的任务管理器容器分配2个vcore,但是当我从yarn resource manager web ui检查每个容器的vcore数时,我总是看到vcore数是1。我还从yarn资源管理器日志中看到vcore是1。运行的脚本flink run -c $application_class -m yarn-cluster -p 8 -yjm 1024m -ytm 3048m -ynm $applica.

2021-05-17 17:21:38 1430

原创 scala使用jackson解析json成对象

什么是JacksonJackson是一个简单的基于Java的库,用于将Java对象序列化为JSON,也可以把JSON转换为Java对象。Jackons的特征 易于使用:-Jackson API提供了高级外观,以简化常用使用。 无需创建映射:Jackson API为大多数序列化的对象提供了默认映射。 性能:Jackson轻便快速,内存占用少,适用于大型对象图或系统。 干净的JSON:Jackson创建了简洁的JSON,易于阅读。 没有依赖关系:Jackso

2021-05-17 14:08:35 2145

原创 clickhouse调研

clickhouse调研结果目录简述执行:select count(*) from cluster3s1r_rawdata_all;​执行查询语句 select * from cluster3s1r_rawdata_all;​cpu资源使用情况:​磁盘存储情况(单台服务器存储1000万条,占用磁盘92M)​简述部署环境: 三台服务器,16核 120G内存clickhouse集群部署在三台服务器<yandex><!-- 集群配置 -

2021-04-16 15:34:18 356

原创 kafka 报错: LEADER_NOT_AVAILABLE

重装kafka的时候, 出现了如下报错:Error while fetching metadata with correlation id 2 : LEADER_NOT_AVAILABLELEADER_NOT_AVAILABLE 是因为无法识别 kafka 的hostname重装的步骤1: 停止kafka2: 登入zookeeper, 删除kafka的依赖[hadoop@fdc01 bin]$ ./zookeeper-client[zk: localhost:2181(CONN.

2021-03-23 14:54:03 8439

原创 flink 源码编译,执行自带的example代码

Error:java: 无效的标记: --add-exports=java.base/sun.net.util=ALL-UNNAMED解决方案:取消掉 java11如下:

2021-03-18 15:58:11 790

原创 flink checkpoint和savepoint的实践使用

环境: flink job 采用的是on yarn模式步骤1:修改flink-conf.yamlstate.backend 存储和检查点的后台存储。可选值为rocksdb filesystem hdfsstate.checkpoints.dir 保存检查点目录state.backend.incremental 增量存储state.checkpoints.num-retained 保留最近检查点的数量注释:hdfs://haservice/flink-checkpoints...

2021-02-23 10:53:19 1093 2

原创 flink 读取外部.properties的配置文件

简述:flink JOB中的环境配置信息全部从代码里面抽出来放到配置文件中去。 主要讲一下对flink 自带的ParameterTool 的使用细节,以及遇到的问题,如何解决。有三种方案:1: 使用flink 的 Configuration2: 采用广播变量3: 使用flink 自带的ParameterTool读取外部配置文件我这里介绍的是第三种方案: 使用flink 自带的ParameterTool读取外部配置文件Flink 文档地址:https://github.com/apache/f

2021-02-02 17:46:07 9876 4

原创 flink 怎么保证广播流比数据流先到

解决flink问题小技巧: 一般使用flink中出现了问题, 可以在Apache Flink 中文用户邮件列表:http://apache-flink.147419.n8.nabble.com/找一下, 是不是有人也遇到过这样的问题两种方案:1: 通过state先缓存收到的数据;然后等到广播流到达后再进行处理2: 先在正常数据处理流的open方法中初始化访问一次配置,后续配置变更时再去使用广播中的数据对配置进行更新这里我采用的是第二种方案:比如说flink 中的 connec...

2021-01-26 09:55:24 4014 8

原创 TDengine调研报告

简述环境:3台服务器搭建Tengine集群创建表rawdata子表:写入速度测试1: replica备份为1, 写入1分钟,大概70万条每秒的数据量测试2: replica备份为3,写入1分钟,大概70万条每秒的数据量测试3:写入16个小时,计算有180亿的数据量,最后得出平均每秒大概30万的数据量测试4: 写入17个小时后, 断开写入的java进程,重新编写开始时间,重启java进程, 测试1分钟的写入速度(20683400 -20638700)* 900 / 60 = 6705

2021-01-12 17:30:13 585

原创 The request included a message larger than the max message size the server will accept.

org.apache.flink.streaming.connectors.kafka.FlinkKafkaException: Failed to send data to Kafka: The request included a message larger than the max message size the server will accept. at org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer.ch..

2021-01-12 16:48:16 1467

原创 sqoop 导出hive数据到orcale

模版sqoop export# 指定要导入到Oracle的那张表(通常与hive中的表同名)--table TABLE_NAME # host_ip:导入oracle库所在的ip:导入的数据库--connect jdbc:oracle:thin:@HOST_IP:DATABASE_NAME # oracle用户账号--username USERNAME# oracle用户密码--password PASSWORD # hive表数据文件在hdfs上的路径--export-

2020-12-30 15:37:21 368

原创 hive 的map, reduce数量调试

场景: 执行hive sql,占用的内存资源特别多, 如何去减少占用的内存 cpu资源.执行的sql只是做了一下group by操作。步骤1:减少map数量,合并小文件set mapreduce.input.fileinputformat.split.maxsize=1500000000set mapreduce.input.fileinputformat.split.minsize=800000000set mapreduce.input.fileinputformat.sp..

2020-12-30 15:22:39 503 1

原创 hive 元数据库mysql 执行二个hive客户端, 就报错SessionHiveMetaStoreClient

环境 -> 元数据库:mysql执行hive命令:[root@fdc07 ~]# hiveLogging initialized using configuration in file:/opt/cloudera/parcels/CDH-5.16.2-1.cdh5.16.2.p0.8/etc/hive/conf.dist/hive-log4j.propertiesWARNING: Hive CLI is deprecated and migration to Beeline is re

2020-12-23 16:49:25 441

原创 hive显示字段名称

hive显示字段名称hive> set hive.cli.print.header=true;hive的字段类型

2020-10-22 14:56:23 528

原创 报错: flink Submit new Job时 一直在saving

报错: flink Submit new Job时 一直在saving如下图所示:解决方案: 修改目录权限

2020-08-21 14:37:06 1076

原创 Elasticsearch 健康状态出现red

Elasticsearch 基础命令:检测状态curl http://172.18.28.53:29200/_cluster/health?prettycurl http://172.18.28.53:29200/_cluster/health?level=shards查看节点信息curl ‘http://172.18.28.53:29200/_nodes/process?pretty’删除索引数据:-bash-4.1$ curl -XDELETE http://172.18.28.50:29

2020-06-30 17:05:18 5651

原创 Elasticsearch查询数据

Elasticsearch查询数据查询某天的域名search.shcurl -X POST "http://172.18.28.53:29200/a5mdu@2020-03/_search" -H 'Content-Type: application/json' -d'{ "query": { "match_phrase": { "domainMvod": "mxd.clientdown.sdo.com.gosun

2020-06-30 16:05:56 1556 1

原创 hadoop集群的NodeManager存在, 但在yarn上显示Unhealthy Nodes

也可以使用命令查看节点状态:[mmtrix@www hadoop-2.6.0-cdh5.4.1]$ bin/yarn node -list -all查看yarn的log发现2020-06-08 10:31:12,900 WARN org.apache.hadoop.yarn.server.nodemanager.DirectoryCollection: Directory /home/mmtrix/application/gosun/enterprise/hadoop...

2020-06-08 13:39:37 831

原创 hadoop报错: Operation category READ is not supported in state standby

问题1: Operation category READ is not supported in state standby初步判断是由于HA节点中处于standby状态造成的异常 原因: 原来nn1机器是active,nn2是standby, 现在nn1变成了standby。 (1)在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则

2020-05-29 14:41:49 116574 5

原创 spark Shuffle

Shuffle operations      Spark中的某些操作会触发一个称为shuffle的事件。shuffle是Spark重新分布数据的机制, The shuffle is Spark’s mechanism for re-distributing data so that it’s grouped differently across partitions。这通常涉及复制数据跨executors and machines,使shuff

2020-05-20 15:31:41 147

原创 CDN是什么?

是选择知乎大神的回答, 自己做一下记录, 以便加深理解知乎: https://www.zhihu.com/question/36514327?rf=37353035CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。简单介绍下CDN与传统网站访

2020-05-15 14:51:26 254

原创 linux下载jdk

wget直接下载jdkwget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u1...

2020-04-22 15:50:39 802

原创 org.apache.hadoop.hbase.ClockOutOfSyncException报错

1主节点5从节点, 重启hbase集群后, 有一个节点因为时间差距导致启动失败2020-03-12 13:39:58,631 FATAL [regionserver/migu-cdn-hbase001.migu01.mmtrix.com/10.186.59.50:6201] regionserver.HRegionServer: Master rejected startup because ...

2020-03-12 15:35:44 500

原创 在shell脚本执行hbase命令

定时清理hbase表### 定时清理30天前产生的表day=`date -d "-30 day" "+%Y%m%d"`hbase_table='migu:download_log'${day}''echo $hbase_tablecd /home/mmtrix/Application/Gosun/enterprise/hbase/hbase-1.2.0-cdh5.9.3exec...

2020-03-11 14:28:07 2617

原创 spark写入hdfs

spark streaming写入hdfs场景: 需要将数据写入hdfs,打包成一个gz包, 每5分钟执行一次spark任务。最终的结果如下:5分钟跑一次spark, 将数据写入hdfs, 会产生很多的小文件。spark代码val hadoopConf: Configuration = rdd.context.hadoopConfigurationhadoopConf.set("ma...

2020-03-06 13:57:07 10953 1

merge-hbase.rar

hbase的mapreduce, 是Hbase权威指南上面的例子, 例7.1: MapReduce作业从一个文件中读取数据并写入Hbase表

2019-09-25

空空如也

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

TA关注的人

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