目标
- 认识大数据
- 从Hadoop框架来看大数据生态
1 大数据认知
略过概念性的大数据特点、前(钱)景、优势等,直接看点工作实际相关的
1.1 部门业务流程
1.2 部门组织架构
2 Hadoop-->大数据生态
2.1 Hadoop是什么
Hadoop可以说是大数据生态的基石,理解了MapReduce分而治之的思想,对于Hive、Spark、Flink等一系列大数据处理工具的使用会更熟练。就目前来说,广义上的Hadoop通常指一个更广泛的概念--Hadoop生态圈。
- Hadoop主要解决:海量数据的存储和海量数据的分析计算问题。
2.2 Hadoop的发展
-
发展历程
- 2006年--Hadoop1.0
- 2012年--Hadoop2.0
- 2018年--Hadoop3.0
-
Hadoop1.x和Hadoop2.x的区别
2.3 Hadoop优势
-
高可靠性
Hadoop底层维护了多个数据副本,即使Hadoop某个计算元素或存储出现故障,也不会导致数据丢失
-
高扩展性
在集群间分配任务数据,可方便的扩展数以千计的节点
-
高效性
在MapReduce的思想下,Hadoop是并行工作的,加快任务处理速度
-
高容错性
能够自动将失败的任务重新分配
2.4 Hadoop组成
注:暂时初步介绍,后续单独阐述
- HDFS
- NameNode:存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等
- DataNode:在本地文件系统存储文件块数据,以及块数据的校验和
- Secondary NameNode:用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照
- MapReduce
- Map阶段:并行处理输入数据
- Reduce阶段:对Map结果进行汇总
- Yarn
- ResourceManager(RM)
- 处理客户端请求
- 监控NM
- 启动或监控AM
- 资源的分配和调度
- NodeManager(NM)
- 管理单个节点上的资源
- 处理来自RM的命令
- 处理来自AM的命令
- ApplicationMaster(AM)
- 负责数据的切分
- 为应用程序申请资源并分配内部的任务
- 任务的监控与容错
- Container
- Yarn中的资源抽象,封装了节点上的维度资源:内存、CPU、磁盘、网络等
- ResourceManager(RM)
3 大数据技术生态体系
3.1 生态体系示意图
3.2 相关技术解释
- Sqoop:主要用在Hadoop、Hive与传统数据库(MySQL)间进行数据的传递,可以将一个关系型数据库的数据导入到Hadoop的HDFS中,也可以将HDFS中的数据导入到关系型数据库中。
- Flume:是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据,同时Flume提供对数据进行简单处理,并写到各种数据接收方(可定制)的能力。
- Kakfa:是一种高吞吐量的分布式发布订阅消息系统,特点如下:
- 通过O(1)的磁盘数据结构保证了消息的持久化,这种结构对于数以TB级的消息存储也能够保持长时间的稳定性能。
- 高吞吐量:即使是非常普通的硬件,Kafka也可以支持每秒数以百万的消息。
- 支持通过Kafka服务器和消费机集群来区分消息。
- 支持Hadoop并行数据加载。
- Flink:是目前使用最多的流处理框架,用于对无界和有界数据流进行有状态计算。
- Spark:是目前使用最多的大数据内存计算框架,可以基于Hadoop上存储的数据进行计算。
- Hbase:是一个分布式的、面向列的数据库,适合于非结构化数据存储。
- Hive:基于Hadoop的一个数仓工具,可以将结构化的数据映射为一张数据库表,提供简单的SQL查询。可以将SQL转换为MapReduce任务来运行,十分适合数仓的统计分析。
- ZooKeeper:是一个针对大型分布式系统的可靠协调系统,功能有:配置维护、名字服务、分布式同步、组服务等。目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
OK,关于大数据生态体系的相关知识,先有个初步的了解,后续阶段,我会从理论到实践,进行一个全面的总结。
好了,今天就到这里,拜了个拜~