摘要:
引起shuffle的算子 所谓shuffle就是指把数据打乱重新组合。指数据从map task输出到reduce task输入的这段过程。 引起shuffle的算子有: repartition类的操作:repartition, coaleasce等 ByKey类的操作:reduceByKey, gr 阅读全文
摘要:
LinkedHashMap继承了HashMap,但是LinkedHashMap保留了数据插入时的顺序。 阅读全文
摘要:
在大数据处理计算领域,有离线计算和实时计算两种模式。一直以来, 我们都是用mapreduce / hive / sparkSQL来处理离线场景,用 sparkStreaming / flink处理实时场景,但是这种lambda架构会导致一个问题:进行更改时要同时更改两套代码,进行同步。 flink流 阅读全文
摘要:
问题示例: 从十亿个正整数中找出指定的数字。或者排序。 思路 先去重 1. 直接排序。然后在排序后的集合上进行查找,取出前K位。 问题是:int - 32位 - 8个字节,10亿个数*8字节得 4G存储空间。现在大部分机器内存都在8G以上,服务器内存都在128G,这个思路也能做排序。 但是我们的目标 阅读全文
摘要:
HashSet 作用:保证数据的唯一。 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable{ private transient HashMap<E,Obj 阅读全文
摘要:
布隆过滤器 可以看作是一个位数组,每个元素只占1bit,存的都是0或者1。 它通常用于查询某个元素是否存在,但是它是一种概率性查询,能够实现高效查询,但是又一定的误判。能够告诉你某个元素一定不存在或可能存在。 与此对比:HashMap也是用来判断某个元素是否存在的,把数据存为HashMap的key, 阅读全文
摘要:
HashTable是一种非常重要的数据结构,也叫散列表。 HashMap的原理: 数组+链表+红黑树。 用hash(值)计算所在数组的下标,hash(值)能够一次定位到数组下标,所以在不考虑哈希冲突的情况下, 查找、删除、插入操作的时间复杂度是O(1)。但在发生哈希冲突时,仍然要遍历整个链表,时间复 阅读全文