首页
学习
活动
专区
工具
TVP
发布

SmartSi

专栏作者
270
文章
585862
阅读量
53
订阅数
Redis 如何使用HyperLogLog
Redis 在 2.8.9 版本添加了 HyperLogLog 数据结构,用来做基数统计,其优点是在输入元素的数量非常大时,计算基数所需的空间比较小并且一般比较恒定。
smartsi
2019-12-02
7260
Spark Streaming与Kafka如何保证数据零丢失
Spark Streaming 是一种构建在 Spark 上的实时计算框架,它扩展了 Spark 处理大规模流式数据的能力。Spark Streaming 的优势在于:
smartsi
2019-08-07
6680
ElasticSearch 动态更新索引
倒排索引被写入磁盘后是 不可改变(immutable):永远不会被修改。不变性有如下几个重要的优势:
smartsi
2019-08-07
3.8K0
Spark2.3.0 持久化
Spark 中最重要的功能之一是在操作之间将数据集持久化(缓存)在内存中。当你持久化一个 RDD 时,每个节点都会保存 RDD 的任意分区,RDD在内存中计算时该数据集(或从其派生的数据集)上的其他 Action 可以重用它。这样可以使后面的 Action 操作执行的更快(通常超过10倍)。缓存是迭代算法和快速交互的关键工具。
smartsi
2019-08-07
5110
ElasticSearch 近实时搜索
随着 按段搜索 的发展,索引文档与文档可被搜索的延迟显着下降。新文档可以在数分钟内可被搜索,但仍然不够快。
smartsi
2019-08-07
7920
Spark内部原理之内存管理
Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优。本文旨在梳理出 Spark 内存管理的脉络,抛砖引玉,引出读者对这个话题的深入探讨。本文中阐述的原理基于 Spark 2.1 版本,阅读本文需要读者有一定的 Spark 和 Java 基础,了解 RDD、Shuffle、JVM 等相关概念。
smartsi
2019-08-07
7070
Spark Persist,Cache以及Checkpoint
下面我们将了解每一个的用法。重用意味着将计算和数据存储在内存中,并在不同的算子中多次重复使用。通常,在处理数据时,我们需要多次使用相同的数据集。例如,许多机器学习算法(如K-Means)在生成模型之前会对数据进行多次迭代。如果处理过程中的中间结果没有持久存储在内存中,这意味着你需要将中间结果存储在磁盘上,这会降低整体性能,因为与RAM相比,从磁盘访问数据就像是从隔壁或从其他国家获取内容。下面我们看一下在不同存储设备上的访问时间:
smartsi
2019-08-07
1.5K0
ElasticSearch 持久化变更
如果没有使用 fsync 将文件系统缓存中的数据刷(flush)到磁盘上,我们无法保证数据在断电后甚至在正常退出应用程序后仍然存在。为了使 Elasticsearch 具有可靠性,我们需要确保将更改持久化到磁盘上。
smartsi
2019-08-07
1.2K0
使用Redis Bitmap简单快速实时计算指标
传统上,度量指标一般由批处理作业执行(每小时运行,每天运行等)。Redis 中的 Bitmap 可以允许我们实时计算指标,并且非常节省空间。在1.28亿用户场景中,经典度量指标(如’日活’)在 MacBook Pro上只需不到50毫秒,而且只需要16 MB内存。
smartsi
2019-08-07
1.8K0
Kafka如何实现每秒上百万的高并发写入
Kafka是高吞吐低延迟的高并发、高性能的消息中间件,在大数据领域有极为广泛的运用。配置良好的Kafka集群甚至可以做到每秒几十万、上百万的超高并发写入。
smartsi
2019-08-07
1.3K0
Storm Tick 元组
在某些情况下,Bolt 在执行某些操作之前需要将数据缓存几秒钟,例如每隔5秒清理一次缓存或在单个请求中将一批记录插入数据库。
smartsi
2019-08-07
8420
Flink 轻松理解Watermark
当我们第一次使用 Flink 时,可能会对 Watermark 感到困惑,其实 Watermark 并不复杂。让我们通过一个简单的例子来说明为什么我们需要 Watermark,以及它是如何工作的。
smartsi
2019-08-07
2.2K0
Hive Map Join 原理
首先,让我们讨论一下 Join 如何在Hive中运行。Common Join 操作如图1所示被编译为 MapReduce 任务。Common Join 任务涉及 Map 阶段和 Reduce 阶段。Mapper 从连接表中读取数据并将连接的 key 和连接的 value 键值对输出到中间文件中。Hadoop 在所谓的 shuffle 阶段对这些键值对进行排序和合并。Reducer 将排序结果作为输入,并进行实Join。Shuffle 阶段代价非常昂贵,因为它需要排序和合并。减少 Shuffle 和 Reduce 阶段的代价可以提高任务性能。
smartsi
2019-08-07
7.6K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档