大数据|学习笔记Hadoop(一)—— Hadoop介绍
文章目录
- 一、认识大数据
-
- 1.1、认识大数据
- 1.2、大数据特征
- 1.3、大数据流程图
- 1.4、什么是大数据平台?
- 二、Hadoop 核心组件
-
- 2.1、Apache Hadoop简介
- 2.2、主要模块
- 2.3、Hadoop 分布式文件系统-HDFS
- 2.4、Hadoop任务调度和资源管理框架-YARN
- 2.5、Hadoop分布式编程模型-MapReduce
- 三、Hadoop生态环境
-
- 3.1、Apache HBase
- 3.2、Apache Hive
- 3.3、Apache Sqoop
- 3.4、Apache Oozie
- 3.5、其他
一、认识大数据 1.1、认识大数据 大数据(Big data)或称巨量数据、海量数据、大资料,指的是所涉及的数据量规模巨大到无法通过人工或者计算机,在合理的时间内达到截取、管理、处理、并整理成为人类所能解读的形式的信息。
1.2、大数据特征
- Volumn:容量,数据的大小
- Variety:种类,数据类型的种类
- Velocity:速度,获取数据的速度
文章图片
1.3、大数据流程图
文章图片
1.4、什么是大数据平台? 大数据平台是指以处理海量数据存储、计算及不间断流数据实时计算等场景为主的一套基础设施。典型的包括Hadoop系列、Spark、Storm、Flink以及Flume/Kafka等集群。
既可以采用开源平台,也可以采用华为、星环等商业级解决方案,既可以部署在私有云上,也可以部署在公有云上。
大数据平台的功能:
1、容纳海量数据
2、速度快
3、兼容传统工具
4、利用Hadoop
5、为数据科学家提供支持
6、提供数据分析功能
二、Hadoop 核心组件 2.1、Apache Hadoop简介 Apache Hadoop是一套用于在由通用硬件构建的大型集群上运行应用程序的框架。它实现了Map/Reduce编程范型,计算任务会被分割成小块(多次)运行在不同的节点上。除此之外,它还提供了一款分布式文件系统(HDFS),数据被存储在计算节点上以提供极高的跨数据中心聚合带宽。
优点:
高可靠性、高扩展性、高效性、高容错性、低成本
2.2、主要模块
- Hadoop Common:基础工具库用以支持其他模块
- HDFS:高可用的分布式文件存储系统
- Hadoop YARN:任务调度和集群资源管理框架
- MapReduce:分布式编程模型
- Hadoop Ozone:Hadoop类存储模型
文章图片
客户端(client)代表用户与namenode和datanode交互来访问整个文件系统
【大数据|学习笔记Hadoop(一)—— Hadoop介绍】Namenode: 元数据操作,打开、关闭、重命名文件及文件夹、文件块到DataNode映射
DataNode: 文件块生成、删除、复制及执行NameNode的指令
文章图片
HDFS通过多个文件块来实现大文件存储,所有的文件块都是同样大小(除了最后一个文件块);
NameNode决定文件块的复制,NameNode定时会收到DataNode的心跳包及块报告。
2.4、Hadoop任务调度和资源管理框架-YARN YARN 是 Hadoop 中的资源管理系统,它是一个通用的资源管理模块,可为各类应用程序进行资源管理和调度。
文章图片
ResourceManager :处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度
NodeManager:单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令
ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错
文章图片
- ResourceManager由Scheduler和ApplicationMaster组成;
- Scheduler: 对各个任务及队列分配资源,没有监控及对任务状态的追踪,同时也不保证对失败的任务进行重试
- ApplicationManager: 接受提交的任务,协调第一个用于启动ApplicationMaster的container,同时针对ApplicationMaster的失败提供重试
- ApplicationMaster:从Scheduler请求合适的资源containers,追踪状态及监控进度
当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归纳)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
三、Hadoop生态环境 3.1、Apache HBase
- HBase是一个分布式的、面向列的开源数据库,该技术来源于Chang et al所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统"
- 高可靠性、高性能、面向列、可伸缩
- HDFS为HBase提供高可靠底层存储支持
- MapReduce为HBase提供高性能计算能力
- Zookeeper为HBase提供稳定服务和failover机制
存储大量的数据(>TB)3.2、Apache Hive
需要很高的写吞吐量
大规模数据集很好性能的随机访问(按列)
需要进行优雅的数据扩展
结构化和半结构化的数据
不需要全部的关系数据库特性,例如交叉列、交叉表,事务,连接等等
- Hive是基于Hadoop的一个数据仓库工具
- 可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行
- 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析
- Hive定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据
- Hive 并不能够在大规模数据集上实现低延迟快速的查询,Hive 并不适合那些需要低延迟的应用,Hive 并不提供实时的查询和基于行级的数据更新操作
- Hive 不支持对数据的改写和添加,所有的数据都是在加载的时候确定的
- Hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析
文章图片
3.3、Apache Sqoop
- Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的
数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型
数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到
Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中 - 可以通过hadoop的mapreduce把数据从关系型数据库中导入数据到HDFS
- 类似于其他ETL工具,使用元数据模型来判断数据类型并在数据从数据源转移到Hadoop时确保类型安全的数据处理
- Sqoop专为大数据批量传输设计,能够分割数据集并创建Hadoop任务来处理每个区块
文章图片
3.4、Apache Oozie
- Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。
- 它是一个开源工作流引擎,用于管理和协调运行在Hadoop平台上(包括:HDFS、Pig和MapReduce)的Jobs。
- 它围绕着两个核心进行:工作流(Workflow)和协调器(Coordinator),前者定义任务拓扑和执行逻辑,后者负责工作流的依赖和触发。
- Workflow,即工作流,是一个有向无环图 (DAG,Directed Acyclic Graph),描述了需要执行的 Actions 序列。
文章图片
3.5、其他
- Flume:一种分布式的、可靠的、可用的服务,其用于高效地搜集、汇总、移动大量日志数据。
- ZooKeeper:一种集中服务,其用于维护配置信息,命名,提供分布式同步,以及提供分组服务。
- Mahout:一种基于Hadoop的机器学习和数据挖掘的分布式计算框架算法集,实现了多种MapReduce模式的数据挖掘算法。
- Spark:一个开源的数据分析集群计算框架,最初由加州大学伯克利分校AMPLab开发,建立于HDFS之上。Spark与Hadoop一样,用于构建大规模、低延时的数据分析应用。Spark采用Scala语言实现,使用Scala作为应用框架。
- Storm: 一个分布式的、容错的实时计算系统,由BackType开发,后被Twitter捕获。Storm属于流处理平台,多用于实时计算并更新数据库。Storm也可被用于“连续计算”(continuous computation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。它还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。
推荐阅读
- 我要做大厨
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 知识
- 三十年后的广场舞大爷
- 奔向你的城市
- 由浅入深理解AOP
- 村里的故事|村里的故事 --赵大头
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 华为旁!大社区、地铁新盘,佳兆业城市广场五期!