Hadoop入门介绍
一、Hadoop
我们生活在一个数据大爆炸的时代,数据飞快的增长,急需解决海量数据的存储和计算问题。Hadoop是一个适合海量数据的分布式存储和分布式计算平台。Hadoop是Apache Lucene创始人道格卡丁(Doug Cutting)创建的,Lucene是一个应用广泛的文本搜索系统库。Hadoop起源于开源网络搜索引擎Apache Nutch,后者本身也是Lucene项目的一部分。Hadoop这个词是生造出来的。这个名字是Doug Cutting的孩子给他的毛绒象玩具取的。Hadoop生态系统中的很多项目都是以动物的主题命名的。Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中。Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduceHadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力
1.1 Hadoop生态圈介绍
1.2 Hadoop1 vs Hadoop
二、Hadoop三大组件介绍
Hadoop是一个统称,目前Hadoop主要包含三大组件:
(1) HDFS:是一个分布式存储框架,适合海量数据存储
(2) MapReduce:是一个分布式计算框架,适合海量数据计算
(3) YARN:是一个资源调度平台,负责给计算框架分配计算资源
2.1 HDFS架构分析
负责数据的分布式存储。
(1) 主从结构:主节点,最多可以有2个:namenode;从节点,有多个:datanode。
(2) NameNode负责:接收用户操作请求,是用户操作的入口;维护文件系统的目录结构,称作命名空间。
(3) DataNode负责:存储数据
2.2 YARM架构分析
资源的调度和管理平台
(1) 主从结构
主节点,最多可以有2个:ResourceManager
从节点,有很多个: NodeManager
(2) ResourceManager负责
集群资源的分配与调度
MapReduce、Storm、Spark、Flink等应用,必须实现ApplicationMaster接口,才能被RM管理
(3) NodeManager负责:单节点资源的管理
2.3 MapReduce解析
mapreduce是一个编程模型,它是分布式运行的,由两个阶段组成:Map和Reduce
Map阶段是一个独立的程序,有很多个节点同时运行,每个节点处理一部分数据。
Reduce阶段也是一个独立的程序,在这先把reduce理解为一个单独的聚合程序即可。
三、Hadoop特点
3.1 特点
(1) 扩容能力(Scalable):能可靠(reliably)地存储和处理PB级别的数据。如果数据量更大,存储不下了,再增加节点就可以了。
(2) 成本低(Economical):可以通过普通机器组成的服务器集群来分发以及处理数据.这些服务器集群可达数千个节点。
(3) 高效率(Efficient):通过分发计算程序,hadoop可以在数据所在节点上(本地)并行地(parallel)处理他们,这使得处理非常的迅速
(4) 可靠性(Reliable):hadoop能够自动地维护数据的多份副本,并且在任务失败后能够自动地重新部署(redeploy)计算任务.
3.2 大数据4V特性
规模性(Volume)大数据的特征首先就体现为“数量大”,存储单位从过去的GB到TB,直至PB、EB。随着信息技术的高速发展,数据开始爆发性增长。
多样性(Varity)广泛的数据来源,决定了大数据形式的多样性。大数据大体可分为三类:一是结构化数据(存储在关系型数据库中的数据)、二是非结构化的数据(视频、图片、音频)、三是半结构化数据(HTML文档、邮件、网页)。
高速性(Velocity)与以往的档案、广播、报纸等传统数据载体不同,大数据的交换和传播是通过互联网、云计算等方式实现的,远比传统媒介的信息交换和传播速度快捷。
价值性(Value)这也是大数据的核心特征。现实世界所产生的数据中,有价值的数据所占比例很小。相比于传统的小数据,大数据最大的价值在于通过从大量不相关的各种类型的数据中,挖掘出对未来趋势与模式预测分析有价值的数据,并通过机器学习方法、人工智能方法或数据挖掘方法深度分析,发现新规律和新知识,并运用于农业、金融、医疗等各个领域,从而最终达到改善社会治理、提高生产效率、推进科学研究的效果。
3.3 Hadoop数据管理
Hadoop的数据管理,主要包括hadoop的分布式文件系统HDFS、分布式数据库HBase和数据仓库工具Hive的数据管理
四、Hadoop常见业务流与应用架构
4.1 Hadoop项目架构
Hadoop的项目结构不断丰富发展,已经形成一个丰富的Hadoop生态系统
一个基本的Hadoop集群中的节点主要有:
(1)NameNode:负责协调集群中的数据存储
(2)DataNode:存储被拆分的数据块
(3)JobTracker:协调数据计算任务
(4)TaskTracker:负责执行由JobTracker指派的任务
(5)SecondaryNameNode:帮助NameNode收集文件系统运行的状态信息
常见组件和功能介绍:
组件 | 功能 |
HDFS | 分布式文件系统 |
MapReduce | 分布式并行编程模型 |
YARN | 资源管理和调度器 |
Tez | 运行在YARN之上的下一代Hadoop查询处理框架 |
Hive | Hadoop上的数据仓库 |
HBase | Hadoop上的非关系型的分布式数据库 |
Pig | 一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig Latin |
Sqoop | 用于在Hadoop与传统数据库之间进行数据传递 |
Oozie | Hadoop上的工作流管理系统 |
Zookeeper | 提供分布式协调一致性服务 |
Storm | 流计算框架 |
Flume | 一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统 |
Ambari | Hadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控 |
Kafka | 一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据 |
Spark | 类似于Hadoop MapReduce的通用并行框架 |
4.2 Hadoop业务处理流
单机单线程瓶颈:
(1) 没有充分的利用CPU资源
(2) 速度慢
(3) 受到IO瓶颈---单机瓶颈
作者:UStarGao
链接:https://www.starcto.com/Cloud-BigData-AI/117.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2022-01-14Docker镜像加速配置
- 2021-08-10开源对象存储服务MinIO容器化部署
- 2021-04-03Linux使用PaPing进行TCP端口连通性/网络平均延迟探测
- 2021-09-04Linux磁盘UUID冲突解决方案
- 2021-08-20PostgreSQL常用命令集合