什么是大数据?必看》》形象描述大数据技术生态圈
一、大数据在线分析处理和常用工具
1、大数据在线分析和处理特点:
* 数据源源不断到来;
* 数据需要尽快处理,不能积压;
* 处理后的数据依然是TB或PB级的数据量;
* 处理结果尽快展现;
总结为:数据的收集-——数据传输——数据处理——数据展现(可视化),其中,数据处理一般涉及数据的聚合,数据处理和数据展现能够在秒级得到响应。
2、工具:
(1) flume 主要用于数据的收集和传输。类似的大数据开源系统有 Logstash和Fluentd。
三者区别:
* Logstash主要和Elasticsearch、Kibana结合使用,即ELK框架;Logstash主要负责将数据源的数据转换成Elasticsearch认识的索引结构供Kibana查询。
* Fluentd逐渐被Flume代替。
* Flume能够支持多种数据源,并且输出到多种输出源,支持多种格式的数据。
Flume的架构主要有一下几个核心概念:
Event:一个数据单元,带有一个可选的消息头
Flow:Event从源点到达目的点的迁移的抽象
Client:操作位于源点处的Event,将其发送到Flume Agent
Agent:一个独立的Flume进程,包含组件Source、Channel、Sink
Source:用来消费传递到该组件的Event。连接的输入源可以有Avro、Thrift、Exec(Unix command output)、JMS(Java Message Service)、Kafka、NetCat(可以使用nc -lk port 测试)、Syslog.....
Channel:中转Event的一个临时存储,flume内部数据传输通道,保存有Source组件传递过来的Event。主要包括Memory Channel和File Channel。
Sink:从Channel中读取并移除Event,将Event传递到Flow Pipeline中的下一个Agent(如果有的话)。连接的输出源可以有Hdfs、Hive、Avro、Thrift、File Roll 、Hbase、Kafka......
Flume NG架构:
多个Agent连接形成Agent链:
多个Agent进行数据源的合并:
多路Agent:
实现load balance功能:
(2)kafka 主要用于前端日志的存储,用作缓冲
(3)Storm /Spark 专注于将数据按照时间窗口进行聚合处理,被称为流式处理框架。
* Storm提供比Spark更加实时的流式处理;
* Spark提供比Storm更多的服务,Spark 已经形成类似Hadoop的生态圈。
Spark 生态圈如下所示:
目前,Spark 有三种集群管理模式:
* Standalone :一种简单的集群管理,其包括一个很容易搭建集群的Spark;
* Apache Mesos:一种通用的集群管理模式,可以运行Hadoop Mapreduce和服务应用的模式;
* Hadoop YARN : Hadoop 2.0中的资源管理模式;
(4)Hbase /Redis 提供大数据存储和提供查询。类似的大数据开源系统有Cassandra.
* Cassandra 满足可用性和分区容忍性,允许数据的不一致(不同的客户端可能看到不一样的情况),提供了类似SQL的CQL查询语言,查询方便;
* Hbase 满足一致性和分区容忍性,拥有强大的记录一致性,但是不支持SQL,需要使用第三方服务来支持SQL(如 Apache Phoenix);
未完待续。。。。
二、大数据离线处理和常用工具
未完待续。。。。