大数据学习笔记二:解析大数据使用的技术

大数据设计技术主要有Hadoop,HDFS,HBase,MapReduce等,今天进行相关总结

大数据的应用主要是对数据进行存储和处理,但是对于一般的设备而言,想要存储和处理大量数据难度较大(TB以上级别),因此需要使用一些技术处理大数据问题。
主要应用的技术如下图展示:
在这里插入图片描述

此图也是展示的Hadoop生态圈,即以Hadoop为核心扩展的技术,接下来将分开介绍:

  • Hadoop
    Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性:
    高可靠性
    高效性
    高可扩展性
    高容错性
    成本低
    运行在Linux平台上
    支持多种编程语言

注:分布式处理是指:
分布式处理(distributed processing)和并行处理(Parallel processing)是为了提高并行处理速度采用的两种不同的体系架构。
并行处理是利用多个功能部件或多个处理机同时工作来提高系统性能或可靠性的计算机系统,这种系统至少包含指令级或指令级以上的并行。

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算

  • HBase
    HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表
    简单而言就是数据库

  • HDFS
    它的名字叫分布式文件系统
    分布式文件系统把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群
    与之前使用多个处理器和专用高级硬件的并行化处理装置不同的是,目前的分布式文件系统所采用的计算机集群,都是由普通硬件构成的,这就大大降低了硬件上的开销
    如图展示:
    在这里插入图片描述
    在这里插入图片描述

  • MapReduce
    如果说HBase用于数据存储,那么MapReduce用于数据处理
    具体介绍如下:
    MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数:Map和Reduce
    编程容易,不需要掌握分布式并行编程细节,也可以很容易把自己的程序运行在分布式系统上,完成海量数据的计算
    MapReduce采用“分而治之”策略,一个存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理
    MapReduce设计的一个理念就是“计算向数据靠拢”,而不是“数据向计算靠拢”,因为,移动数据需要大量的网络传输开销
    MapReduce框架采用了Master/Slave架构,包括一个Master和若干个Slave。Master上运行JobTracker,Slave上运行TaskTracker
    Hadoop框架是用Java实现的,但是,MapReduce应用程序则不一定要用Java来写

具有核心函数Map和Reduce

  • Spark
    Spark翻译过来为计算引擎,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

Spark历史:
Spark最初由美国加州伯克利大学(UCBerkeley)的AMP实验室于2009年开发,是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序

2013年Spark加入Apache孵化器项目后发展迅猛,如今已成为Apache软件基金会最重要的三大分布式计算系统开源项目之一(Hadoop、Spark、Storm)

Spark在2014年打破了Hadoop保持的基准排序纪录
Spark/206个节点/23分钟/100TB数据
Hadoop/2000个节点/72分钟/100TB数据
Spark用十分之一的计算资源,获得了比Hadoop快3倍的速度

  • Storm
    分布式实时流计算框架 Storm 广泛应用于实时日志分析、个性化推荐、实时监控等应用场景中。本教程介绍了如何在单机上安装、运行 Storm。本教程在 CentOS 6.4 系统、Storm 0.9.6 版本的环境中验证通过,理论上同样适用于 Ubuntu 等 Linux 系统。

Storm最初由Nathan Marz和BackType的团队创建。BackType是一家社交分析公司。后来,Storm被收购,并通过Twitter开源。在短时间内,Apache Storm成为分布式实时处理系统的标准,允许您处理大量的数据,类似于Hadoop。Apache Storm是用Java和Clojure写的。它仍然是实时分析的领导者。本教程将探讨Apache Storm的原理,分布式消息传递,安装,创建Storm拓扑并将其部署到Storm集群,Trident的工作流程,实时应用程序,最后总结一些有用的例子。

最后推荐学习网站:厦门大学数据库实验室

发布了49 篇原创文章 · 获赞 198 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_36696486/article/details/93903498