大数据是什么?

提笔先点:Hadoop跟大数据什么关系?

是 Hadoop = 大数据?
还是大数据 = Hadoop?

那么,什么大数据?

  • 是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合
  • 是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产

大数据特点
大数据的特点可以用 IBM 曾经提出的 “5V” 来描述

hadoop与大数据解决方案 hadoop与大数据的关系_hadoop与大数据解决方案

  • 量大。采集、存储和计算的数据量都非常大
  • 高速。数据的创建、存储、分析都要求被高速处理
  • 多样。数据形式和来源多样化
  • 真实。确保数据的真实性,才能保证数据分析的正确性
  • 低价值。数据价值密度相对较低,结合实际业务逻辑进行数据挖掘价值

应用场景

  • 仓储物流
  • 电商零售
  • 汽车
  • 电信
  • 生物医学
  • 人人工智能
  • 智慧城市

Hadoop 定义

Hadoop 是一个适合大数据的分布式存储计算平台。允许分布在集群,主要解决海量数据的存储和海量数据的分析计算问题。

  • 狭义上,Hadoop就是一个框架平台
  • 广义上,Hadoop代表大数据的一个技术态圈

Hadoop 生态:

  • Hadoop(HDFS + MapReduce + Yarn)
  • Hive 数据仓库工具
  • HBase 海量列式非关系型数据库
  • Flume 数据采集工具
  • Sqoop ETL工具
  • Kafka 高吞吐消息中间件

Hadoop 的优势

  • Hadoop 是专为从单一服务器到上千台机器扩展,每个机器都可以提供本地计算和存储。
  • Hadoop 可以用单节点模式安装,但是只有多节点集群才能发挥 Hadoop 的优势,我们可以把集群扩展到上千个节点,而且扩展过程中不需要先停掉集群

Hadoop 的特点

hadoop与大数据解决方案 hadoop与大数据的关系_分布式_02

Hadoop 优缺点

Hadoop 优点

  • 具有存储和处理数据能力的高可靠性
  • 通过可用的计算机集群分配数据,完成存储和计算任务,这些集群可以方便地扩展到数以千计的节点中,具有高扩展性
  • 能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快,具有高效性
  • 能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配,具有高容错性

Hadoop 缺点

  1. 不适用于低延迟数据访问;
  2. 不能高效存储大量小文件;
  3. 不支持多用户写入和任意修改文件
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

hadoop与大数据解决方案 hadoop与大数据的关系_大数据_03

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结果进行汇总

hadoop与大数据解决方案 hadoop与大数据的关系_mapreduce_04

Yarn

作业调度与集群资源管理的框架

  • ResourceManager(rm):整个集群资源的统一管理者;处理客户端请求;启动/监控ApplicationMaster;监控NodeManager;资源分配与调度
  • NodeManager(nm):单个节点服务器的资源管理者;处理来自ResourceManager和ApplicationMaster的命令;
  • ApplicationMaster(am):单个任务运行的管理者。数据切分,为应用程序申请资源,并分配给内部任务、任务监控与容错
  • Container:相当于一台独立服务器,里面有任务运行所需要的资源,比如CPU、磁盘、网络等

ResourceManager 是老大,NodeManager 是小弟,ApplicationMaster 是计算任务专员

Common

支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)