大数据是什么?
提笔先点:Hadoop跟大数据什么关系?
是 Hadoop = 大数据?
还是大数据 = Hadoop?
那么,什么大数据?
- 是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合
- 是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产
大数据特点
大数据的特点可以用 IBM 曾经提出的 “5V” 来描述
- 量大。采集、存储和计算的数据量都非常大
- 高速。数据的创建、存储、分析都要求被高速处理
- 多样。数据形式和来源多样化
- 真实。确保数据的真实性,才能保证数据分析的正确性
- 低价值。数据价值密度相对较低,结合实际业务逻辑进行数据挖掘价值
应用场景
- 仓储物流
- 电商零售
- 汽车
- 电信
- 生物医学
- 人人工智能
- 智慧城市
Hadoop 定义
Hadoop 是一个适合大数据的分布式存储和计算平台。允许分布在集群,主要解决海量数据的存储和海量数据的分析计算问题。
- 狭义上,Hadoop就是一个框架平台
- 广义上,Hadoop代表大数据的一个技术态圈
Hadoop 生态:
- Hadoop(HDFS + MapReduce + Yarn)
- Hive 数据仓库工具
- HBase 海量列式非关系型数据库
- Flume 数据采集工具
- Sqoop ETL工具
- Kafka 高吞吐消息中间件
Hadoop 的优势
- Hadoop 是专为从单一服务器到上千台机器扩展,每个机器都可以提供本地计算和存储。
- Hadoop 可以用单节点模式安装,但是只有多节点集群才能发挥 Hadoop 的优势,我们可以把集群扩展到上千个节点,而且扩展过程中不需要先停掉集群
Hadoop 的特点
Hadoop 优缺点
Hadoop 优点
- 具有存储和处理数据能力的高可靠性。
- 通过可用的计算机集群分配数据,完成存储和计算任务,这些集群可以方便地扩展到数以千计的节点中,具有高扩展性。
- 能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快,具有高效性。
- 能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配,具有高容错性。
Hadoop 缺点
- 不适用于低延迟数据访问;
- 不能高效存储大量小文件;
- 不支持多用户写入和任意修改文件
Hadoop 版本
- Apache Hadoop 原始版本
- 收费版本 ClouderaManager CDH 版本。生产环境使用
- 免费开源版本 HortonWorks HDP 版本。生产环境使用
Hadoop 组成
Hadoop = HDFS(分布式文件系统) + MapReduce(分布式计算框架) + Yarn(资源协调框架) + Common(辅助工具)
Hadoop 的核心组成是 HDFS
HDFS 集群采取分散存储 + 冗余存储的策略,HDFS集群会将用户上传的文件,存储多份。默认是 3 份(本地一份,同机架某节点一份,不同机架某节点一份)
HDFS是分布式文件系统中的一种
HDFS
高可靠、高吞吐量的分布式文件系统
- 比如:100T数据存储, “分而治之”分:拆分–》数据切割,100T数据拆分为每10G一个数据块,分别由一个电脑节点存储这些数据块
数据切割,制作副本,分散存储
hdfs是hadoop的存储系统,包括:元数据节点namenode,备份节点secondarynamenode,数据节点datanode,客户端client
HDFS 的重要角色:
- NameNode 元数据节点,hdfs集群的管理者 master,简NN
- 维护和管理文件系统的元数据(元数据:命名空间目录树结构,文件和块的位置信息,访问权限等)
- 维护副本策略
- 记录文件块(block)的映射信息
- 负责处理客户端读写请求
- 监控集群中 DataNode的健康状态
- SecondaryNameNode 备份节点,简2NN
- 并不是 NameNode的热备,当NameNode挂掉后,不会立马替换NameNode并提供服务
- 定期合并元数据镜像文件(fsimage)和改动日志(editlog),并推送给NameNode
- 帮助NameNode生成 fsimage文件,减轻NameNode压力
- 在紧急情况下,可辅助恢复NameNode
- DataNode 数据节点 slave 简DN
- 存储实际的数据块
- 执行数据块的读/写请求
- client HDFS 客户端
- 切分文件,上传文件到hdfs的时候,client负责将文件切分成一个一个Block,然后进行上传
- 与NameNode交互,获取文件的位置信息
- 与DataNode交互,读取或写入数据
- 提供一些命令管理hdfs,比如启动/关闭hdfs等
fsimage文件:是 NameNode中关于元数据的镜像,一般称为检查点,包含了hdfs文件系统所有目录以及文件相关信息(block数量,副本数量,权限等信息)
edits文件:存储了客户端对hdfs文件系统所有的更新操作记录
说明:
- 目录结构及文件分块位置信息叫做元数据;
- NameNode的元数据记录每一个文件所对应的block信息;
- DataNode管理各个block的具体存储;一个block会有多个DN来存储;DN定时向NN汇报自己持有的block信息
- 所有block都会有副本;且可配置;默认是3
- 一次写入,适合做大数据分析的底层存储服务
MapReduce
分布式的离线并行计算框架
MapReduce将计算过程分为两个阶段:Map 和 Reduce
- Map阶段,并行处理输入数据
- Reduce阶段,对Map结果进行汇总
Yarn
作业调度与集群资源管理的框架
- ResourceManager(rm):整个集群资源的统一管理者;处理客户端请求;启动/监控ApplicationMaster;监控NodeManager;资源分配与调度
- NodeManager(nm):单个节点服务器的资源管理者;处理来自ResourceManager和ApplicationMaster的命令;
- ApplicationMaster(am):单个任务运行的管理者。数据切分,为应用程序申请资源,并分配给内部任务、任务监控与容错
- Container:相当于一台独立服务器,里面有任务运行所需要的资源,比如CPU、磁盘、网络等
ResourceManager 是老大,NodeManager 是小弟,ApplicationMaster 是计算任务专员
Common
支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)