欢迎访问本站
当前位置:网站首页 > 专业介绍 > 正文

大数据技术科普:Hadoop介绍

作者:leadcom发布时间:2019-12-17分类:专业介绍浏览:999评论:0


导读:1.大数据概述大数据是指无法利用传统计算技术进行处理的大规模数据集合。大数据概念不再只是数据,大数据已经成为一个全面的主题概念,包含各类工具、技术以及框架。大数据包...

>>>省重点公办技工2022秋季招生/暨中职高考班实验班正在招生!!!


1.大数据概述 大数据是指无法利用传统计算技术进行处理的大规模数据集合。大数据概念不再只是数据,大数据已经成为一个全面的主题概念,包含各类工具、技术以及框架。 大数据包括各类信息设备以及应用程序所产生的数据。大数据所涵盖的一些数据领域如下: 黑盒子数据:是指直升机、普通飞机及喷气式飞机等的组成部分。该数据采集了飞行机组人员的声音、麦克风和耳机的录音以及飞机的性能信息。 社交媒体数据:社交媒体诸如Facebook和Twitter,拥有人们发布的信息和观点。 证券交易数据:证券交易数据包括不同公司客户做出的“买入”和“卖出”决策信息。 电网数据:电网数据是指一个特定节点相对于基站的耗电信息。 搜索引擎数据:搜索引擎从不同数据库中抽取的大规模数据。 因此,大数据包括巨大规模、超高速度、类型可扩展的数据。大数据包括三种类型的数据: 结构化数据:关系型数据。 半结构化数据:XML数据。 非结构化数据:Word文档、PDF文档、文本、媒体日志。 2.大数据技术 大数据技术对于提供更精确分析是非常重要的。更精确地分析将会导致更具体地决策,从而大大提高工作效率、降低成本,减少业务风险。 要充分利用大数据,就需要一个基础架构,能够实时管理和处理大规模结构化、非结构化数据,并能够数据隐私和安全。 市场上存在有不同公司提供的技术,用来处理大数据。下面介绍其中的两类技术: (1)运营大数据 这类技术产品,如MongoDB,针对已采集和存储的数据,提供实时管理、交互式处理功能。 6a66018a6bf2497ab7a3e42239ea267d NoSQL大数据系统,充分利用过去十年流行的新型云计算架构,支持大规模计算,提供高效、廉价的计算能力。基于这种方案,大数据管理的实施工作更容易、更便宜、更快速。 一些NoSQL系统能够支持模式识别、实时数据处理,就不再需要数据专家和其他基础架构的支持。 (2)分析大数据 这类技术产品包括大规模并行处理(MPP)数据库系统和MapReduce,提供支持回溯和复杂分析的分析功能,可能会涉及到绝大多数数据。 MapReduce提供一种新型的数据分析方式,与SQL数据分析能力互补。基于MapReduce的系统能够实现扩充,从单一服务器扩充到成千上万台不同等级的终端机器。 3.大数据解决方案 3.1 传统方案 在该方案中,企业单位利用一台计算机来存储和处理大数据。数据被保存在一个关系型数据库(RDBMS)系统中,诸如Oracle数据库、MS SQL Server或者DB2;同时,还需要编写复杂软件与这些数据库进行交互,处理所需数据,并向用户展示数据,以及数据分析。 该方案存在一定的限制。当所拥有数据规模不大,能够被标准数据库服务器处理时,该方案能够运行良好。但是,当面对超大规模数据时,传统数据库服务器将难以处理。 3.2 Google方案 Google利用MapReduce算法来处理大数据。该算法把大数据分解为很多、很小的部分,并把这些部分分派给网络相连的计算机进行处理,之后收集处理结果,汇总形成最终结果数据集。 上图展示了基于硬件产品的解决方案示意图,这些硬件产品可能是单一CPU的机器或者是功能更强大的服务器。 3.3 Hadoop 2005年,Doug Cutting、Mike Cafarella及其团队,基于Google方案,开始设计研发一种开放式源代码项目,名为HADOOP。Hadoop利用MapReduce算法来运行程序,以并行处理方式在不同CPU节点上处理数据。总之,Hadoop框架能够研发基于计算机集群运行的应用程序;并能够针对大规模数据进行全部统计分析。 4.Hadoop介绍 Hadoop是基于JAVA语言开发的Apache开源框架,支持跨计算机集群的大规模数据集的分布式处理。基于Hadoop框架的应用程序,能够支持跨计算机集群的分布式存储和计算。Hadoop框架设计旨在从单一服务器扩展到上千台机器,每一台机器能够提供本地计算和存储。 4.1 Hadoop架构 Hadoop框架包括以下四个模块: Hadoop通用:这些模块是其他Hadoop模块所需要的Java类库和工具。这些类库提供文件系统和操作系统级别的抽象,包含启动Hadoop必须的Java文件和脚本。 Hadoop YARN:这是一个用于任务排班和集群资源管理的框架。 Hadoop分布式文件系统(HDFS):一个分布式文件系统,提供高吞吐量的应用程序数据访问方式。 Hadoop MapReduce:这是一个基于YARN的系统,用于大规模数据集的并行处理。 自2012年以来,术语“Hadoop”不仅仅是指以上介绍的基础模块,还包括基于Hadoop或者与Hadoop一起安装的附加软件包,诸如Apache Pig, Apache Hive, Apache HBase, Apache Spark等。 4.2 MapReduce Hadoop MapReduce是一个易于编写程序的软件框架,基于大型硬件集群(上千个节点)、以并行方式处理大规模数据,并确保系统拥有高可靠性和容错性。 术语MapReduce实际是指以下Hadoop程序运行的两项不同任务: 映射任务/Map Task:这是首要任务,把输入数据转换成一系列数据,把个体元素分解为元组(键/值对)。 缩减任务/Reduce:该任务把映射任务的输出数据作为输入,把这些数据元组合并为更小的元组集合。缩减任务总是在映射任务之后执行。 通常情况下,输入和输出数据都存储在一个文件系统中。该框架负责任务调度,监控任务,并重新运行失败任务。 MapReduce框架由每个集群节点的一个单一主控JobTracker和一个从属TaskTracker构成。主控JobTracker负责资源管理,跟踪资源消耗/可用性,调度从属TaskTracker上的作业组件任务,监控这些任务,并重新运行失败任务。从属TaskTracker按照主控JobTracker的指示执行任务,并定期向主控JobTracker提供任务状态信息。 4.3 Hadoop分布式文件系统 Hadoop可以直接与任何可安装的分布式文件系统一起工作,诸如Local FS、HFTP FS、S3 FS,还有其他文件系统,但是Hadoop经常使用的还是Hadoop分布式文件系统(HDFS)。 Hadoop分布式文件系统(HDFS)是基于Google文件系统(GFS)构建的,并提供一种分布式文件系统,旨在以可靠、容错的方式,在小型机的大规模集群(数千台计算机)上运行。 HDFS是一个主/从架构,主控服务器包括一个单一命名节点(NameNode),用来管理文件系统元数据;一个或多个从属数据节点(DataNodes)存储实际数据。 HDFS命名空间中的一个文件将会被拆分成几个区块(Block),这些区块被存储到一组数据节点(DataNodes)中。命名节点(NameNode)决定着这些区块和数据节点之间的映射关系。数据节点(DataNode)负责文件系统的读取操作。数据节点(DataNodes)还要基于命名节点(NameNode)给定的指令来处理区块的创建、删除和复制。 HDFS提供了一个类似其他文件系统的内核(shell)以及一个命令清单,可用于与文件系统的交互。 4.4 Hadoop如何工作 第一阶段:一个用户/应用程序能够提交一项作业给Hadoop(hadoop作业客户端),需要指定以下条目进行后续处理。 (1)分布式系统中输入和输出文件的位置。 (2)以jar文件形式存在的java类,包含映射(Map)和缩减(Reduce)功能的实现。 (3)通过设定不同的作业参数来进行作业配置。 第二阶段:接着,Hadoop作业客户端提交一个作业(jar/可执行文件等)和配置给JobTracker。然后,JobTracker负责将软件/配置分发给从属服务器、调度任务,并进行监控,向作业客户端提供状态和运行诊断信息。 第三阶段:不同节点上的TaskTracker根据每一个MapReduce的实现运行任务,减量功能的输出被存储到文件系统的输出文件中。 4.5 Hadoop的优势 Hadoop框架允许用户快速编写和测试分布式系统。该框架是高效的,在计算机之间自动分布数据和工作,利用CPU内核的底层并行机制。 Hadoop不依赖于硬件来提供容错和高可用性(FTHA),相反,Hadoop库本身的设计就是用于在应用层级探测和处理故障的发生。能够动态地向集群添加服务器、或者从集群中删除服务器,Hadoop持续运行状态不会被打断。 Hadoop另一个大优势是,除了开源之外,由于是基于Java技术研发的,所以对于所有平台都兼容。

标签:大数据技术科普:Hadoop介绍