简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
之前的那篇HFile结构解析的文章分析了下HFile的结构,这篇文章来分析下HBase Get数据的流程,看下它是如何获取数据的。一般来说,HBase读取数据的流程是这样的:先从Zookeeper中找到meta表所在的Regionserver的信息,根据namespace、表名、以及rowKey查找数据所在的RegionServer的信息。向对应的regionServer建立连接并发起...
在写Hive SQL时,需要从一个json列中解析出多个key的信息,查阅资料了解到有两种写法,一种是get_json_object,另外一种是json_tuple。两种用法的示例如下所示get_json_object示例:selectget_json_object(json_str_column,'$.a1') as a1,get_json_object(json_str_column,'$.a
业务上需要将同一个时间段的两种数据收集到一起做一些计算,这两种数据分别存在于Kafka的两个Topic中。计算逻辑是这样的:使用两个DataStream分别消费两个Topic中的数据,对两条流先分别设置WaterMark,然后union,接着进行keyBy操作,最后使用Window将同一个时间窗口中的两种数据汇聚在一起进行计算。但是发现程序无论是在本地运行还是在yarn-cluster模式下运行,
项目中需要使用Flink消费Kafka中的数据,然后使用二阶段提交的方式写入到MySQL里面。网上找到了一大堆相关的例子,但是没有一个是靠谱的,全TM是复制粘贴而且还是不能用的那种! 开发+调试,浪费了我好几天的时间,哎,其实也是自己太菜了。所以本文就是解析下Flink二阶段提交的源码,然后给出自己的二阶段提交的实现。如果文章中有错误,非常欢迎大家的指正,多多交流!网上找到的Flink二阶段方式写
RDD的本质RDD的本质是一个函数,而RDD的变换不过是函数的嵌套.RDD有两类:输入的RDD: 典型如KafkaRDD,JdbcRDD转换的RDD: 如MapPartitionsRDDRDD的处理流程:以如下代码为例:sc.textFile("abc.log").map().saveAsTextFile("")1. textFile 会构建出一个NewHad...
以下记录的问题,Flink版本为1.10.0,Kafka版本为0.10.0.1。有些问题至今不知道原因是啥,如果有朋友知道的话,麻烦和我说下呗,感谢感谢!1.setStartFromEarliest不起作用在IDEA中调试,消费Kafka的数据,然后发现setStartFromEarliest不起作用,Consumer显示默认的offset还是latest。通过Con...
最近在深入理解Flink的Exactly-Once,发现Flink Checkpoint只能保障Flink程序内部的一致性,无法保证Sink到外部系统的Exactly-Once语义。但是Sink到外部如果实现了TwoPhaseCommitSinkFunction这个抽象类就能实现端到端的Exactly-Once语义,而Kafka刚好也实现了这个这个类,所以先来研究下Kafka的Exactly-On
项目开发过程中遇到的一些问题:问题1:环境中配置的replica.fetch.max.bytes该值偏大,导致有节点下线后同步数据会出现网卡塞满的情况,建议该值在百兆网下配置10M,千兆网20M左右。 问题2:kafka不消费数据。后来发现是超时时间设置的的太短,消费还未处理完就已经被kafka认为超时,导致消费失败,offset不提交,所以一直消费那一批数据。修改超时时间即可。 ...
想起来之前被问到了一个问题,如果Flink中的Task是一直不停的运行的话,那么拉取Kafka数据的Source端是不是会一直不停的拉取数据,如果消费速度不及时,内存不就很快会被撑爆了么?一开始对这个问题是一脸闷逼,后来随着对Flink使用的逐渐深入,对Flink的内部也有了一定的了解,所以本文就来了解下Flink内部的反压机制,看下反压机制是如何解决该问题的。什么是反压以及反压所带来的影响?在流
日前查看某个程序的日志,发现一直在报GC相关的信息,不确定这样的信息是代表正确还是不正确,所以正好借此机会再复习下GC相关的内容:以其中一行为例来解读下日志信息:[GC (Allocation Failure) [ParNew: 367523K->1293K(410432K), 0.0023988 secs] 522739K->156516K(1322496K), 0.0025...