大数据
张老七没脾气
大数据从业人员
展开
-
SparkStreaming报Failed to get records for ... after polling for ...问题分析解决
笔者在使用SparkStreaming读取kafka进行实时计算时,在数据量大了以后总是会报Failed to get records for … after polling for …的问题,具体就是在规定的时间内没有从Kafka拉取到数据,从前到后查了不少资料,直至问题解决,现将过程记录如下Spark配置层面首先,针对这个问题,最直观的两个参数是spark.streaming.kafka.consumer.poll.ms和spark.task.maxFailures,分别表示拉取Kafka最大等待时原创 2020-08-17 17:34:30 · 2845 阅读 · 0 评论 -
Flume KafkaChannel数据重复问题
近期笔者在生产环境中使用Flume的hdfssink读取kafkachannel中的数据,然后写到hdfs文件中,出现了数据重复采集的状况,为此,开启了一次Flume数据传输流程的探索。问题现象最先发现问题是在hdfs中发现很多大小一模一样的文件,原本以为到达了Flume的采集能力上限导致只能写这么多数据,结果把文件拉下来进行MD5校验发现所有的文件是一样的,这意味着我们的文件采集重复了,接...原创 2020-04-23 16:51:19 · 2157 阅读 · 0 评论 -
spark streaming 广播变量空指针异常问题&广播变量更新
这两天在使用spark中的用到了广播变量,大致逻辑是从Redis中读取黑名单配置,然后广播到各个节点用于异常监控,但是在使用过程中总是报空指针异常,后面百度了很多资料,发现有说Yarn集群中不支持广播变量的,有说Sparkstreaming不支持广播变量更新的,有说是spark闭包问题的等等各种,最后笔者去查了sparkstreaming官方文档才学会了广播变量的正确使用方法,并将过程记录下来。...原创 2019-12-25 14:32:30 · 1802 阅读 · 0 评论 -
spark streaming任务触发执行时间
相信有不少小伙伴在使用spark streaming做微批次处理的时候有过疑问,就是我设置了Duration然后启动任务,那么我的批次任务每次会在啥时候启动呢?相信对于Duration设置比较小的同学来说并不会关心在什么时候执行,但是对于Duration设置比较大或者对数据延时、资源敏感的同学来说,可能就需要知道我的任务到底会在什么时候出发执行,话不多说,我们直接看源码进入GitHub找到spa...原创 2019-12-02 15:05:02 · 1682 阅读 · 1 评论 -
Kafka是如何实现Broker级别均衡以及磁盘级别均衡的
笔者最近在使用Kafka进行日志收集时,发现kafka集群中,各个磁盘的利用率相差比较大,带着疑问,笔者展开了对kafka是如何实现broker均衡以及单个broker上不同磁盘目录(rack)的数据均衡的探索,现将本次探索总结分享如下起因笔者在前端时间对Kafka集群中的每个broker进行了磁盘扩容,之前每个broker下面配置了一块磁盘,现在每个broker下面挂载了两块磁盘,并且将ka...原创 2019-10-22 17:33:01 · 1443 阅读 · 1 评论 -
Flume日志长度2048超长问题解决
最近笔者在使用Flume-1.7进行日志收集的时候,遇到了日志长度超出2048限制等一系列问题,经过一天的排查终于将问题解决,在此将问题记录下来,并提供了修改后的flume-ng-core-1.7.0下载包,供后来的同学参考 **问题描述首先,笔者发现问题是由于发现近期日志总量变少,去排查了Flume的运行日志,发现原因是大量的日志被拦截器干掉了(此处笔者使用了自定义拦截器,对于日志...原创 2019-09-29 12:45:07 · 2648 阅读 · 5 评论 -
记一次spark streaming+kafka 运行时间不稳定调优历程
spark streaming+kafka运行batch process time不稳定问题梳理问题现象排障调优历程解决方案问题现象题主在去年8月份首次使用spark streaming进行流式计算的时候遇到的一个问题,即spark streaming读取kafka消息进行流式计算, 但是在数据量比较大的情况下总会出现一些batch的process time比较长,但是大多数batch能在较短...原创 2019-06-30 16:08:23 · 5076 阅读 · 9 评论 -
Mycat调优启用useOffHeapForMerge报java.lang.NumberFormatException异常解决(附源码)
以前在进行Mycat调优的时候设置过Mycat的useOffHeapForMerge参数,发现在大数据量查询聚合的时候启用堆外内存对于查询性能提升非常明显,但是最近在新的生产环境部署Mycat启动的时候总是报错java.lang.NumberFormatException: Size must be specified as bytes (b), kibibytes (k), mebibytes ...原创 2019-05-06 16:53:26 · 2447 阅读 · 3 评论 -
Spark Streaming广播变量更新问题
最近在使用Spark Streaming进行流式计算过程中,遇到在过滤函数中需要用到外部过滤条件列表,且列表会随时更新,一开始只是在main函数中获取过滤条件列表,但是后来发现streaming程序每次触发并非重新执行一遍main函数,部分代码(个人理解为非spark DAG有向图中rdd依赖链中的代码,也就是在driver端执行的这一部分)只会在streaming程序启动的时候执行一次,因此也就...原创 2019-04-29 16:34:17 · 3194 阅读 · 5 评论 -
基于两级Flume+Kafka的日志采集架构
本文给出了一种基于Flume+Kafka的通用日志采集传输架构,记录了其中的组件部署、配置、故障解决的过程,希望给后来的同学提供一些参考,不足之处欢迎指正原创 2019-03-13 20:41:56 · 749 阅读 · 0 评论 -
Hbase Scan查询左右区间开闭问题
刚开始用Hbase,用Scan进行数据查询,以为类似于Mysql的between…and…,但是发现查询结果不对Table table = connection.getTable(TableName.valueOf(tableName));Scan scan = new Scan();scan.setStartRow(Bytes.toBytes(startRow));scan.setSto...原创 2019-01-14 15:09:47 · 2843 阅读 · 2 评论 -
Mycat分片路由解析引起的查询效率问题解决--源码解读
题前话对于做大数据分析的同学来说,整个ETL过程无疑是大数据工作中最有挑战也最耗费精力的部分,尤其是在数据收集、清洗、计算阶段,比如如何保证数据收集完整,如何保证清洗后数据真实有效字段含义准确,如何选取集群计算引擎保证数据处理稳定高效,如何实现集群高可用以及容错机制等等,然而做完这些工作只能说是完成大数据分析工作中的80%,最后怎么将分析结果呈现给客户,并达到可交互、实时性的数据展示,也是大数...原创 2018-12-24 09:21:35 · 4107 阅读 · 4 评论