定义:
Apache所开发的并行计算框架和分布式文件系统.
Hadoop最初用作Nutch底层的海量数据存储和处理,后来人们发现他也非常适合大数据场景下的数据存储和处理,主要用作海量离线数据的存储和离线数据的计算。
优势:高可靠,高扩展,高效,高容错
Hadoop1.x与Hadoop2.x区别(耦合性)
核心模块
HadoopCommon:
工具类,之前叫Hadoopcore
包含:
configuration(系统配置工具)
RPC(远程调用)
序列化机制
FileSystem(抽象类文件系统)
作用:通过硬件搭建云计算环境提供基本服务,并为运行在该平台的软件开发提供所需要的api
HDFS:
分布式文件系统,为海量数据提供存储
基于节点搭建,可以存在一个父节点(Name Node),一个父节点中可以存在多个子节点(Data Node)
Name Node:
接受用户操作请求维护文件系统的目录结构,管理文件block(块)之间的关系,block与datanode之间的关系
Name node对HDFS的目录,文件和块的CRUD等基本操作
block存储管理在整个HDFS集群中有且只有唯一一个处于active(活跃)状态namenode节点,该节点负责对这个命名空间(HDFS)进行管理
Data Node:
储存文件,文件被分为block储存咋磁盘上为保证数据安全,文件会有多个副本 name node和client(客户端)的指令进行存储或者检索block,并且周期性的向name node节点报告它存了哪些文件的block
Yarn
ResourceManager:
处理客户端请求
监控NodeManager
启动或监控ApplicationMaster
资源分配与调度
NodeManager:
管理单个节点上的资源
处理来自ResourceManager的命令
处理来自ApplicationManager的命令
ApplicationMaster:
负责数据的切分
为应用程序申请资源并分配给内部的任务
任务的监控与容错
Container:
Yarmn中的资源抽象,它封装了某个节点上的对维度资源
主要为ApplicationMaster服务
如:内存,cpu,磁盘,网络等
MapReduce
基于Yarn的大型数据集并行处理系统,计算模型,进行大数据量的计算
Map(映射):并航处理输入数据
Reduce(归约):对Map结果进行汇总
hadoop生态圈的主要组件:
HDFS:一个提供高可用获取应用数据的可分布式系统,为海量数据提供储存
MapReduce:一个并行处理大量数据的编程模型
Hbase:一个可扩展的分布式数据库,支持大表的结构化数据储存,建立在HDFS之上的,面向列的NOsql(非关系型数据库)数据库,用于快速速写大量数据
Hive:建立在Hadoop上的数据仓库基础架构,可以用来提取数据转化加载(ETC),是一种储存,查询,分析储存在Hadoop中的大规模数据机制
hive定义了简单的类sql查询语句,称为HQL,
Pig:支持并行计算的高级高级数据流语言和执行框架,是MapReduce编程的复杂性的抽象
Zookeeper:应用于分布式应用的高性能的协调服务,为分布式应用提供一致性服务的软件,其提供的功能包括:配置维护,域名服务,分布式同步,组服务等。