从零开始的Hadoop(一):起于Hadoop的大数据
回顾一下过去自己学习的知识点,同时也希望能对你的学习之路有所借鉴。
1. Hadoop 概述
1.1 关于大数据
大数据主要解决的是海量数据的存储与计算问题,具有如下特征:
容量大(Volume):数据量大
种类多(Variety):数据类型多样,结构化、半结构化、非结构化
速度快(Velocity):数据产生速度快
价值密度低(Value):单条数据价值低,综合价值大
在当前社会,大数据广泛应用于如下场景:
物流行业:物流跟踪
零售行业:用户画像、推荐系统
旅游行业
新基建
...
在工作中,大数据的业务流程如下图所示:
1.2 Hadoop简介
Hadoop 是一个分布式系统基础架构
主要解决海量数据的存储和分析计算问题
广义上的 Hadoop 则指 Hadoop 生态圈
1.3 三大发行版本
Apache 版本,最基础最原始的版本
CDH
CDP
1.4 优点
高可靠性:底层维护多个数据副本,即使某个计算元素或存储出现故障,不会对整体造成影响
高扩展性:在集群间分配任务数据,可以方便扩展数千个节点(横向扩展)
高效性:在 MR 的思想下,Hadoop 是并行工作的,可以加快任务处理效率
高容错性:能够自动的将失败的任务重新分配
1.5 组成
Hadoop 1.x
HDFS:存储数据
MR:计算+资源调度
Hadoop 2.x
HDFS:存储数据
MR:计算
YARN:资源调度
Hadoop 3.x:在组成上与2.x没有大的变化
1.5.1 HDFS
Hadoop Distributed File System,分布式文件系统
NameNode:nn
存储文件的元数据,(文件名、文件目录结构、文件属性(生成时间、副本数、文件权限)、每个文件的块列表、块所在的 DataNode)
DataNode:dn
在本地文件系统存储文件块数据,以及块数据的校验和
Secondary NameNode:2nn
每隔一段时间对 NameNode 元数据备份
1.5.2 YARN
Yet Another Resource Negotiator,Hadoop 资源管理器
ResourceManager:RM
整个集群资源(内存、CPU等)的老大
NodeManager:NM
单个节点资源的老大
ApplicationMaster:AM
单个任务运行的老大
Container:容器,等价于一台独立的服务器
封装了任务运行所需的资源,内存、硬盘、CPU、网络
1.5.3 MR
MR,分布式计算编程框架,将计算过程分为两个阶段:Map 和 Reduce
Map 阶段并行处理输入数据
Reduce 阶段对 Map 结果进行汇总
1.5.4 Common
基础功能组件
1.6 大数据技术生态
Sqoop:主要用于在 Hadoop、Hive与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库中的数据导入到 HDFS 中,也可以将 HDFS 的数据导入到关系型数据库中;
Flume:一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,支持在日志系统中定制数据发送方,用于收集日志数据;
Kafka:一个开源的分布式事件流平台,用于高性能数据管道、流分析、数据集成和关键任务应用;
Spark:开源大数据内存计算框架,可以对 HDFS 存储的海量数据进行计算;
Flink:开源大数据内存计算框架,多用于实时计算的场景;
Oozie:管理 Hadoop 作业(job)的工作流程调度管理系统;
Hbase:一个分布式的、面向列的开源数据库,适合于非结构化数据存储;
Hive:基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运行;
ZooKeeper:针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
2. 大数据开源环境搭建
关于开源环境的搭建给大家整理了一个文档《大数据开源环境搭建》,希望能帮到大家。