主页 > imtoken 观察钱包 > 大数据的核心技术有哪些?

大数据的核心技术有哪些?

imtoken 观察钱包 2023-07-14 05:17:59

1 大数据生命周期

图 1 显示了一个典型的大数据技术堆栈。最底层是基础设施,涵盖计算资源、内存和存储、网络互联,具体体现在计算节点、集群、机柜、数据中心。最重要的是数据存储和管理,包括文件系统、数据库和类似 YARN 的资源管理系统。然后是计算处理层,比如hadoop、MapReduce、Spark,以及上面的各种计算范式,比如批处理、流处理、图计算,包括衍生编程模型的计算模型,比如BSP、GAS、等等。

数据分析和可视化基于计算处理层。分析包括简单的查询分析、流式分析,以及更复杂的分析(如机器学习、图计算等)。查询分析多基于表结构和关系函数,流分析基于数据、事件流和简单的统计分析,而复杂分析基于更复杂的数据结构和方法,如图形、矩阵、迭代计算等线性代数。一般来说,可视化是分析结果的呈现。但是通过交互式可视化,你也可以探索性地提问,让分析获得新的线索,形成迭代的分析和可视化。基于海量数据的实时交互式可视化分析以及在此过程中引入自动化的因素是当前的研究热点。

有两个领域是垂直穿透上述层级的,需要整体、协同地看待。首先是编程和管理工具。方向是机器可以通过学习实现自动优化,尽可能不用编程和复杂的配置。另一个领域是数据安全,它也贯穿整个技术栈。除了这两个领域的纵向连接,还有一些跨越多个层面的技术方向,比如“内存计算”实际上覆盖了整个技术栈。

2.大数据技术生态

大数据的基本处理流程与传统的数据处理流程没有太大区别。主要区别在于:因为大数据需要处理大量的、非结构化的数据,所以每个处理环节都可以采用并行处理。目前,Hadoop、MapReduce、Spark等分布式处理方式已经成为大数据处理各方面的常用处理方式。

Hadoop 是一个分布式计算平台,允许用户轻松构建和使用。用户可以在 Hadoop 上轻松开发和运行处理海量数据的应用程序。 Hadoop 是一个数据管理系统,作为数据分析的核心,将分布在传统企业数据堆栈每一层的结构化和非结构化数据汇集在一起​​。 Hadoop 也是一个具有超级计算能力的大规模并行处理框架,定位于驱动企业级应用程序的执行。 Hadoop是一个开源社区,主要提供解决大数据问题的工具和软件。尽管 Hadoop 提供了很多功能,但它仍然应该被归类为由多个组件组成的 Hadoop 生态系统,包括数据存储、数据集成、数据处理和其他用于数据分析的专用工具。 Hadoop生态系统如图2所示,主要由HDFS、MapReduce、Hbase、Zookeeper、Oozie、Pig、Hive等核心组件组成,还包括Sqoop、Flume等框架,用于与其他企业集成。与此同时,Hadoop 生态系统也在不断发展,新增了 Mahout、Ambari、Whirr、BigTop 等以提供更新的功能。

低成本、高可靠性、高扩展性、高效率、高容错性的特点使Hadoop成为最流行的大数据分析系统。幸存下来的 HDFS 和 MapReduce 组件让它一度陷入困境——批处理的方式使得它只适合离线数据处理,在需要实时性的场景下毫无用处。因此,各种基于Hadoop的工具应运而生。为了降低管理成本,提高资源利用率,有很多统一的资源管理和调度系统,比如 Twitter 的 Apache Mesos、Apache 的 YARN、谷歌的 Borg、腾讯搜搜的 Torca、Facebook Corona(开源)等。 Apache 孵化器中的开源项目。它使用 ZooKeeper 实现容错复制,使用 Linux Containers 隔离任务,并支持多种资源规划分配(内存和 CPU)。跨分布式应用程序和框架提供高效的资源隔离和共享,支持 Hadoop、MPI、Hypertable、Spark 等。 YARN 也称为 MapReduce 2.0。 YARN借鉴Mesos,提出了资源隔离方案Container,提供Java虚拟机内存隔离。与 MapReduce1.0 相比,开发者使用 ResourceManager、ApplicationMaster 和 NodeManager 来替代原有框架中的核心 JobTracker 和 TaskTracker。可以在YARN平台上运行MR、Tez、Storm、Spark等多种计算框架。

根据业务的实时性要求核心技术有哪些,有Storm、支持在线处理的Cloudar Impala、支持迭代计算的Spark、流处理框架S4。 Storm 是由 BackType 开发的分布式、容错实时计算系统,后来被 Twitter 捕获。 Storm 是一个流处理平台,主要用于实时计算和更新数据库。 Storm还可以用于“连续计算”,对数据流进行连续查询,计算时将结果以流的形式输出给用户。它还可以用于“分布式 RPC”以并行运行昂贵的操作。 Cloudera Impala 由开源大规模并行处理 (MPP) 查询引擎 Cloudera 开发。与 Hive 相同的元数据、SQL 语法、ODBC 驱动程序和用户界面 (HueBeeswax) 可直接在 HDFS 或 HBase 上提供快速的交互式 SQL 查询。 Impala 是在 Dremel 的启发下开发的,不再使用缓慢的 Hive+MapReduce 批处理,而是通过类似于商业并行关系数据库中的分布式查询引擎(由 Query Planner、Query Coordinator 和 Query Exec Engine 组成)。组合),可以直接从HDFS或HBase中查询数据,具有SELECT、JOIN和统计功能,从而大大减少延迟。

Hadoop 社区正在努力扩展现有的计算模型框架和平台,以解决现有版本在计算性能、计算模型、系统架构和处理能力方面的诸多不足,这正是 Hadoop< @2.0 版本“纱线”努力。多种计算模式也可以与内存计算模式混合,实现高实时性的大数据查询和计算分析。混合计算模型的巅峰之作是加州大学伯克利分校 AMP 实验室开发的 Spark 生态系统,如图 3 所示。Spark 是一个开源的类似 Hadoop MapReduce 的通用数据分析集群计算框架,用于构建大规模、低基于 HDFS 构建的延迟数据分析应用程序。 Spark提供了强大的内存计算引擎,几乎涵盖了所有典型的大数据计算模式,包括迭代计算、批处理计算、内存计算、流计算(Spark Streaming)、数据查询分析计算(Shark)、图计算(图X))。 Spark 使用 Scala 作为应用程序框架,并使用针对迭代工作负载和交互式查询优化的内存分布式数据集。与 Hadoop 不同,Spark 和 Scala 紧密集成,Scala 管理分布式数据集,如本地集合对象。 Spark 支持分布式数据集上的迭代任务,并且实际上可以在 Hadoop 文件系统上与 Hadoop 一起运行(通过 YARN、Mesos 等)。此外,基于对性能、兼容性、数据类型的研究,还有 Shark、Phoenix、Apache Accumulo、Apache Drill、Apache Giraph、Apache Hama、Apache Tez、Apache Ambari 等其他开源解决方案。在未来很长一段时间内,改进后的主流Hadoop平台将与各种新的计算模型和系统共存,相互融合,形成新一代的大数据处理系统和平台。

3.大数据采集与预处理

在大数据的生命周期中,数据采集是第一个环节。根据从 MapReduce 生成数据的应用系统分类,大数据收集的主要来源有四个:管理信息系统、Web 信息系统、物理信息系统和科学实验系统。对于不同的数据集,可能存在不同的结构和模式,例如文件、XML树、关系表等,表现为数据异构。对于多个异构数据集,需要进一步的整合处理或整合处理。对不同数据集的数据进行收集、整理、清洗、转换后,生成一个新的数据集,为后续的查询和分析处理提供统一的数据集。数据视图。在管理信息系统中的异构数据库集成技术、Web信息系统中的实体识别技术和DeepWeb集成技术、传感器网络数据融合技术等方面做了大量的研究工作,取得了长足的进步,多种数据清洗和质量控制工具,例如美国SAS公司的Data Flux、美国IBM公司的Data Stage、美国Informatica公司的Informatica Power Center。

4.大数据存储与管理

传统的数据存储和管理以结构化数据为主,因此关系型数据库系统(RDBMS)可以一统天下,满足各种应用需求。大数据往往以半结构化和非结构化数据为主,结构化数据为辅,各种大数据应用通常是对不同类型数据内容的检索、交叉比较、深度挖掘和综合分析。面对这样的应用需求,传统数据库在技术和功能上都难以为继。因此,近年来出现了oldSQL、NoSQL和NewSQL并存的情况。一般来说,根据不同的数据类型,大数据的存储和管理采用不同的技术路线,大致可以分为三类。类型 1 主要处理大规模结构化数据。对于这种类型的大数据,通常会使用新的数据库集群。它们通过列存储或行列混合存储和粗粒度索引,结合MPP(Massive Parallel Processing)架构的高效分布式计算模式,实现PB级数据的存储和管理。该类集群具有高性能、高扩展性等特点,已广泛应用于企业分析应用领域;

第二种主要处理半结构化和非结构化数据。针对此类应用场景,基于Hadoop开源系统的系统平台更胜一筹。他们通过对Hadoop生态系统的技术扩展和封装,实现半结构化和非结构化数据的存储和管理;因此,采用MPP并行数据库集群和Hadoop集群的混合,实现数百PB和EB级数据的存储和管理。一方面,MPP用于管理和计算高质量的结构化数据,提供强大的SQL和OLTP类型的服务;另一方面,Hadoop用于处理半结构化和非结构化数据,以支持内容检索、深度挖掘和综合分析等新应用。这种混合模式将是未来大数据存储与管理的发展趋势。

5.大数据计算模型和系统

计算模型的出现有力地推动了大数据技术和应用的发展,使其成为最成功、最被广泛接受的主流大数据计算模型。然而,现实世界中的大数据处理问题复杂多样,很难有一个单一的计算模型能够涵盖所有不同的大数据计算需求。在研究和实际应用中发现,由于MapReduce主要适用于大数据的离线批处理,在面对数据关系复杂、计算复杂的低延迟和大数据问题时存在很大的不兼容。因此,近年来,学术界和工业界不断研究和推出各种不同的大数据计算模型。

所谓大数据计算模式,是指从各种大数据计算问题中提取建立起来的各种高级抽象或模型(abstraction)或模型(abstractions or models(abstractions)或模型(abstractions or models))以及根据大数据不同的数据特​​性和计算特性要求的模型)。例如,MapReduce 是一种并行计算抽象,加州大学伯克利分校著名的 Spark 系统中的“分布式内存抽象 RDD”,CMU 著名的图形计算系统 GraphLab 中的“Graph Parallel Abstraction”等。并行计算方法主要从架构和编程语言层面定义了一些比较底层的并行计算抽象和模型。但是,由于大数据处理问题有很多高级数据特征和计算特征,大数据处理需要更多地结合这些高级特征来考虑更高级的计算模型。

根据大数据处理的多样化需求和上述不同的特征维度,出现了多种典型且重要的大数据计算模型。适应这些计算模式,出现了许多相应的大数据计算系统和工具。由于简单描述计算模式比较抽象和空洞,所以在描述不同的计算模式时,会同时给出对应的典型计算系统和工具,如表1所示,有助于理解计算模式和计算模式。技术的发展。掌握现状,有利于在实际大数据处理应用中选择和使用合适的计算技术和系统工具。

6.大数据分析与可视化

在大数据时代,人们迫切希望以机器学习算法为核心的高性能数据分析在大规模集群上实现,为实际业务提供服务和指导,进而实现数据的最终变现。不同于传统的在线分析处理OLAP,大数据的深度分析主要基于大规模机器学习技术。一般来说,机器学习模型的训练过程可以归结为在大规模训练数据上定义的目标函数的优化。并且是通过循环迭代算法实现的,如图4所示。因此,与传统的OLAP相比,基于机器学习的大数据分析有其独特的特点。

(1)迭代:由于优化问题通常没有封闭形式的解,无法一次性完成模型参数的确定。循环迭代逐步逼近最优值点。

(2)容错性:机器学习的算法设计和模型评估可以容忍非最优值点的存在,同时多次迭代的特点也允许产生一些误差循环的过程,不影响模型的最终收敛。

(3)参数收敛的不均匀性:模型中的一些参数经过几次迭代后会改变不会改变,而有些参数需要很长时间才能达到收敛。

这些特点决定了理想的大数据分析系统的设计与其他计算系统的设计截然不同。分布式计算系统用于大数据分析,很大一部分资源浪费在通信、等待、协调等低效计算上。

传统的分布式计算框架MPI(message passing interface,信息传递接口)虽然编程接口灵活强大,但由于编程接口复杂,对容错的支持不高,无法支持对大规模数据的复杂操作计算框架服务于大数据分析算法,以MapReduce、Spark、参数服务器ParameterServer为代表。

分布式计算框架MapReduce将数据的处理简化为Map和Reduce两种操作,从而简化了编程接口,提高了系统的容错能力。但是,MapReduce 受制于对数据操作的过度简化抽象,并且不支持循环迭代,因此对复杂的机器学习算法的支持较差。 Mahout是一个基于MapReduce的分布式机器学习库,需要将迭代操作分解为多个连续的Map和Reduce操作,将上一轮循环的操作结果通过读写HDFS文件转移到下一轮来完成数据交换。在这个过程中,大量的训练时间都花在了磁盘上,训练效率非常低。为了解决 MapReduce 的上述问题,Spark 基于 RDD 定义了更丰富的数据操作接口,包括 Map 和 Reduce。与 MapReduce 不同的是,Job 的中间输出和结果可以存储在内存中,这些特性使得 Spark 更适合数据挖掘和机器学习等迭代大数据分析算法。基于Spark实现的机器学习算法库MLLIB已经显示出其相对Mahout的优势,已在实际应用系统中得到广泛应用。

近年来,随着待分析数据规模的迅速扩大,分析模型的参数也在快速增长,对现有的大数据分析模型提出了挑战。例如,在大规模的主题模型LDA中,人们期望在训练中得到超过一百万个主题,因此在训练过程中可能需要更新数百亿甚至上千亿的模型参数,这远远超出单个节点的处理。能力。为了解决上述问题,研究人员提出了参数服务器(Parameter Server)的概念,如图5所示。在参数服务器系统中,大规模模型参数集中存储在分布式服务器集群中,大规模训练数据分布在不同的工作节点上,每个工作节点只需要保存自己的计算量,只需要少量的参数,有效解决了超大规模大数据分析模型的训练问题。目前参数服务器的实现主要有卡内基梅隆大学的Petuum和PSLit。

在大数据分析的应用过程中,可视化通过交互式的可视化表示帮助人们探索和理解复杂的数据。可视化和可视化分析可以快速有效地简化和细化数据流,帮助用户交互过滤大量数据,帮助用户更快更好地从复杂数据中获得新的发现,帮助用户理解复杂数据,为开发者提供不可缺少的工具深入分析。

大规模数据的可视化主要基于并行算法设计技术核心技术有哪些,合理利用有限的计算资源,对特定数据集的特征进行高效处理和分析。通常,大规模数据可视化技术结合了多分辨率表示等方法,以获得足够的交互性能。在科学大规模数据的并行可视化中,主要涉及到四种基础技术:数据精简、任务并行化、流水线并行化和数据并行化。成都佳米谷大数据分析课程,理论+代码+实战+实操的独特课程体系。

原创:成都杰米谷大数据分析必须掌握的6大核心技术_杰米谷大数据_新浪博客