目录简介
- Zookeeper
- Hadoop
- Flume
- Hive
- HBase
- Kafka
- Scala
- Spark
Zookeeper
简介
- zookeeper 是一个开源的,为分布式应用提供协调服务的Apache项目。是一个基于观察者模式设计的分布式服务广利框架负责存储和管理大家都关心的数据然后接受观察者的注册。
- zookeeper = 文件系统 + 通知机制
特点
- 一个领导者多个跟随着组成的集群。
- 集群中只要有半数以上的节点存活,zookeeper集群就能正常服务。
- 全局的数据保持一致,每个服务器保存一份相同的数据副本,客户端无论连接到那个服务器上,他的数据都是一样的。
- 更新请求顺序进行,来自同一个客户端的更新请求,按其发送顺序依次执行。
- 数据更新的原子性,要么成功、要么失败。
- 实时性,在一定时间范围内,客户端能读到最新数据。
Hadoop
简介
-
Hadoop是apache旗下的一套开源软件平台
-
Hadoop提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理
-
Hadoop的核心组件有:
HDFS(分布式文件系统)
YARN(运算资源调度系统)
MAPREDUCE(分布式运算编程框架) -
广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈
Flume
简介
flume是一个分布式、高可靠、高可用的服务,能够有效的收集、聚合、移动大量的日志数据。
1、它有一个简单、灵活的基于流的数据流结构。
2、具有故障转移机制和负载均衡机制。
3、使用了一个简单的可扩展的数据模型(source、channel、sink)。
4、声明式配置,可以动态更新配置 (配置修改后,不用重启服务即可生效)
flume-ng处理数据有两种方式:avro-client、agent。
avro-client:一次性将数据传输到指定的avro服务的客户端。
agent:一个持续传输数据的服务。
Agent主要组件包含:Source 、Channel、Sink
Hive
简介
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
Hive详解
HBase
简介
- Apache HBase是Hadoop数据库,一个分布式的、可伸缩的大数据存储。
- 当您需要对大数据进行随机的、实时的读/写访问时,请使用Apache HBase。这个项目的目标是在商品硬件的集群上托管非常大的表——数十亿行百万列的列。Apache HBase是一个开源的、分布式的、版本化的、非关系的数据库,它模仿了Google的Bigtable:一个结构化数据的分布式存储系统,就像Bigtable利用Google文件系统提供的分布式数据存储一样,Apache HBase在Hadoop和HDFS上提供了类似于bigtable的功能
HBase详解
Kafka
简介
- Apache Kafka 是一个开源消息系统,由scala写成。最初是由Linkedln公司开发,于2011年开源。
- Kafka是一个分布式消息队列 Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。
- 无论是kafka集群,还是producer和consumer都依赖于zookeeper集群保存一些meta信息,来保证系统可用性。
Kafka详解
Spark
简介
-
Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处,Spark以其先进的设计理念,迅速成为社区的热门项目,围绕着Spark推出了Spark SQL、Spark Streaming、MLLib和GraphX等组件,也就是BDAS(伯克利数据分析栈),这些组件逐渐形成大数据处理一站式解决平台。从各方面报道来看Spark抱负并非池鱼,而是希望替代Hadoop在大数据中的地位,成为大数据处理的主流标准,不过Spark还没有太多大项目的检验,离这个目标还有很大路要走。
-
Spark使用Scala语言进行实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集(Scala 提供一个称为 Actor 的并行模型,其中Actor通过它的收件箱来发送和接收非同步信息而不是共享数据,该方式被称为:Shared Nothing 模型)。在Spark官网上介绍,它具有运行速度快、易用性好、通用性强和随处运行等特点。