Chai's Blog

Dig deeper

异常Kafka'修复'记

近期由于测试Flink安全模式,找到一个安全的hadoop&kafka集群,测试过程中发现kafka集群各种异常(topic创建完没有leader,之前的topic无法消费,__consumer__offsets中部分partition没有leader),于是决心删除重装,经ambari删除添加发现如下深坑: 1 2 ambari在进行kafka清理时,不会将zk上kafka的zn...

Flink流流关联(interval join)总结

Flink对流流JOIN的支持 Flink对于join的支持有多种支持,可参考 Flink Join类型, 本文主要讨论Time interval join支持Table API的双流join,同时支持基于EventTime 和 ProcessingTime的的流流join。 Flink在TableApi中将流作为表使用,下文也不再区分流和表。 Flink对于interval join的...

Flink1.8-on-hdp-yarn踩坑记

Flink1.8版本相比1.7在打包和jar包拆分上作出些许调整,对使用者有一定影响;如下是笔者在使用flink-1.8 on hdp yarn时踩的两个小坑 操作步骤 直接下载安装flink安装包flink-1.8.0-bin-scala_2.11.tgz,解压后,使用如下命令提交作业: 1 ./bin/flink run -m yarn-cluster ./examples/bat...

Spark-sql join那些事

本文基于Spark 2.4版本,对其中的sql Join简要梳理 支持Join类型: SparkSql在2.4版本中,使用anltr4完成sql语句的解析,其所有支持的Sql语法课参看SqlBase.g4文件。 查看该文件中Join类型支持语法,如下: 1 2 3 4 5 6 7 8 9 joinType : INNER? # 支持INNER JOIN,INNER关键字可...

Spark-VS-Flink部署模式对比

本文主要对Flink和Spark集群的standalone模式及on yarn模式进行分析对比。Flink与Spark的应用调度和执行的核心区别是Flink不同的job在执行时,其task同时运行在同一个进程TaskManager进程中;Spark的不同job的task执行时,会启动不同的executor来调度执行,job之间是隔离的。 Standalone模式 Flink 和Spark...

Kafka-日志存储、清理规则、消息大小估算

kafka的日志: kafka消息存储在kafka集群中(分parition存储,每个partition对应一个目录。目录名为${topicName}-${partitionId},kafka接收到的消息存放于此目录下,包含log文件,index文件,timeindex索引文件(0.10.1后的版本) 名字 含义 备注 ...

Kafka的topic创建流程

Kafka的topic创建流程 Kafka的topic创建一般通过调用客户端接口实现。接口通过获取集群信息将创建topic所需parttion, replica, leader, follower, isr等信息写入zk的topic相关目录,服务端通过zk的的listener机制,解析客户端写入的topic信息,完成topic的创建。主要逻辑如下: 客户端逻辑 解析参数,直接调用cr...

Kafka消费打印消息格式的设置

通常在测试kafka时,会用kafka-console-consumer来查看消息是否能被消费。改名了为kafka官方提供的控制台消费消息工具,使用方法可通过直接抵用该命令(sh kafka-console-consumer.sh)仅用于测试场景。 默认情况下该命令在消费消息打印时,只会打印消息的值。 如果想要查看更多消息的信息,如createTime,key,或者想要更友好显示消息,则...

KafkaScheduler 调度分析

kafkaScheduler调度模块 KafkaScheduler作为broker进程的调度模块,提供对线程池的封装,对于一些周期性/非周期性执行的逻辑,可用于周期性调度/非周期调度。主要包含如下流程: 周期的调度 模块 定时任务 参数 默认 执行逻辑 备注 ...

String-转成-Boolean

SDK中String => Boolean的转换 Scala中把String类型转化为Boolean类型可以调用toBoolean方法即可 “true”.toBoolean JDK中String => Boolean的转换 在Java中就不太明显,容易掉坑了,Java中Boolean有getBoolean和pars...