大数据

一、大数据的特点

数据量大;数据生成快;数据形式多样;数据价值大。

二、HDFS

hadoop分布式文件系统。

特点

1、建立在大量廉价的机器上,所以硬件错误是常态,但是提供容错机制。

2、简单一致性模型:只允许追加写,不能修改,保证了数据的一致性。

3、批量读而不能随机读,关注的是吞吐量而不是效率。

优点

高容错:数据多副本,副本丢失自动恢复。

高可用:NameNode的HA(主备切换,元数据高可用,AN的选举)和安全模式机制。

高扩展:10K节点规模。

适合大规模离线批处理。

缺点

不适合低延迟的数据访问;不适合大量小文件的存储;不支持并发写;不支持随机修改。

HDFS中的角色

Active NameNode(AN)

集群中唯一的活动的管理节点(Master)。负责管理命名空间和元数据,处理客户端的读写请求,为DataNode分配任务。

Standby NameNode(SN)

AN的热备节点。当AN宕机时,升级为新的AN。

负责周期性同步edits日志,合并edits和fsimage到本地磁盘。

NameNode元数据

包括edits(编辑日志文件,记录了自上一个检查点以来所有的文件更新操作)和fsimage(元数据检查点镜像文件,保存了文件系统所有的目录和文件信息)。

DataNode

执行客户端的读写请求;储存block数据和校验和,通过心跳机制定期向NameNode反馈运行状态和block列表信息。

Block数据块

HDFS最小的存储单元,默认128M一个块,三副本。

edits和fsimage的合并

hadoop1.x:将edits和fsimage从AN复制到SN中,在SN中进行合并,然后把结果再复制回AN。

hadoop2.x:通过将edits保存到QJM共享存储系统中,每次SN只要从QJM中拿到edits,然后和保存在自己这的fsimage合并,再将结果复制给AN即可。

安全模式

概念:安全模式是HDFS的一种保护机制,此模式下只允许读请求,不接受写等更新请求。

触发的条件

1、NameNode重启。2、NameNode磁盘空间不足。3、block上报率低于阈值。4、DataNode无法正常启动。

三、MapReduce

面向批处理的分布式计算

核心思想

分而治之,并行计算;移动计算,而非移动数据。

执行过程

Map-Reduce程序执行过程

split:将输入数据分成大小相等的数据片;一个切片对应一个map任务,切片数决定map任务数;注意split只是逻辑概念,只包含元数据信息。

map阶段:任务数由切片数决定,输出的是中间结果(如key-value形式)。

reduce阶段:由若干reduce任务组成,输出的是最终结果。

shuffle阶段:是Map-Reduce的中间环节,负责分区(partition),排序(sort),溢写(spill),合并(merge),抓取(fetch)等操作。

shuffle过程详解

map部分的shuffle:map任务将中间结果写入缓存中,同时对数据进行分区排序;当缓存到达阈值,便会溢写到磁盘的临时文件中,临时文件也会分区排序;当map任务结束时,将多个临时文件合并成一个文件,文件也会分区排序。

reduce部分的shuffle:reduce任务抓取自己需要的分区数据,保存在缓存中,到达阈值再溢写到磁盘的一个临时文件中;当抓取结束时,将多个临时文件合并为一个reduce的输入文件,文件中的值按key排序。

局限性

只有map和reduce两种操作;执行效率低,时间开销大;不适合迭代计算、交互式计算、流式计算。

四、Spark

spark由spark core、spark SQL、spark Streaming、spark MLib、spark GraphX组成。

由于spark的计算是基于RDD实现的。所以主要介绍一下RDD。

RDD

RDD(弹性分布式数据集),分布在集群中的只读对象,由多个partition组成,失效后可以自动重构(弹性)。

RDD操作

transformation:通过已有的RDD产生新的RDD,但是不触发计算。

action:通过RDD计算得到一个或一组值,真正触发计算。

RDD依赖

窄依赖:父RDD的一个分区只能被一个子RDD的一个分区使用。

宽依赖:子RDD的一个分区使用所有父RDD的所有分区。

宽依赖会触发shaffle阶段,所以开销大,应尽量避免宽依赖。

Spark的master/slave架构

Master:负责集群的管理。

Worker:工作节点,其中可有多个Executor,每个Executor用来执行多个task。

Zookeeper负责Master的HA,避免单点故障。

五、Storm

分布式实时计算流式处理系统。

核心概念

Nimbus:集群的主节点,负责任务的分配

Supervisor:集群的从节点,负责其上的worker进程的管理。一个worker进程可以有多个线程,每个线程可以执行多个任务。

Zookeeper:负责Supervisor的心跳机制和状态管理。从而帮助Nimbus进行任务分配。

Topology:真正的storm程序,其由一个Spout和多个Bolt构成。

Spout:负责从数据源获取数据,然后形成Tuple(Storm的数据格式,支持所有类型的有序元组)分发给Bolt。

Bolt:真正执行task的单元,在execute方法中具体实现操作。

Storm、Spark Streaming和Map-Reduce的对比

计算模型:纯实时,来一条数据处理一条。准实时,一次处理一个时间段的数据。非实时,适合离线大批量数据处理。

计算延迟:低。较低。高。

计算吞吐量:低。中。高。

动态调整并行度:支持。不支持。不支持。

六、Kafka

基于发布/订阅的分布式消息系统

基本概念

Broker:Kafka的一个节点,多个Broker组成Kafka集群。

Topic:一个topic是一类数据的集合。topic是逻辑概念,用户只需知道数据属于哪个topic,而不必关心它的实际存储位置。

Partition:有序、不可修改的消息队列(FIFO)。一个topic可以分成多个分区,一个分区有多个Replication(副本),分别存放在不同的broker上。partition是物理概念,一个分区对应一个文件,文件中保存着数据和索引信息。

Offset:数据在Partition中的偏移量,由Zookeeper进行维护。

Producer:向Kafka发送数据的客户端。

Consumer:从Kafka消费数据的客户端。

Consumer Group:不同消费者组可以同时消费一个topic,但是一个topic只能被同组里的一个consumer消费。

Zookeeper:保存着Kafka的元数据。负责Kafka的管理,包括配置管理,动态扩展,broker负载均衡,Kafka Controller Leader选举等。

工作机制

Kafka高可用

多分区多副本:一个topic被分成多个分区,每个分区有多个副本,其中一个是partition leader,负责数据的读写,其余的副本作为follower定期从leader同步数据。

Kafka Controller Leader:每个broker启动时都会创建一个kafka controller。而leader是由zookeeper负责选举,leader负责集群分区和副本的管理。

Kafka Partition Leader:在zookeeper中维护着一个保存有分区副本信息的ISR列表。当Partition Leader宕机时,Controller Leader会从ISR中选择一个副本作为新的Partition Leader。ISR列表则是由Partition Leader负责追踪和维护。

七、Redis

所有数据以key-value存储的数据服务器。

支持的value类型有String、List、Set、Sorted Set、Hash。

Redis持久化

方法一:快照。将内存中的数据以快照的形式存入二进制文件中。

方法二:AOF(Append of File),此方法通过记录在数据集上的操作来进行数据持久化。

主从复制

Redis的Master将数据复制到Slave的时候,不会阻塞Master,Master还是可以继续处理客户端的数据请求。

Redis事务

简单的事务机制,保证单个客户端发起的事务的原子性。

发布/订阅

和Kafka类似但是,没有消费者分组机制。

八、Redis、Kafka和RabittMQ的对比

Redis基于内存来存储数据,所以速度很快,但是吞吐量小,要是作为消息队列还得自己实现消息队列的具体细节。

Kafka对消息进行分区存储、分组消费,具备高吞吐、高容量的特点,能很好的做到负载均衡,且可以给数据设置过期时间。

RabittMQ是典型的消息队列形式,数据在队列中排队,然后发送给客户端,具有良好的路由和负载均衡。

九、Kubernetes

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容