hadoop生态圈组件

一、hadoop生态圈相关组件
1.Hadoop是目前应用最为广泛的分布式大数据处理框架,其具备可靠性、高效性、可伸缩性等特点。
Hadoop的核心组件是HDFS、MapReduce。随着处理的任务不同,各种组件的相继出现,有着丰富的Hadoop生态圈。
组件介绍
1、HDFS(分布式文件系统)
HDFS是整个Hadoop体系的基础,负责数据的存储与管理,Hdfs有着高容错性的特点,并且设计用来部署在低廉的硬件上,适合那些有着超大数据集的应用程序。
2、MapReduce(分布式计算框架)MapReduce是一种基于磁盘的分布式并行批处理的计算模型,用于大数据量的计算。\n\nMapReduce是一种基于磁盘的分布式并行批处理的计算模型,用于处理和生成大型数据集,他将计算任务分为两个阶段:map阶段和reduce阶段,MapReduce用于在HDFS上处理大量数据,尤其是批量处理任务。
3、Spark(分布式计算框架)\nSpark是一种基于内存的分布式并行计算框架,与MapReduce不同的是-----Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好的适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
4、Flink(分布式计算框架)
Flink是一个基于内存的分布式并行处理框架,类似与Spark,但是在部分设计思想方面有很多不同的,对与Flink而言,适合处理事实数据和流式数据,具有更好的状态管理和任务调度能力,而Spark适合处理离线批处理数据,,具有更好的内存管理和执行引擎能力。
5.YARN (分布式资源管理器)
任务的调度和集群资源的管理, YARN是Hadoop 的资源管理和任务调度框架。
它负责管理和调度集群中的计算资源,以便为各种应用程序执行任务。
6.Zookeeper(分布式协作服务)
解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。\nHadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。
7、Sqoop(数据同步工具)
Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。
数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。
8、Hive(基于Hadoop的数据仓库)
Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。
HQL用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce开发人员也能编写数据查询语句,\n然后这些语句被翻译为Hadoop上面的MapReduce任务。
9、HBase(分布式列存储数据库)\nHBase是一个建立在HDFS之上,面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。
>HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。
10、Flume(日志收集工具)
Flume以Agent为最小的独立运行单位,一个Agent就是一个JVM。单个Agent由Source、Sink和Channel三大
组件构成
Source:从客户端收集数据,并传递给Channel。\nChannel:缓存区,将Source传输的数据暂时存放。
Sink:从Channel收集数据,并写入到指定地址。
Event:日志文件、avro对象等源文件
11、Kafka(分布式消息队列)
kafka 是一个分布式流处理平台,用于构建实时数据流管道和应用程序。
它可以处理高吞吐量的事件数据,并将其存储在可持久化的主题中以供实时处理和分 析。
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的 所有动作流数据。
实现了主题、分区及其队列模式以及生产者、消费者架构模式。
12.Oozie(工作流调度器)
Oozie是一个可扩展的工作体系,集成于Hadoop的堆栈,用于协调多个MapReduce作业的执行。
它能够管理一个复杂的系统,基于外部事件来执行,外部事件包括数据的定时和数据的出现。
13.Hadoop 主要模块
Core-site.xml(工具模块)
hdfs-site.xml(数据存储模块)
Mapred-site.xml(数据处理模块)
Datax的特点:sqoop在导入导出数据时充分采用了MapReduce计算框架,根据输入条件生成一个MapReduce作业,在hadoop集群中运行,采用MapReduce框架同时在多个节点进行import和export操作,速度比单节点运行多个并行导入导出效率高,同时提供了良好的容错性和并发性;可以将关系型数据库中的数据导入到hdfs、hive或者hbase等hadoop组件中,也可以将hadoop组件中的数据导入到关系型数据库中支持insert、update模式,可以选择参数,若内容存在就更新,不存在就插入;对国外主流的关系型数据库支持性好;(MySQL、Oracle、DB2、SQL Server)Sqoop的特点:异构数据库和文件系统之间的数据交换;采用framework+plugin架构构建,framework处理了缓冲、流控,并发,上下文加载等高速数\n据交换的大部分技术问题,提供了简单的接口与插件交互,插件仅需实现对数据处理系统的访问;数据传输过程中在单线程内完成,全内存操作,不读写磁盘,也没有ipc开放式的框架,开发者可以在极短的时间开发一个新插件以快速支持新的数据库/文件系统Sqoop和Datax的区别:SqoopDatax采用了MapReduce计算框架进行导入Datax仅仅运行在Datax的单台机器上进行数据的抽取和加载速度比sqoop慢只可以在关系型数据库和hadoop的组件之间进行数据迁移,而在hadoop相关组件之间(Hive和Hbase之间无法使用Sqoop)同时在关系型数据库之间(MySQL和Oracle就不能)之间就无法通过sqoop导入数据Datax能够分别实现关系型数据库和hadoop组件之间、关系型数据库之间、hadoop组件之间的数据迁移sqoop专为hadoop而生,对hadoop支持度极好Datax可能会出现不支持高版本hadoop的现象sqoop只支持官方提供的指定几个关系型数据库和hadoop组件之间的数据交换而在Datax中用户只需根据自生需求修改文件,生成响应的rpm包,自行安装后可以使用自己定制的插件。
d9ba3a8b0c10464689bc1d1c31a89d2c.png
二、Mapreduce的特点及运行架构
1.MapReduce是一种基于磁盘的分布式并行批处理计算模型,用于处理大数据量的计算。其中Map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间,Reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。
①易于编程:只需要使用hadoop接口进行编程,即可实现多台计算机分布式计算和分布式存储。
②高扩展性:存储空间不足或者计算能力不足,则可以添加计算机完成。
③容错性高:如果某个节点宕机,hadoop可以自动切换讲计算任务转移到其他节点上完成,不会影响计算结果。
如果计算任务执行了一半失败,出错,内部自动重试机制。
⑤应用场景:PB级别以上海量数据的离线处理,无法实时处理和流失动态处理。(每日)
2.MapReduce执行过程MapReduce的map与reduce过程`MapReduce`流程总览:`MapReduce`详细流程:`Map`端分析:`Shuffle`过程分析:`map`端的`shuffle`:`Reduce`端的`shuffle`:`Reduce`端分析:MapReduce架构在MapReduce中,用于执行MapReduce任务的机器有两个角色:JobTracker和TaskTracker。其中JobTracker是用于调度工作的。TaskTracker是用于执行工作的。一个Hadoop集群中只有一台JobTracker。MapReduce架构图如下:

aac7b013e5f54b9e9f0bccd2134a2d6f.jpg
客户端向JobTracker提交一个作业,JobTracker把这个作业拆分成很多份,然后分配给TaskTracker去执行,TaskTracker会隔一段时间向JobTracker发送心跳信息(Heartbeat),如果JobTracker在一段时间内没有收到TaskTracker的心跳信息,JobTracker会认为TaskTracker挂掉了,会把TaskTracker的作业任务分配给其他TaskTracker
三、spark的特点,并与mapreduce作对比说明区别
1.①速度快
由于Apache Spark支持内存计算,并且通过DAG(有向无环图)执行引擎支持无环数据流,所以官方宣称其在内存中的运算速度要比Hadoop的MapReduce快100倍,在硬盘中要快10倍Spark处理数据与MapReduce处理数据相比,有如下两个不同点:Spark处理数据时,可以将中间处理结果数据存储到内存中Spark Job调度以DAG方式,并且每个任务Task执行以线程方式,并不是像MapReduce以进程方式执行
②易于使用
Spark的版本已经更新到了Spark3.1.2(截止日期2021.06.01),支持了包括Java、Scala、Python、R和SQL语言在内的多种语言。为了兼容Spark2.x企业级应用场景,Spark仍然持续更新Spark2版本
③通用性强
在Spark的基础上,Spark还提供了包括Spark SQL、Spark Streaming、MLib及GraphX在内的多个工具库,我们可以在一个应用中无缝的使用这些工具库
④运行方式
Spark支持多种运行方式,包括在Hadoop和Mesos上,也支持Standalone的独立运行模式,同时也可以运行在云Kubernet(Spark2.3开始支持)上对于数据源而言,Spark支持从HDFS、HBase、Cassandra及Kafka等多种途径获取和数据
2.①内存计算
spark 将数据存储在内存中进行计算;MapReduce 将数据存储在磁盘上。由于内存访问速度更快,spark 在处理迭代计算和交互式查询等工作负载时通常MapReduce 更高效。Spark 基于内存的计算:Spark中我们有一种优化策略:移动计算、不移动数据。旨在减少数据传输的开销,提高计算效率。其核心思想是将计算任务尽可能的放在数据所在的节点上执行,而不是将数据传输到计算节点。具体来说,包括下面两个方面:1. 数据本地性:Spark 会尽量将计算任务分配到存储有数据的节点上,以利用数据的本地性。这样可以减少数据传输的开销。通过在数据所在节点上执行计算任务,可以避免将数据传输到其他节点,从而提高计算性能。2. 任务调度:Spark 不会移动实际的数据。数据仍然保留在存储节点上,只有计算任务被分发到存储数据的节点上执行。MapReduce基于磁盘的计算:1. 数据读取:输入数据从磁盘读取到内存中进行处理。也就是说,每次需要处理数据时,都需要从磁盘读取相应的数据块到内存中进行计算操作。2. 中间结果存储: MapReduce 框架会将 Map 和 Reduce 阶段的中间结果存储在磁盘上。在 Map 阶段,将 Map 任务的输出写入磁盘中的临时文件。在 Reduce 阶段,Reduce 任务会从磁盘上读取中间结果,并根据键值对进行合并和排序。3. 数据持久性:将数据存储在持久化的磁盘介质上,及时在节点故障或计算过程中断的情况下,数据也能够持久保存。这样可以确保数据的可靠性和容错性。
②执行速度
Spark 的内存计算特性 和 基于DAG有向无环图 的执行模型,通常比 MapReduce 更快。Spark可以在内存中保留数据和计算结果,并通过多个任务合并为更少的阶段来减少磁盘的读写开销。
③API 和编程模型Spark提供了丰富的API,包括 scala、Java、Python等。开发起来更加灵活、表达能力更强。而 MapReduce 使用 Java 编程语言来编写 Map 和 Reduce 函数,需要手动编写更多的代码来实现处理逻辑。
④扩展性 Spark 有更好的扩展性,可以方便的与其他数据处理框架和工具集成。如:Spark Streaming用于流处理、Spark SQL 用于查询和结构化数据处理、Spark MLlib用于机器学习等。
⑤容错性
Spark提供了弹性式分布数据集RDD,具有自动容错和数据恢复机制。能够在节点故障时重新计算丢失的数据。
MapReduce 需要在每个任务的开始和结束时将数据写入磁盘,因此在故障情况下需要重新启动整个计算。
四、熟练掌握linux命令并演示说明
1.pwd命令

21fcc88f76b544c392984a18b19d2262.jpeg
2.ls命令
1ec22232919f4b249154c6b155cb6bf5.jpeg
3.cd命令
b858377627274018a986cec591486e76.jpeg
4.mkdir命令
8bcf54f0bb4f482eb24cac587ac4e0fc.jpeg
5.rm命令
7006cf9908d24e1bb3e2e8798f5c524d.jpeg
6.cp命令
f5f9ee45a22f41a396fc11326ad80d38.jpeg
7.mv命令
398b51bf35d1462d8c70f70c01a2c7d2.jpeg
8.cat命令
08b58f9148af4407bab1ab7a37ec1754.jpeg
9.tar命令
093fb92ddf9146e791ec3f259d93db45.jpeg
10.useradd命令
267fe11f0e024b2e825655aeb89f1498.jpeg
11.passwd命令
2b4a5ac1cd314f22a45d7a039cc6db40.jpeg
12.chown命令
5ff1db138c984fe1b6276c8af5d6f3d2.jpeg
13.chmod命令
3d1bd0d0a58043e9b180167c5f66fa78.jpeg

590996d3b76941e5aa61f7bef2f53712.jpeg
14.su命令
2504663039c34d31a7a3f620ae267c71.jpeg
15.文本操作命令

d0d109a2d8c845d394dd044c1f0b1a74.jpeg

e5226d18d1264c61a812f93a4aa85625.jpeg

 c20b901238594175b1609384dcf8207b.jpeg

16.clear命令
30001da21a204745a77989774421a0f5.jpeg
17.hostname,hostnamectl命令
9e5fbc25ee4344b2b89a5275d336ceb1.jpeg
18.ip命令
70a9c88630724d6a925ed7e097d97073.jpeg
19.systemctl命令

72d0657d005144938506a2a90b34a63f.jpeg


20.export命令

c3504817a0f24d44b0a8a4202ccca085.jpeg

 e09c108642df40c58a18e54a4c04f4ad.jpeg


21.echo命令

e4bf0ff2b467418aa6c20d633a8446ac.jpeg


22.source命令

53ac6cc628034ed990c70214e44f0d22.jpeg


23.reboot命令

affb72792b6a43bf9a862b44c7e19102.jpeg

5e74f66396d14cf48a48c4626d4ed674.jpeg


24.poweroff命令

d553232fe2434303994237dfabb7b096.jpeg

65d4597aa84e43ab8a8c02be762f4960.jpeg


五、冷备,温备,热备
热备、冷备、温备热备(在线备份):在数据库运行时直接备份,对数据库操作没有任何影响。冷备(离线备份):在数据库停止时进行备份。温备:在数据库运行时加全局读锁备份,保证了备份数据的一致性,但对性能有影响。热备流程备份开始时,记录重做日志的日志序号(LSN)。复制共享表空间和独立表空间的文件。复制完后,再次记录重做日志的日志序号(LSN)。通过前面记录的日志序号来复制在备份时产生的重做日志。冷备优点备份简单,只需要复制相关文件即可。恢复简单而且速度快,不需要执行任何 SQL 语句,也不需要重建索引。
六、数据类型
Local vector(本地向量)\nLabeled point(带标签数据点)\nLocal matrix(本地矩阵)\nDistrubuted matrix(分布式矩阵):RowMatrix、IndexedRowMatrix、CoordinateMatrix、BlockMatrix\nMLlib支持存储在单个机器上的本地的向量和矩阵,以及一个或多个RDD组成的分布式矩阵。本地向量和本地矩阵是用作公共接口的简单数据模型,底层的线性代数运算由Breeze提供。在监督学习中的样本被称为带标签数据点。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值