数智资源网
首页 首页 大数据 大数据入门 查看内容

Hadoop工具推荐,大数据学习基本知识

木马童年 2020-10-12 20:27 21 0

Hadoop生态系统 在开始使用Hadoop之前,你需要了解一下Hadoop生态系统。Hadoop生态系统既不是编程语言也不是服务。它是解决大数据问题的平台或框架。你可以将其视为套件,其中包含内部的许多服务(记录、存储、分析和 ...

u=3821866890,593617715&fm=26&gp=0.jpg

Hadoop生态系统

在开始使用Hadoop之前,你需要了解一下Hadoop生态系统。Hadoop生态系统既不是编程语言也不是服务。它是解决大数据问题的平台或框架。你可以将其视为套件,其中包含内部的许多服务(记录、存储、分析和维护)。让我们简要了解服务是如何单独与协同工作的。

以下是共同构成Hadoop生态系统的Hadoop组件:

HDFS—Hadoop分布式文件系统

YARN—另一个资源谈判者

MapReduce—使用编程进行数据处理

Spark—内存中数据处理

PIG,HIVE—使用查询的数据处理服务(类似于SQL)

HBase—NoSQL数据库

Mahou,SparkMLlib—机器学习

ApacheDrill—Hadoop上的SQL

Zookeeper—管理群集

Oozie—作业调度

Flume,Sqoop—数据提取服务

SolrandLucene—搜索和索引

Ambari—配置,监控和维护集群

Hadoop分布式文件系统

Hadoop分布式文件系统的核心部件,或者说是Hadoop的生态系统的支柱。

HDFS可以存储不同类型的大型数据集(即结构化,非结构化和半结构化数据)。

HDFS在资源上创建了一个抽象级别,在这里我们可以将整个HDFS视为一个单元。

它有助于我们在各个节点上存储数据并维护有关存储数据(元数据)的日志文件。

HDFS具有两个核心组件(NameNode和DataNode)。

1.该NameNode是主节点,它不存储的实际数据。它包含元数据,就像日志文件一样,或者你可以说是目录。因此,它需要较少的存储空间和较高的计算资源。

2.另一方面,你的所有数据都存储在DataNodes上,因此需要更多的存储资源。这些DataNode是分布式环境中的商品硬件(例如笔记本电脑和台式机)。这就是Hadoop解决方案非常具有成本效益的原因。

3.NameNode在写入数据时,你始终与之通信。然后,它在内部向客户端发送一个请求,以存储和复制各种数据DataNodes。

Hadoop分布式文件存储架构

YARN

YARN相当于Hadoop生态系统的大脑,它通过分配资源和安排任务来执行你的所有处理活动。

它有两个主要部分(ResourceManager和NodeManager)。

1.ResourceManager还是加工部门的主要节点。

2.它接收处理请求,然后将请求的各个部分传递到相应的NodeManagers,在该处进行实际处理。

3.NodeManagers安装在每个DataNode上,它负责在每个单个DataNode上执行任务。

调度程序:调度程序根据你的应用程序资源需求,执行调度算法并分配资源。

ApplicationsManager:在ApplicationsManager接受作业提交的同时,它与容器(即进程执行所在的数据节点环境)进行协商,以执行特定应用程序ApplicationMaster并监视进度。ApplicationMasters是驻留在容器上的守护进程,DataNode与容器通信以在每个容器上执行任务DataNode。ResourceManager有两个组成部分(Schedulers和ApplicationsManager)。

MapReduce

它提供了处理逻辑,是Hadoop生态系统中处理的核心组件。换句话说,MapReduce是一个软件框架,可帮助编写使用Hadoop环境中使用分布式和并行算法处理大型数据集的应用程序。

在MapReduce程序中,Map()和Reduce()是两个函数。

1.该Map功能执行诸如过滤、分组和排序之类的操作。

2.该Reduce函数汇总并汇总该函数产生的结果map。

3.Map函数生成的结果是一个键-值对(K,V),用作该Reduce函数的输入。

MapReduce数据集

让我们以上面的示例为例,以更好地理解MapReduce程序。

有这样一个学生及其所属部门的样本案例,我们要计算每个部门的学生人数。最初,Map程序将执行并计算出现在每个部门的学生,从而产生键值对,如上所述。此键值对是Reduce函数的输入。Reduce然后,该函数将汇总每个部门的人数,并计算每个部门的学生总数并得出给定的结果。

ApachePig

PIG有两个部分:PigLatin(语言)和Pigruntime(执行环境),即执行环境。你可以更好地将其理解为Java和JVM。

它支持pig拉丁语语言,该语言具有类似于SQL的命令结构。

ApachePIG可以减轻那些没有编程背景的人的困扰。

编译器在内部将PigLatin转换为MapReduce。它会产生一系列MapReduce作业。

PIG最初由Yahoo开发。

它为你提供了一个平台来构建ETL(提取,转换和加载),处理和分析庞大数据集的数据流。

Pig如何工作?

在PIG中,首先,load命令加载数据。然后,我们对其执行各种功能,例如分组、过滤、联接、排序等。最后,你可以在屏幕上转储数据,也可以将结果存储回HDFS。

ApacheHive

Facebook为精通SQL的人创建了HIVE。因此,HIVE使他们在Hadoop生态系统中工作时感到宾至如归。

基本上,HIVE是一个数据仓库组件,它使用类似SQL的界面在分布式环境中执行读取,写入和管理大型数据集。

HIVE+SQL=HQL

Hive的查询语言称为Hive查询语言(HQL)。

它具有两个基本组件:Hive命令行和JDBC/ODBC驱动程序。

Hive命令行接口用于执行HQL命令。

Java数据库连接(JDBC)和对象数据库连接(ODBC)用于从数据存储建立连接。

Hive具有高度可伸缩性。它可以执行大型数据集处理(即批处理查询处理)和实时处理(即交互式查询处理)的操作。

它支持SQL的所有原始数据类型。

你可以使用预定义功能或编写定制的用户定义功能(UDF)来满足你的特定需求。

ApacheMahout

现在,让我们谈谈以机器学习而闻名的Mahout。Mahout提供了一个用于创建可扩展的机器学习应用程序的环境。

Mahout能做什么?

它执行协作式过滤,聚类和分类。有些人还认为缺少频繁项集是Mahout的功能。让我们分别了解它们:

1.协作过滤:Mahout会挖掘用户的行为,其模式及其特征,并预测并向用户提出建议。典型的用例是电子商务网站。

2.群集:它将相似的数据组组织在一起,例如可以包含博客、新闻、研究论文等的文章。

3.分类:这意味着将数据分类和归类为各个子部门(即文章可以归类为博客、新闻、文章、研究论文等)。

4.缺少频繁的项目集:在这里,Mahout会检查哪些对象可能会一起出现,并提出建议(如果缺少)。例如,通常将手机和保护套放在一起。因此,如果你搜索手机,它也会为你推荐外壳和保护套。

Mahout提供了一个命令行来调用各种算法。它具有一组预定义的库,该库已包含针对不同用例的不同内置算法。

ApacheSpark

ApacheSpark是用于分布式计算环境中的实时数据分析的框架。Spark是用Scala编写的,最初是在加利福尼亚大学伯克利分校开发的。它执行内存中计算以提高Map-Reduce上的数据处理速度。

通过利用内存计算和其他优化,对于大规模数据处理,它的速度比Hadoop快100倍。因此,它比Map-Reduce需要更高的处理能力。

如你所见,Spark附带了高级库,包括对R、SQL、Python、Scala、Java等的支持。这些标准库增加了复杂工作流程中的无缝集成。此外,它还允许各种服务集与其集成,例如MLlib、GraphX、SQL+数据框架,流服务等,以增强其功能。

这是每个人心中很普遍的问题:

“ApacheSpark:ApacheHadoop的杀手还是救星?”–奥莱利

答案:这不是苹果与苹果的比较。ApacheSpark最适合实时处理,而Hadoop旨在存储非结构化数据并对其执行批处理。当我们结合使用ApacheSpark的能力(即高处理速度,高级分析和对Hadoop的商品硬件低成本操作的多重集成支持)时,它可以提供最佳结果。

这就是为什么许多公司将Spark和Hadoop一起使用来处理和分析存储在HDFS中的数据的原因。

ApacheHBase

HBase是一个开源的、非关系的、分布式数据库。换句话说,它是一个NoSQL数据库。它支持所有类型的数据,这就是为什么它能够处理Hadoop生态系统中的任何事物。

它以Google的BigTable建模为基础,BigTable是旨在应对大型数据集的分布式存储系统。HBase设计为在HDFS之上运行,并提供类似BigTable的功能。

它为我们提供了一种存储稀疏数据的容错方式,这在大多数大数据用例中都很常见。HBase用Java编写,而HBase应用程序可以用REST,Avro和ThriftAPI编写。

为了更好地理解,让我们举个例子。你有数十亿客户的电子邮件,并且需要找出在他们的电子邮件中使用“投诉”一词的客户数量。该请求需要快速处理(即实时)。因此,在这里,我们正在处理大量数据集,同时检索少量数据。HBase旨在解决此类问题。

ApacheDrill

顾名思义,ApacheDrill用于钻取任何类型的数据。这是一个开放源代码应用程序,可与分布式环境一起使用以分析大型数据集。

它是GoogleDremel的副本。

它支持各种NoSQL数据库和文件系统,包括AzureBlob存储,GoogleCloudStorage、HBase、MongoDB、MapR-DBHDFS、MapR-FS、AmazonS3、Swift、NAS和本地文件。

本质上,ApacheDrill背后的主要目标是提供可伸缩性,以便我们可以高效地处理PB级和EB级的数据(或者你可以在几分钟内说出)。

ApacheDrill的主要功能在于仅通过单个查询即可组合各种数据存储。

ApacheDrill基本上遵循ANSISQL。

它具有强大的可伸缩性因素,可支持数百万个用户并在大规模数据上满足其查询请求。

ApacheZooKeeper

ApacheZooKeeper是任何Hadoop作业的协调者,其中包括Hadoop生态系统中各种服务的组合。ApacheZooKeeper在分布式环境中与各种服务协调。

在使用Zookeeper之前,在Hadoop生态系统中的不同服务之间进行协调非常困难且耗时。先前的服务在同步数据时在交互方面存在很多问题,例如通用配置。即使配置了服务,服务配置的更改也会使其变得复杂且难以处理。分组和命名也是一个耗时的因素。

由于上述问题,引入了ZooKeeper。通过执行同步,配置维护,分组和命名,可以节省大量时间。尽管它是一项简单的服务,但可用于构建功能强大的解决方案。

像Rackspace,Yahoo和eBay这样的大公司在整个数据工作流程中都使用此服务,因此你对ZooKeeper的重要性有所了解。

ApacheOozie

将ApacheOozie视为Hadoop生态系统中的时钟和警报服务。对于Apache作业,Oozie就像调度程序一样。它调度Hadoop作业,并将它们作为一项逻辑工作绑定在一起。

Oozie工作有两种:

1.Oozie工作流程:这些是要执行的顺序动作集。你可以将其视为接力赛,每个运动员都在等待最后一个运动员完成比赛。

2.Oozie协调器:这些是Oozie作业,当数据可用时会触发这些作业。将此视为我们体内的反应刺激系统。就像我们对外部刺激做出反应一样,Oozie协调员也会对数据的可用性做出响应,而其他情况则不然。

ApacheFlume

摄取数据是我们Hadoop生态系统的重要组成部分。

Flume是一项服务,可帮助将非结构化和半结构化数据导入HDFS。

它为我们提供了一个解决方案,可靠和分发,并帮助我们在收集,汇总,并移动大量的数据集。

它有助于从HDFS中的各种来源(例如网络流量,社交媒体,电子邮件,日志文件等)中提取在线流数据。

现在,让我们从下图了解Flume的体系结构:

Flume代理将流数据从各种数据源提取到HDFS。从图中可以很容易地理解Web服务器指示数据源。Twitter是流数据的著名来源之一。

槽剂具有三个组成部分:源,接收器和通道。

1.源:从传入的流线接受数据,并将该数据存储在通道中。

2.通道:充当本地存储或主存储。通道是HDFS中数据源和持久数据之间的临时存储。

3.接收器:从通道收集数据,并永久将数据提交或写入HDFS。

ApacheSqoop

现在,让我们谈谈另一个数据摄取服务,即Sqoop。Flume和Sqoop之间的主要区别在于:

Flume仅将非结构化数据或半结构化数据摄取到HDFS中。

虽然Sqoop可以从RDBMS或企业数据仓库向HDFS导入和导出结构化数据,反之亦然。

让我们使用下图了解Sqoop的工作方式:

当我们提交Sqoop命令时,我们的主要任务被分为子任务,然后由内部的单个MapTask处理。MapTask是子任务,它将部分数据导入Hadoop生态系统。

当我们提交作业时,它将被映射到“映射任务”中,该任务从HDFS中带入大量数据。这些块被导出到结构化数据目的地。结合所有这些导出的数据块,我们将在目的地接收整个数据,该目的地在大多数情况下是RDBMS(MYSQL/Oracle/SQLServer)。

ApacheSolrandLucene

ApacheSolr和ApacheLucene用于在Hadoop生态系统中进行搜索和建立索引。

ApacheLucene基于Java,它也有助于拼写检查。

如果说ApacheLucene是引擎,那么ApacheSolr就是围绕它建造的汽车。它使用LuceneJava搜索库作为搜索和完整索引的核心。

ApacheAmbari

Ambari是一个Apache软件基金会项目,旨在使Hadoop生态系统更易于管理。

它包括用于置备,管理和监视ApacheHadoop集群的软件。

Ambari提供:

1.Hadoop集群配置:

它为我们提供了在多个主机上安装Hadoop服务的分步过程。它还处理集群上Hadoop服务的配置。

2.Hadoop集群管理:

它提供了一个集中管理服务,用于跨集群启动,停止和重新配置Hadoop服务。

3.Hadoop集群监控:

为了监视健康和状态,Ambari提供了一个仪表板。黄色警报框架是一种告警服务通知每当需要关注的用户(例如,如果一个节点出现故障或节点上磁盘空间不足等)。

最后,我想请你注意以下三个重要说明:

1.Hadoop生态系统的成功归功于整个开发人员社区。许多大型组织,例如Facebook,Google,Yahoo,加利福尼亚大学(伯克利)等,都为提高Hadoop的功能做出了贡献。

2.在Hadoop生态系统内部,有关一个或两个工具(Hadoop组件)的知识将无助于构建解决方案。你需要学习一组Hadoop组件,这些组件可以一起构建一个解决方案。

3.根据用例,我们可以从Hadoop生态系统中选择一组服务,并为组织创建量身定制的解决方案。

编程语言 大数据 分布式文件系统 数据处理 数据库 机器学习
0
为您推荐
深入浅出实战讲解-Spark框架实战 集中轰炸Spark-从入门到高级应用及优化课程下载

深入浅出实战讲解-Spark框架实战 集中轰炸Spark-从入

课程名称深入浅出实战讲解-Spark框架实战 集中轰炸Spark-从入门到高级应用及优化课程…...

云计算视频实战经典Hadoop学习,资源教程下载

云计算视频实战经典Hadoop学习,资源教程下载

课程名称云计算视频实战经典Hadoop学习,资源教程下载课程目录1.Hadoop的源起与体系介…...

Spark原理精讲与推荐系统实践案例,资源教程下载

Spark原理精讲与推荐系统实践案例,资源教程下载

课程名称Spark原理精讲与推荐系统实践案例,资源教程下载课程目录Spark 概述Spark Cor…...

北风网数据结构学习视频,资源教程下载

北风网数据结构学习视频,资源教程下载

课程名称北风网数据结构学习视频,资源教程下载课程目录01第一讲数组02第二讲简单排序…...

大数据时代互联网社交媒体数据的分析与应用课程,资源教程下载

大数据时代互联网社交媒体数据的分析与应用课程,资源

课程名称大数据时代互联网社交媒体数据的分析与应用课程,资源教程下载课程介绍大数据…...

炼数成金完整17周Hadoop完全入门学习视频教程 Hadoop数据分析平台第三版视频教程下载

炼数成金完整17周Hadoop完全入门学习视频教程 Hadoop

课程名称炼数成金完整17周Hadoop完全入门学习视频教程 Hadoop数据分析平台第三版视频…...