数据仓库之工具Hadoop简单介绍

大数据定义:

”大数据“这个名词是近年来随着以hadoop为代表的一系列分布式计算框架的产生发展流行起来的。所谓大数据就是一个数据集合,它的数据量和复杂度是传统的数据处理应用无法应对的。大数据带来的挑战包括数据分析、数据捕获、数据治理、搜索、共享、存储、传输、可视化、更新、和信息安全等。大数据的数据量至少是TB级别的,在当下的信息时代,PB级别也已较为常见。大数据包含的数据大小超越了普通软件工具的处理能力,换句话说,普通软件没办法在一个可容忍的时间范围内完成大数据的处理。
现在普遍认可的大数据是具有4V,即Volume、Velocity、Variety、Veracity特征的数据集合,用简单描述具是大、快、多、真

  • Volume-生成和存储的数据量大
  • Velocity-数据产生和处理速度快
  • Variety-数据源和数据种类多样
  • V额让city-数据的真实性和高质量

Hadoop的构成:

四个基本模块

  • Hadoop基础功能库:支持其他Hadoop模块的通用程序包。通用包提供文件系统和操作系统级别的抽象,包含有必需的JavaArchive(JAR)和启动Hadoop集群所需的相关脚本。
  • HDFS:一个分布式文件系统,能够以高吞吐量访问应用的数据。
  • YARN:一个作业调度和资源管理框架。
  • MapReduce:一个基于YARN的大数据并行处理程序。

其他的相关项目

  • Ambari:基于web的工具,用于配置、管理和监控Hadoop集群。支持HDFS、MapReduce、Hive、HCatalog、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari还提供显示集群健康状况的仪表盘,如热点图等。Ambari以图形化的方式查看MapReduce、Pig和Hive应用程序的运行情况,因此可以通过较友好的方式诊断应用的性能问题。
  • Avro:一个数据序列化系统
  • Cassandra:一个可扩展的无单点故障的NoSQL多主数据库。
  • Chukwa:一个用于大型发布式系统的数据采集系统。
  • HBase:一个可扩展的分布式数据库,支持大表的结构化数据存储。
  • Hive:一个数据仓库基础架构,提供数据汇总和命令行的即时查询功能。
  • Mahout:一个可扩展的机器学习和数据挖掘库
  • Pig:一个用于并行计算的高级数据流语言和执行框架
  • Spark:一个处理Hadoop数据的、高速的、通用的计算引擎。Spark提供了一种简单而富于表达能力的编程模式,支持包括ETL、机器学习、数据流处理、图形计算等多种应用
  • Tez:一个完整的数据流编程框架,在YARN之上建立,提供强大而灵活的引擎,执行任意的有向无环图(DAG)数据处理任务,即支持批处理又支持交互式的用户场景。Tez已经被Hive、Pig等Haddoop生态圈的组建所采用,用于代替MapReduce作为底层执行引擎。
  • ZooKeeper:一个用于分布式应用的高性能协调服务
    Hadoop的主要特点:
  • 扩容能力:能可靠的存储和处理PB级的数据。
  • 成本低:可用廉价通用的机器组成集群处理数据,这些集群总计可达数千个
  • 高效率:通过分发数据,可以在数据所在的节点上并行处理
  • 可靠性:能自动维护数据的多份复制,并且在任务失败后能自动地重新部署计算

Hadoop架构:

一个Hadoop集群包含一个主节点和多个从节点(工作节点)。主节点上的进程有Job Tracker(对应MR2的Resource Manager)、NameNode,依据配置可能还会有Task Tracker(对应MR2的Node Manager)和DataNode。从节点或工作节点上的进程有DataNode和TaskTracker

数据仓库之工具Hadoop简单介绍
1.HDFS:
一个运行在通用硬件设备之上的分布式文件系统。是高度容错的,在廉价的硬件上部署。HDFS提供以高吞吐量访问的应用数据的能力,非常适合拥有大数据集的应用。
1.1 HDFS目标
  • 硬件容错。假设发生硬件故障是一个常态。硬件损坏的情况通常比预想出现的更加频繁。一个HDFS实例可能由上千的服务器组成,每个机器上存储文件系统的部分数据。HDFS中会有部分组件处于不可用状态,因此,检测硬件错误并从有问题的硬件快速自动恢复,就成为了HDFS架构的核心目标。
  • 流失数据访问。流式访问就是对数据边读取边处理,而不是将整个数据集读取完成后再开始处理。这与运行在典型普通文件系统上的程序不同。HDFS被设计出更适合批处理操作,而不是让用户交互式地使用。它强调的是数据访问的吞吐量而不是低延时。
  • 支持大数据集。HDFS上的应用要处理很大的数据集。HDFS中一个典型文件的大小是几GB到几TB。它需要支持大文件,提高很大的数据带宽,能够在单一集群中扩展几百甚至数千节点,并且一个HDFS实例能够支持几千万个文件。
  • 简单一致性模型。HDFS应用程序访问文件是一次写多次读模式。文件一旦被创建,对该文件只能执行追加或彻底清除操作。追加的内容只能写到文件尾部,而文件中已有的任何内容都不能被更新。这些设定简化了数据一致性问题并能使数据访问的吞吐量更高。
  • 移动计算而不是移动数据。一个应用的计算请求,在它所操作的数据附近执行时效率会更高。通常,将计算移动到临近数据的位置,比把数据移动到应用运行的位置要好,HDFS为应用程序提供接口,把计算移动到数据所在位置。
  • 便捷访问异构的软硬件平台。HDFS能够很容易地从一个平台迁移到另一个,这种便利性使HDFS为大量应用程序所采用。

1.2 HDFS架构
一个HDFS集群有一个NameNode进程,它复制管理文件系统的命名空间,这里所说的命名空间是指一种层次化的文件组织形式。NameNode进程控制被客户端访问的文件,运营NameNode进程的节点是HDFS的主节点。HDFS还有许多DataNode进程,它管理所在节点上的存储。运行DataNode进程的节点是HDFS的从节点,又称工作节点。HDFS维护一个文件系统命名空间,并允许将用户数据存储到文件中。在系统内部,一个文件被分成多个数据块,这些数据块实际被存储到DataNode所在节点上。NameNode不仅执行文件系统命名空间上的打开文件、关闭文件、文件和目标重命名等操作,还要维护数据块到DataNode节点的映射关系。DataNode不仅负责响应文件系统客户端的读写请求,还依照NameNode下达的指令执行数据块的创建、删除和复杂操作
1.3 HDFS数据复制
HDFS可以保证集群中文件存储的可靠性。它把文件分解成一个由数据块构成的序列,每个数据块有多个副本,当一个数据块损坏时,不会照成数据丢失。
NameNode做出的所有操作,都会考虑数据块的复制。它周期性的接收集群中每个DataNode发出的心跳和块报告。
HDFS使用所谓的”机架感知“策略放置数据块副本,是与其他分布式文件系统的主要区别。目的是提示数据可靠性、可用性和网络带宽的利用率。一个大型HDFS集群中会包含很多计算机,这些机器分布于多个机架上,大多数情况下,同一个机架上机器间的网络带宽会高于不同机架上的机器。
在一个复制因子为3的场景中,HDFS把数据块的第一个副本防止在本地机架的一个节点上,另一个副本放置在本地机架的另外一个节点上,最后一个副本放置在另外一个机架的节点上。这样只写了两个机架,节省了一个机架的写入流量,提升了写入性能,该策略的前提是认可这样一种假设:机架失效的可能性比机器失效的可能性小得多。因此这种策略并不会影响可靠性和可用性。
1.4 文件系统元数据持久化
HDFS命名空间的元数据由NameNode负责存储。NameNode使用一个叫做EditLog的事务日志持久化记录文件系统元数据的每次变化。整个文件系统存储在一个叫做Fslmage的文件中。它也是一个NameNode节点的本地操作系统文件。

2.MapReduce:
是一个分布式计算框架,支持编写处理大数据量的应用程序,它可以在几千个节点组成的集群上并行执行。在Hadoop中每个MapReduce应用程序被表示成一个作业,每个作业又被分成多个任务。应用程序向框架提交一个MapReduce作业,作业一般会将输入的数据集合分成批次独立的数据块,然后由map任务以并行方式完成对数据分块处理,框架对map的输出进行排序,之后输入到reduce任务。
集群中的一个节点即是计算节点,又是存储节点。MapReduce框架和HDFS共同运行在多个节点上,这种设计效率非常高,框架可以在数据所在的节点上调度任务执行。
MapReduce计算模型一般包括两个重要的阶段:Map是映射,负责数据的过滤分发;Reduce是规范,负责数据的技术归并。
3. YARN:
是一种集群管理技术,全称Yet Another Resource Negotiator。YARN是第二代Hadoop的一个关键特性。它为MapReduce重新设计的一个资源管理器,经过不断地发展和改进,现在的YARN更像是一个支持大数据应用的分布式操作系统。
YARN的基本思想是将资源管理和调度及监控功能从MapReduce分离出来,用独立的后台进程实现。这需要有一个全局的资源管理器(ResourceManger),每个应用还要有一个应用主管(ApplicationMaster).资源管理器和节点管理器(NodeManager)构成了分布式计算框架。

Hadoop生态圈的其他组件:

Hadoop诞生之初只有HDFS和MapReduce两个软件组件,以后得到非常快速的发展,开发人员贡献了众多组建,以至于形成了Hadoop的生态圈。这些产品貌似各不相同,但是三种共同的特征把它们紧密联系起来。

  • 它们都依赖于Hadoop的基础组建-YARN、HDFS、MapReduce。
  • 它们都用于处理大数据,并提供建立端到端数据流水线所需的各种功能。
  • 它们对于应用如何建立分布式系统的理念是通的。
    数据仓库之工具Hadoop简单介绍

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树数据库组成31839 人正在系统学习中

来源:葛园栋

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年5月10日
下一篇 2019年5月10日

相关推荐