
1.数据来源层
- 数据库数据:Oracle、MySQL、SqlServer等等。
- 文件日志数据:Tomcat 日志、mysql的binlog日志
- 视频、PPT等
2.数据传输层
- Sqoop:Sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySql)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
- Flume:Flume支持在日志系统中定制各类数据发送方,用于收集数据,处理日志非常专业。
- Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统。
3.数据存储层
- HDFS:分布式文件存储系统 (Hadoop Distributed File System) ,Hadoop最擅长存储数据的地方。
- Kafka:Kafka内部也能缓存一些数据,默认就是1G的数据,通常不拿它来存储数据。
- HBase:HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
4.资源管理层
YARN资源调度:将数据存储下来,就需要对数据进行分析,分析就需要资源、CPU、内存、磁盘,
这些都由Yarn来调度。
5.数据计算层
数据计算,又分为:实时计算、离线计算 两部分。
实时计算
- Spark :Spark 是当前最流行的开源大数据内存计算框架。可以基于 Hadoop 上存储的大数据进行计算。Spark Streaming 并不是完全实时的,它底层采用的是批处理技术(就是一批一批的处理,相当于是微批处理),所以说 Spark Streaming 是准实时计算
- Storm:Storm 是实时计算。Storm用于“连续计算”,对数据流做连续查询,在计算时就将结果以流的形式输出给用户。但是它已经在走下坡路了。新起的 Flink 项目更优秀。
- Flink:Flink 是时下很流行的实时计算框架。全面对标 Spark。Flink 支持实时计算,由于 Flink 引擎比较强大,它也同样支持离线计算。
离线计算
离线计算:主要来统计日活、月活、年统计、本月消费情况等,并不是实时的数据。
- MapReduce 离线计算(MR属于Hadoop的核心计算框架)
- Spark Core 基于内存离线计算(断电数据丢失,也很危险的)
6.任务调度层
Oozie :Oozie属于偏重量级的,功能是这三个调度中最复杂的。
Azkaban :Azkaban,使用起来比较简单
crontab :crontab 是 Linux自带的一个调度工具。
7.数据平台配置
Zookeeper:Zookeeper是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、 分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
8.业务模型层
主要来解决企业问题,使用到的都是 JavaEE 相关技术,包括业务指标,数据可视化、BI报表等等。