大数据

Hadoop: 分布式系统 大数据的基础
1、 HDFS模块

HDFS负责大数据的存储,通过将大文件分块后进行分布式存储方式,突破了服务器硬盘大小的限制,解决了单台机器无法存储大文件的问题,HDFS是个相对独立的模块,可以为YARN提供服务,也可以为HBase等其他模块提供服务。

2、 YARN模块

YARN是一个通用的资源协同和任务调度框架,是为了解决Hadoop1.x中MapReduce里NameNode负载太大和其他问题而创建的一个框架。

YARN是个通用框架,不止可以运行MapReduce,还可以运行Spark、Storm等其他计算框架。

3、 MapReduce模块

MapReduce是一个计算框架,它给出了一种数据处理的方式,即通过Map阶段、Reduce阶段来分布式地流式处理数据。它只适用于大数据的离线处理,对实时性要求很高的应用不适用。

FastDFS:轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成,主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。

Flume:实时获取数据。
Kafka:实时数据存储。一般被用来缓存数据。
Storm:实时数据计算。通过消费Kafka数据进行计算。
Redis:实时结果缓存。
Mysql:持久化存储。

Zookeeper:为分布式应用程序提供协调服务。1. 管理数据 2. 节点监听

Storm:实时计算框架。
Storm和Hadoop区别:
Storm用于实时计算。Hadoop用于离线计算。
Storm处理的数据保存在内存中,源源不断。
Hadoop处理的数据保存在文件系统中,一批一批。
Storm的数据通过网络传输进来;Hadoop的数据保存在磁盘中。
流程分析:
1、storm组件由spout和bolt组成,spout组件(取源数据流的组件)首先从外部获取数据;
2、接着spout会将数据处理后以tuple为单位发射给后续bolt组件(该组件接收数据后进行逻辑处理),至于如何分发有多种规则可选,比如随机发或者按照指定字段发(类似于hadoop中默认的哈希值比上mapreduce,这种情况可以保证相同的字段必发射到某个bolt)。
3、处理逻辑1的bolt组件处理完数据后,会接着往后续处理逻辑2的bolt组件发射数据。
4、经过几个bolt组件处理后,达到要求,将数据保存起来,比如发到redis中。

Flume:分布式、可靠、高可用的海量日志采集、聚合和传输的系统。采集系统。
Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部存储系统中。
Flume的运行机制
1、Flume分布式系统中最核心的角色是agent,flume采集系统就是由一个个agent所连接起来形成
2、每一个agent相当于一个数据传递员Source 到 Channel 到 Sink之间传递数据的形式是Event事件;Event事件是一个数据流单元。

内部有三个组件:
a)Source:采集源,用于跟数据源对接,以获取数据
b)Sink:下沉地,采集数据的传送目的,用于往下一级agent传递数据或者往最终存储系统传递数据
c)Channel:angent内部的数据传输通道,用于从source将数据传递到sink
单个agent采集数据

大数据_第1张图片
image.png

Kafka:分布式消息队列:生产者,消费者功能。
Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)称为broker。

 1.producer:
  消息生产者,发布消息到 kafka 集群的终端或服务。
2.broker:
  kafka 集群中包含的服务器。
3.topic:
  每条发布到 kafka 集群的消息属于的类别,即 kafka 是面向 topic 的。
4.partition:
  partition 是物理上的概念,每个 topic 包含一个或多个 partition。kafka 分配的单位是 partition。
5.consumer:
  从 kafka 集群中消费消息的终端或服务。
6.Consumer group:
  high-level consumer API 中,每个 consumer 都属于一个 consumer group,每条消息只能被 consumer group 中的一个 Consumer 消费,但可以被多个 consumer group 消费。
7.replica:
  partition 的副本,保障 partition 的高可用。
8.leader:
  replica 中的一个角色, producer 和 consumer 只跟 leader 交互。
9.follower:
  replica 中的一个角色,从 leader 中复制数据。
10.controller:
  kafka 集群中的其中一个服务器,用来进行 leader election 以及 各种 failover。
12.zookeeper:
  kafka 通过 zookeeper 来存储集群的 meta 信息。

你可能感兴趣的:(大数据)