- 博客(4)
- 收藏
- 关注
原创 大数据分区之Partition
2 默认Partitioner分区是个根据key的hashCode对ReduceTasks个数取模得到的,用户没有办法控制哪个key存储到哪一个分区中。自定义Partition后,要根据自定义Partitioner的逻辑设置相应数量的ReduceTask。如果1
2023-01-08 17:40:23
149
原创 大数据之hadoop序列化
Java的序列化是一个重量级的序列化框架(Serializable),一个对象被序列化后会附带很多额外信息,比如一些检验信息,header,继承体系等。一般来说,对象只存活在内存中,在我们关机或者断电是时候它就没有了,而且对象只能由本地的进程使用,不能被发送到另一台计算机上,然而序列化可以解决这个问题,它可以将这个存储的对象发送到远程的计算机上去。反序列化就是将收到的字节序列或者其他数据传输协议再或者是磁盘的持久化数据转换为内存的对象。注意反序列化的顺序要和序列化的顺序一样。紧凑性:很高效的使用存储空间。
2023-01-04 22:58:31
192
原创 数据倾斜的解决办法
采用的思想就是两次MapReduce,第一次将key随机散列到不同的reducer中经常处理以达到负载均衡的目的,第二次再根据去掉key的随机前缀,按照原来的key进行reduce处理。在mapper加上combine相当于提前进行reduce,就是把一个mapper中相同的key进行聚合,以减少shuffle(洗牌)过程中传输的数据量,以及reducer阶段的计算量。但是如果导致数据倾斜的key大量分布在不同的mapper阶段的时候,这个方法就不是很实用了。2 增加reducer,提高并行度。
2023-01-02 20:10:01
456
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人