内容提要
- hadoop概述
- hive概述
- hadoop概述
- hadoop体系架构
- 基于apache基金会下的一个开源项目,致力于开发一个可靠的、大规模的分布式计算框架。
- 用户可采用简单的计算模型在计算机集群下对大规模的数据进行分布式处理。
- 设计理念之一是扩展单一的服务器为成千上万机器的集群,且集群中每一个机器同时提供本地计算力和存储力。
- hadoop框架是在应用层检测和处理硬件失效问题,而不是依赖于硬件自身来维持高可用性。
- 在hadoop框架集群中硬件失效被认为是一种常态,集群的高可用性服务是建立在整个集群之上的。
hadoop整体框架,如图1-1所示
图1-1 hadoop整体框架
- 分布式文件系统(Hadoop Distributed File System,HDFS)
- 并行计算模型(Map/Reduce)
- 列式数据库(Hbase)
- 数据仓库(Hive)
- 数据分析语言(Pig)
- 数据格式转化工具(Sqoop)
- 协同工作系统(Zookeeper)
- 数据序列化系统(Avro)
- hadoop整体框架下特点
- hadoop主要在多节点集群环境下。
- 以数据存储为基础。
- 最大限度兼容结构化数据格式。
- 以数据处理为目的。
- 且其数据操作技术多样化。
- hdfs简介
- 基于商用硬件环境。
- Hdfs具有高容错性,并且被部署在廉价的硬件之上。
- Hdfs向应用程序提供高的数据吞吐访问,适合于需要处理大规模海量 数据集的应用。
- Hdfs遵循部分posix协议要求,可以确保应用程序以流的方式访问文 件系统数据。
- hdfs对现实应用环境的假设及其目标
- 硬件失效
- 流式数据访问
- 海量数据集
- 追加写入及文件同步
- “移动计算比移动数据的代价小”
- 跨异构硬件和软件平台的可移植性
- hdfs架构,如图1-2所示
图1-2 hdfs架构
- 主从(Master/Slave)体系结构。
- 只含有一个Namenode主服务节点这个节点管理文件系统中的命名空间和调度客户端对文件的访问。
- 通常一个机器就是一个Datanode数据节点,Datanode管理本节点上数据的存储。
- 在hdfs内部,一个文件被分割为一个或多个数据块,并且这些数据块被存储在一批Datanode中。
- Namenode执行文件系统中命名空间的操作(打开、关闭、重命名文件和目录),Namenode需要执行数据块到Datanode映射的决策。
- Datanode负责响应来自客户端的文件读写要求,也要负责执行来自Namenode的关于数据块创建、删除和冗余存储的指令。
6、Map/Reduce简介
(1)一种用于在大型商用硬件集群中(成千上万的节点)对海量数据(多个兆兆字节数据集)实施可靠的、高容错的并行计算的软件系统。
(2)一个最先由Google提出的分布式计算软件架构
(3)基本原理:将一个复杂的问题,分成若干个简单的子问题进行解决。然后,对子问题的结果进行合并,得到原有问题的解。
7、Map/Reduce概念
(1)“Map”和“Reduce”是编程语言中的概念,都是处理数据集合的函数。
(2)Map在处理数据序列的过程中只处理当前的数据信息,不需要跟之前处理的状态信息交互。
(3)主节点读入输入数据,把它分成可以用相同方法解决的小数据块,然后把这些小数据块分发到不同的工作节点上,每一个工作节点循环做同样的事,这就形成了一个树形结构,而每一个叶子节点来处理每一个具体的小数据块,再把这些处理结果返回给父节点。
(4)Reduce在处理过程中却依赖之前处理的结果,同时生成的结果也被后续的处理使用。节点得到所有子节点的处理结果,然后把所有结果组合并且返回到输出。
(5)一个Map/Reduce任务会把一个输入数据集分割为独立的数据块,然后Map任务会以完全并行的方式处理这些数据块。Map/Reduce系统自动对Map任务的输出分类,再把这些分类结果作为Reduce任务的输入。无论是任务的输入还是输出都会被存储在文件系统中。Map/Reduce系统关注任务调度、任务监测和重新执行失败的任务。
(6)计算节点和存储节点的一致性。允许hadoop框架有效的调度任务在那些数据已经准备好了的节点上,好处是整个集群中总带宽非常的高。
(7)特点是可以用Map和Reduce方法来处理分布式计算问题时,尽可能的实现数据处理的本地化,降低由数据移动而产生的代价。每一个Map操作都是相对独立的,所有的Maps都是并行运行的,虽然实践中会受到数据源和CPU个数的影响。同样的,用一个Reduce集合来执行Reduce操作,所有带有相同Key的Map输出会聚集到同一个Reduce。能够处理一般服务器所不能处理的大数据量处理问题。
(8)Map/Reduce系统由单一的JobTracker主节点和若干个TaskTracker从节点组成,其中每一个集群节点对应一个TaskTracker节点。主节点负责调度任务的各个组成任务到从节点上,监控并且重新执行失败的组成任务;从节点执行主节点安排的组成任务。
(9)Map/Reduce的Map和Reduce过程都定义了键值对(<key,value>)的数据结构,即系统视任务的输入数据为键值对集合,并且产生键值对结合做为任务的输出。
8、M