kafka 原理详解
kafka 原理详解
|
kafka 简析前言对于一家网络公司来说,可能有大量的数据产生,例如用户登录、浏览、点击等等事件,或者系统内部的服务调用、错误信息、服务器负载等等日志信息。这些数据可以用于搜索相关、推荐系统、广告相关等等,然而这些数据很多时候是和应用耦合在一起的。同时这些额外的日志数据,可能数据量比本身应用的数据还
Hive 快速入门
Hive 快速入门
|
简介Hive 是基于 Hadoop 的一个数仓工具,基于存储在 HDFS 上的结构化的数据文件提供类似 SQL 的查询功能,本质上是将 SQL 转化为 MapReduce/Spark 任务执行,从而提取到需要的数据。提出 Hive 的主要原因是:手动编写分布式的查询任务门槛较高,实现复杂,导致基于大
HDFS 简析
HDFS 简析
|
简介HDFS 全称 Hadoop Distributed File System,是用于 Hadoop 生态的底层分布式文件系统,其设计和 GFS 类似,但是做了一定的简化。HDFS 只允许写入一次,也就是写入必须是串行的,而 GFS 允许并行写入,同样也带来了更复杂的并行设计。简化的 HDFS 仍
YARN 简析
YARN 简析
|
概述MapReduce 中,存在有以下几个缺陷:拓展性差,JobTracker 同时具备资源管理和作业控制两个功能,导致其称为严重的单点性能瓶颈,无法拓展更大的集群可靠性差:Master/Slave 结构存在单点故障,如果 Master 宕机则会导致整个集群不可用资源利用率低:MapReduce 是
BigTable 简析
BigTable 简析
|
概述BigTable 一定程度上是 NoSQL 的前身,也就是键值型数据库,存储的数据本质上就是键值对,所以 BigTable 顾名思义,就可以理解成一个支持分布式和巨量数据的 Map。在 BigTable 中键为行键(Row Key)、值为列族(Column Family)中的列元素,时间戳(Ti
LSM-Tree
LSM-Tree
|
什么是 LST-TreeLSM-Tree 全称 Log-Structured Merge Tree,该树用于优化写入密集型的操作,解决了传统的 B 树或 B+ 树进行频繁写入时产生的性能问题。其充分利用了磁盘顺序写的速度远高于随机写的速度,并通过内存 + 磁盘的多层合并,提高了大规模数据的写入性能。
7daysgolang-GeeRPC 简析
7daysgolang-GeeRPC 简析
|
前言本文是记录在学习 GeeRPC 项目中的一些要点和概念,在代码部分只会给出最核心的代码,而一些外围代码,例如错误处理、一些并发细节、一些接口定义等都会被忽略。适合从一个宏观层面来理解 GeeRPC,因为 GeeRPC 原文实际上是从细节出发,难以从一个宏观视角理解,容易在「森林」中迷路。完整的源
Raft 详解
Raft 详解
|
共识算法Raft 是一种共识算法,共识算法是一种在分布式系统中非常重要的算法,他允许在一个节点集合中,即使某些节点挂了,对外的服务仍然还是一致的。最经典的模型是拜占庭问题,假设现在有几个将军和他们的军队围攻一个城市,这些将军必须通过传令兵来通信。他们需要对攻击还是撤退达成一致的决定,只有半数以上的军
MapReduce 详解
MapReduce 详解
|
前言MapReduce 作为谷歌三剑客之一,在分布式系统领域有非常重要的作用,他带来 Map-Reduce 的分布式任务处理框架推动了分布式系统的发展。对于 MapReduce,其可以简单概括为两个步骤,第一个是 Map,第二个是 Reduce。Map 的操作在于把原始巨大的任务打碎拆散,方便多个计
经典互斥问题:面包店算法
经典互斥问题:面包店算法
|
介绍面包店算法是在多线程环境下无锁的互斥算法,能够保证在多线程的环境下,临界区同时至多只有一个线程进入。虽然算法回看起来并不难,但却是图灵奖得主 Lamport 最骄傲的成果之一。面包店算法要解决的本质是一个互斥问题,其是由 Dijkstra 提出的,另一个图灵奖得主。在计算机发展过程中,有相当多人