AlstonWilliams's Blog

Thinking will not overcome fear but action will.

致敬龙哥

今儿看了《老师好》这部电影。 开始冲着评分去的,但是看完第一分钟,就深陷进去了。因为它勾起了我的回忆。 剧中有一个严厉却又不失仁慈的老师,一批调皮捣蛋的学生。 相信每个高中毕业的人,回忆起那段时光,都会感触年少独有的悸动,年少轻狂,各种种种。 但是,并不是每个人都会遇到那么一个好老师。 遥想当年我上高中那会,高一的时候也是非主流,各种滥行现在都不好意思回忆。但是也是碰到了一位好老师...

MapReduce读取HDFS上的文件时提示wrong fs

最近在部署客户环境时,遇到了这么一个问题 java.lang.illegalargumentexception wrong fs s3 // expected hdfs // 背景 这个客户的环境有点调皮,既使用了HDFS,又同时购买了S3。而且最蛋疼的是,他们没有把HDFS的defautFS设置成S3。 而我们的某个MR任务,运行时依赖的第三方Jar包,我们需要上传到HDFS上。然...

Spark BypassMergeSortShuffleWriter ArrayIndexOutOfBoundException

写的任务跑的时候,遇到这么一个问题: java.lang.ArrayIndexOutOfBoundsException: -13 at org.apache.spark.shuffle.sort.BypassMergeSortShuffleWriter.write(BypassMergeSortShuffleWriter.java:152) at org.apache.spark.sch...

2019年四月份总结与五月份计划

老骥伏枥,志在千里 技术 先来看四月份的计划,技术方面的: 学习ES(√) 研究Hadoop,HBase(√) 实践Flink(×) 多读一些技术文章,多看一些技术演讲(√) 学习ES的过程有点坎坷.找了《ElasticSearch: The Definitive Guide》这本大块头来读,但是发现有点困难. 要是照我以前那种读书方式,我估计读完以后,还是什么收...

SparkSQL中distinct vs group by

前两天,同事对我的代码进行CodeReview的时候,看到我写了一句select distinct(session) from insight.labeled_id where date=’20190101’ and id =’1’,告诉我不能这么写,应该写成select session from insight.labeled_id where date=’20190101’ and id...

HBase的compact和rowkey全局有序(转)

最近突然想起来之前遇到的一个问题,就是rowkey的顺序不对,导致插入不到HBase中。而我们的项目中,其实一直没有关心过顺序这件事情,那为什么它不会遇到rowkey顺序不对而导致插不进去呢? 想起来之前看到的一句话,”HBase中rowkey的顺序必须是递增的”。而我们程序并没有保证这一点,那HBase是如何保证这一点呢? 从网上看到这么一段话,感觉比较真实,这里先贴下来: 首先...

Spring Boot RabbitMQ自动创建队列

最近我们在做自动化部署的时候,出现了一只拦路虎,就是我们需要在启动微服务的时候,自动创建RabbitMQ队列。 刚开始我们得知,Consumer会自动创建队列,而实际我们的代码中,并没有自动创建。我们有如下代码: Listener.java @SpringBootApplication public class Listener { public static void mai...

Spark HBase Bulkload数据一致性问题

最近测试环境出现了一个很奇怪的问题,在算报表的时候,发现总是缺了一部分。 而重新跑一遍流程,这些报表又全部都有了。回想起报表是用Sketch计算的,所以可能是流程中写Sketch的过程出了问题。 我们的流程是这个样子,现在程序里,生成Bulkload需要的HFile,然后再调用一个脚本来将这些HFile Bulkload到HBase中。 而其实这中间就隐藏了一个bug,就是如果第一步生...

Spark External Shuffle Service Timeout

最近遇到了一个问题,如下所示: WARN TaskSetManager: Lost task 38.0 in stage 27.0 (TID 127459, linux-162): FetchFailed(BlockManagerId(66, 172.168.100.12, 23028), shuffleId=9, mapId=55, reduceId=38, message= org.ap...

Spark为什么数据在UserMemory中放不下也能跑成功?

最近在做一件很蛋疼的工作,就是将HBase中的Bitmap,其中存的Hash都拿出来,然后做一下处理,得到我们想要的结果。 处理起来非常蛋疼,我们的Bitmap的最大尺寸是128MB,经过处理以后,数据量很可能就变成了10GB+,而我们又需要读全量的HBase表来处理。 本来我的方案是按照时间段来处理,我先取了某个时间段的,然后跑起来发现没什么问题,数据量也不小。Shuffle Spil...