大数据(Big Data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
大数据并不等同于海量数据,基本特征如下:
- Volume(数据体量大):存储量大、增量大
- Velocity(处理速度快):高速数据、高速处理
- Variety(数据类型多):来源多、类型多
- Value(价值密度低)
- Veracity(数据准确性)
当今,互联网、云计算、移动与物联网发展迅猛,移动设备、RFID、无线传感器每分每秒都在产生数据,数以亿计用户的互联网服务时时刻刻在产生巨量的交互。而传统方案集中式存储与计算,同时需要考虑设备性能、成本等问题,难以满足要求;因此架构基于大规模分布式计算(MPP)的 GFS/HDFS 分布式文件系统、各种 NoSQL分布式 等新方案应运而生。另外,在大数据处理上, Hadoop 对于大部分的企业来说,基于 Hadoop 已经能够满足绝大部分的数据需求,因此才会成为现在的主流选择。
Hadoop生态圈
Hadoop生态圈:由 Apache基金会 所开发的分布式系统基础框架,用于分布式大数据处理的开源框架,允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。
Hadoop生态圈:
Hadoop生态圈组件说明:
Hadoop典型应用架构:
Hadoop模式
- 单机模式:Hadoop默认模式,在单机上按默认配置以非分布式模式运行的一个独立Java进程,没有分布式文件系统HDFS,直接在本地操作的文件系统读写,一般仅用于本地MapReduce程序的调试。
- 伪分布式模式:单机上模拟一个分布式的环境,具备Hadoop的主要功能,常用于调试程序。
- 完全分布式模式:也叫集群模式,Hadoop的守护进程运行在由多台主机搭建的集群上,是真正的分布式环境,是用于实际的生产环境。
HDFS
概述
HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),是 Hadoop 项目的核心子项目,是分布式计算中数据存储管理的基础。支持海量数据的存储,成百上千的计算机组成存储集群,HDFS 可以运行在低成本的硬件之上,具有的高容错、高可靠性、高可扩展性、高吞吐率等特征,非常适合大规模数据集上的应用。
优点
- 高容错性,以数据复制多份并存储在集群的不同节点来实现数据容错。
- 高扩展性,Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
- 高吞吐率,延时较低,可存储非常大的文件。
- 低成本,可构建在廉价机器上。
- 采用流式的数据访问方式,即一次写入,多次读取,保证数据一致性。
- 适合批处理
- 适合大数据处理
缺点
- 不适合低延迟数据访问:Hadoop优化了高数据吞吐量,牺牲了获取数据的延迟,从而Hadoop不适合低延迟数据访问,而HBase更适合低延迟访问需求。
- 不适合大量的小文件存储:NameNode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于NameNode的内存容量。
- 不适合并发写入、文件随机修改
基本组成
HDFS主要由主节点(NameNode)、辅助名称节点(Secondary NameNode)、数据节点(DataNode)组成。
NameNode
NameNode的职责主要是:管理维护 HDFS(即管理DataNode上文件Block的均衡,维持副本数量);接收客户端的请求:上传、下载、创建目录等;维护 edits 与 fsimage 两个重要的文件。
其中:
edits 文件:记录操作日志,元数据的每一次变更操作都会被记录到edits中。
fsimage 文件:HDFS的元信息,NameNode节点的元数据运行在内存中,为防止宕机数据丢失,每隔一段时间会将元数据持久化到磁盘中。
Secondary NameNode
Secondary NameNode主要职责是: 定期地创建命名空间的检查点(CheckPoint)操作——把edits中最新的状态信息合并到 fsimage 文件中,防止 edits 过大;也可以做冷备(即两个服务器,一个运行,一个不运行做备份),对一定范围内数据块做快照性备份。
DataNode
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
正体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新