了解hadoop

一:大数据

1:概念

就是巨大的数据,TB,EB,ZB,YB等,就是传统的数据库不能处理,具有海量的数据规模,快速的数据流转(实时性),多样的数据类型(从单一的变成了多种的),价值密度(多数据,并且有效数据多,利润价值大)

2:特征

大量:很多数据,并且一台计算机处理不了的数据

多样:结构化数据,非结构化数据

  a:结构化数据,就是完整的数据,严格的数据格式和长度规范,如,银行,就是数据库中有的数据类型

  b:非结构化数据,就是不完整的数据,不规则,如,办公文档,文本,图片等

价值密度:就是在大量的数据中,有用的数据占大多数

高速:就是实时更新快速

3:应用场景(意义)

 大量的数据进行研究,建立新的数据思维模型,对未来预测,精准推送

二:hadoop组件

1:概念

 开源的分布式计算框架,主要存储和处理大规模的数据

 特点:

1)成本低:就是可以部署在廉价的机器上面,不需要很高的硬件配置

2)高效率:分布式,在多个主机上面运行

3)可靠性:主备服务器,有备份的,如果文件丢失,可以恢复

4)扩容能力强:因为是分布式的结构,所以的话增加更多的节点,就可以扩展存储容量

缺点:不能处理小的数据,浪费了

2:组件

 主要的就是DFS和MapReduce机制解决了存储和计算的问题,要钱,不开源

生态系统:

HDFS:分布式文件系统,存储管理

yarn:是一个资源管理框架,资源管理和调度的

MapReduce:计算模型

spoop(数据迁移工具):数据导入和导出的工具,hadoop和传统的数据库进行数据交换

mahout(数据挖掘算法库):快速的创建管理智能应用程序

hbase:针对结构数据的可伸缩性,高可靠性

zookeeper(分布式协作服务):分布式应用程序协调服务

flume:日志的收集工具,恢复

3:解决的问题

1:大规模数据存储

可以将数据存储在很多的节点上面

2:高数据处理

同时运行在多个节点上面,效率快一点

3:灵活数据处理和分析

支持多种编程语言。提供了多种数据处理和分析的方式

4:hadoop优点

(1)扩容能力强:Hadoop是在可用的计算机集群间分配数据并完成计算任务,这些集群可以方便地扩展到数以千计的节点。

(2)成本低:通过普通廉价的计算机组成服务器集群来分发以及处理数据,相比使用大型机乃至超级计算机成本低很多。

(3)高效率:通过并发数据,Hadoop可以在节点之间动态并行处理数据,使得处理速度非常快。

(4)高可靠性:能自动维护数据的多份复制,并且在任务失败后能自动地重新部署计算任务。

三:spark组件

1:图片

2:详细介绍

spark sql(即席查询):,用户通过sql语句来查询数据

spark streaming(实时流处理):实时数据流计算,就是进行一个数据的实时同步

spark mLlib(机器学习库):机器学习算法,主要分为回归,聚类,协同过滤等,即席查询所有这些方法都被设计为可以在集群上轻松伸缩的架构。

graphx(图计算):面向图计算提供的框架与算法库,提出了弹性分布式属性图的概念,并在此基础上实现了图视图与表视图的有机结合与统一

3:特点

快速:就是基于这个内存的计算,不是基于这个磁盘的读写

易用:就是支持使用多个的编程语言,java,python,scala等

运行范围广:spark 可以运行在 local、yarn(资源管理器)、mesos(资源管理框架)、standalone(独立)、kubernetes(容器) 等多种平台之上。它可以访问诸如 HDFS, Cassandra, HBase, S3 等多种多样的数据源。

四:mapreduce组件

 概念:一个分布式运算程序的编程框架,主要是处理计算的

1:工作流程

分为2个阶段,map和reduce阶段,就是先将复杂的任务分解成若干个小任务进行处理,reduce阶段是将mapper阶段得到的结果进行汇总

总结:map现将数据先分reduce后和

1)首先先将计算的数据在client端,生成切片(对数据进行划分),生成的切片个数对应着启动多少个maptask程序进行map阶段的计算

2)多个maptask程序是并行的运行的。互不相干

3)每个maptask中对数据的处理要考虑很多的细节,是否有分区,如何排序,书写磁盘等,

4)多个map task计算完成后,每个map task都会有输出的数据

5)会根据分区的个数决定启动多少个reduce task

 2:优点: 

(1)易于编程:使用它的一些简单接口,就可以完成一个分布式程序。

(2)良好的拓展性:当计算资源不足时,可以简单地通过增加计算机的数量来扩展它的计算能力。

(3)高容错性:当运算节点出现故障时,MapReduce的计算任务可以自动转移到另一个节点运行,不需要人工干预。

(4)适合处理离线大数据:能够处理PB级的离线数据。

 缺点:

(1)不适合实时计算:MapReduce达不到在秒级以内反馈运算结果。

(2)不适合流式计算:流式计算处理的数据是动态的,而MapReduce只能处理静态的数据。

(3)不适合有向图计算:对于有向图计算,MapReduce在处理数据的过程中,每个任务的输出结果都会写入磁盘,会造成大量的磁盘读写,形成瓶颈,降低系统的性能。

 

3:mpareduce与spark比较

1、相同点

1)都是分布式计算框架,将计算任务分为多个任务进行,并在集群的多个节点上并行执行

 2)容错性,主备模式,就是一个机器坏了的话,会有机器代替他处理工作

3)数据分区,将数据分为多个分区,并在不同的节点上并行处理,提高了效率

2、不同点

1)计算模型:

1、mappreduce是一个离线计算框架,分为map和reduce阶段,适合批处理任务,不适合迭代式计算和交互式计算 

  批处理任务:将一系列待处理的作业按照顺序排队,由作业调度程序,自动依次进行处理方式,用于大量数据进行自动化,批量话处理;文件备份(自动备份服务器上面重要的文件),日志分析(从大量的日志文件中提取关键信息)

  迭代式计算:迭代式就是反复执行某个计算过程,逐步接近最终结果的计算方式,通常需要多次的迭代才能找到精确解;机械算法(通过多次迭代优化模型的参数,提高预测的准确率)

  交互式计算:就是人与计算机进行实时的信息交互,就是用户输入信息,计算机接收处理相对应的命令(操作);excel中的公式计算(输入公式,立即算出结果)

2、spark则采用内存的计算模块,将数据尽可能存放到内存中以提高迭代和交互的计算效率,spark也支持map和reduce操作,也包含一些其他的,列如,转换操作

2)中间结果存储

mapreduce:在map和reduce阶段,中间结果通常存放在硬盘上面,导致频繁的磁盘i/o(读写)操作,降低了处理效率

spark:将中间结果保存到内存中,减少了i/o操作,从而提高了计算速度

3)实时性

mapredcue:更适合处理离线批处理任务,对于实时性要求较高的场景不适合(金融交易,穿越火线等)

spark:除了批处理任务,还支持交互式计算,在实时分析,机器学习上有广泛的应用

4)易用性和通用性

spark:支持scala编程,java和python等,数据处理和分析更快

mapreduce:编程模型和api繁琐

五:冷备,热备和温备

都是存储数据的

冷备:强调数据的持久性和可恢复性

热备:强调数据的即时可用性和可恢复性

温备:仅支持读的操作,不支持写入的操作

 

六:linux基础命令

 

 

 

posted @ 2024-03-10 13:52  q_7  阅读(21)  评论(0编辑  收藏  举报