s HyperLogLog++ paper) HLL算法的实现是相当标准的,这里有三种不同的实现方式,要注意的是,基于内存存储方案的HLL,这里我们只考虑Java和Scale两种实现 Twitter的Algebird...库,Scala实现,Algebird的文档撰写非常好,但是关于它是如何实现HLL的,不是很容易理解。
1、Twitter 提供的 Algebird,采用 Scala 实现。Algebird 有很好的文档,但他们对于 sparse 和 dense HLL 的实现细节不是很容易理解。
Clearspring 的 Java 库 stream-lib,以及 Twitter 的 Scala 库 Algebird 已经实现了所有的这三种数据结构和其他有用的数据结构,您可以通过这些库来使用它们...people.cs.umass.edu/~mcgregor/711S12/sketches1.pdf https://github.com/addthis/stream-lib https://github.com/twitter/algebird
☉ Twitter 的 Algebird 库,用 Scala 实现。Algebird 有很好的使用文档,但是稀疏和密集的 HLL 表达的实现细节不容易理解。
由于Scala在JVM里面运行,它可以立即随意访问Java生态系统,不过它也有一系列广泛的“原生”库,用于处理大规模数据(尤其是Twitter的Algebird和Summingbird)。
里面有很多有趣开源的项目,起名字就是喜欢用鸟,比如storm做实时计算,summingbird 混合式计算框架,algebird(矩阵API,代数算法库),elephant-bird等。
可视化 Apache Spark中的 MLlib – Spark中的分布式机器学习库 Scalding – 用于级联的Scala API 总结鸟 – 流行的MapReduce与Scalding和风暴 Algebird...用于algebird供电聚合的unix过滤器。 PredictionIO – PredictionIO,用于软件开发人员和数据工程师的机器学习服务器。
shaded-protobuf.jar", "akka-slf4j_2.10-2.2.3-shaded-protobuf.jar", "akuma-1.9.jar", "algebird-core
Spark—Spark下的分布式机器学习库 Scalding —CAscading的Scala接口 Summing Bird—用Scalding 和 Storm进行Streaming MapReduce Algebird
Spark—Spark 下的分布式机器学习库 Scalding —CAscading 的 Scala 接口 Summing Bird—用 Scalding 和 Storm 进行 Streaming MapReduce Algebird
跟这个相关组件是Algebird: 利用一些概率算法HyperLogLog来提高计算速度。 Drill:先说Dremel,是Google 的“交互式”数据分析系统。
目前布隆过滤器已经有相应实现的开源类库啦,如Google的Guava类库,Twitter的 Algebird 类库,信手拈来即可,或者基于Redis自带的Bitmaps自行实现设计也是可以的。
领取专属 10元无门槛券
手把手带您无忧上云