其他分享
首页 > 其他分享> > 1.大数据概述

1.大数据概述

作者:互联网

1.列举Hadoop生态的各个组件及其功能、以及各个组件之间的相互关系,以图呈现并加以文字描述。

(1)HDFS——分布式文件系统  

除具备其它分布式文件系统相同特性外,还有自己的特性:①高容错性:认为硬件总是不可靠的 ②高吞吐量:为大量数据访问的应用提供高吞吐量支持 ③大文件存储:支持存储TB-PB级别的数据。

 

(2)MapReduce——分布式计算框架

面向大数据并行处理的计算模型、框架和平台。特点:①易于编程:程序员仅需描述做什么,具体怎么做交由系统的执行框架处理。②良好的扩展性:可通过添加节点以扩展集群能力。③高容错性:当某些节点发生故障时,通过计算迁移或数据迁移等策略在其他节点继续执行任务,提高集群的可用性与容错性。

 

(3)YARN——资源管理器

是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了

巨大好处。

 

(4)HBase——分布式列存数据库

是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。适合于存储大表数据,并且对大表数据的读、写访问可以达到实时级别。利用Hadoop HDFS作为其文件存储系统,提供实时读写的分布式数据库系统。利用ZooKeeper作为协同服务。

 

(5)Hive——仓库数据软件

可以查询和管理PB级别的分布式数据。特性:①灵活方便的ETL。②支持MapReduce,Tez,Spark等多种计算引擎。③可直接访问HDFS文件以及HBase。④易用易编程。

 

(6)zookeeper——分布式协作服务

解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。

 

(7)flume——日志收集工具

是一个分布式、可靠和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方的能力。

 

 

2.对比Hadoop与Spark的优缺点。

Hadoop

优点:

1)       可靠性: Hadoop将数据存储在多个备份,Hadoop提供高吞吐量来访问应用程序的数据。

2)       高扩展性: Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

3)       高效性: Hadoop以并行的方式工作,通过并行处理加快处理速度。

4)       高容错性: Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

5)       低成本: Hadoop能够部署在低廉的(low-cost)硬件上。

缺点:

1)       表达能力有限

2)       磁盘IO开销大

3)       延迟高

任务之间的衔接涉及IO开销

在前一个任务执行完成之前,其他任务就无法开始,难以胜任复杂、多阶段的计算任务

 

Spark

优点

1)       轻:Spark核心代码有3万行。Scala语言的简洁和丰富表达力。巧妙利用了Hadoop和Mesos的基础设施。

2)       快:Spark对小数据集可达到亚秒级的延迟。对大数据集的迭代机器学习即席查询、图计算等应用,Spark 版本比基于MapReduce、Hive和Pregel的实现快。内存计算、数据本地性和传输优化、调度优化。

3)       灵:Spark提供了不同层面的灵活性。Scala语言trait动态混入策略。允许扩展新的数据算子、新的数据源、新的language bindings。Spark支持内存计算、多迭代批量处理、即席查询、流处理和图计算等多种范式。

4)       巧:巧妙借力现有大数据组件。Spark借Hadoop之势,与Hadoop无缝结合。图计算借用Pregel和PowerGraph的API以及PowerGraph的点分割思想。

缺点

1)       稳定性方面,由于代码质量问题,Spark长时间运行会经常出错,在架构方面,由于大量数据被缓存在RAM中,Java回收垃圾缓慢的情况严重,导致Spark性能不稳定,在复杂场景中SQL的性能甚至不如现有的Map/Reduce。

2)       不能处理大数据,单独机器处理数据过大,或者由于数据出现问题导致中间结果超过RAM的大小时,常常出现RAM空间不足或无法得出结果。然而,Map/Reduce运算框架可以处理大数据,在这方面,Spark不如Map/Reduce运算框架有效。

3)       不能支持复杂的SQL统计;目前Spark支持的SQL语法完整程度还不能应用在复杂数据分析中。

 

3.如何实现Hadoop与Spark的统一部署?

一方面,由于Hadoop生态系统中的一些组件所实现的功能,目前还是无法由Spark取代的,比如,Storm可以实现毫秒级响应的流计算,但是,Spark则无法做到毫秒级响应。

另一方面,企业中已经有许多现有的应用,都是基于现有的Hadoop组件开发的,完全转移到Spark上需要一定的成本。因此,在许多企业实际应用中,Hadoop和Spark的统一部署是一种比较现实合理的选择。

标签:Hadoop,容错性,概述,计算,Spark,数据,分布式
来源: https://www.cnblogs.com/Hjianbin/p/15944543.html