大数据概念与术语简介

介绍

大数据是一个总称,用于描述从大型数据集中收集、组织、处理和获取见解所需的非传统策略和技术。虽然处理超出单台计算机的计算能力或存储容量的数据并不是一个新问题,但近年来,这种类型的计算的普及性、规模和价值大大扩展。

在本文中,我们将从基本层面讨论大数据,并定义您在研究该主题时可能遇到的常见概念。我们还将高层次地审视当前在这一领域使用的一些流程和技术。

什么是大数据?

“大数据”的确切定义很难确定,因为项目、供应商、从业者和业务专业人士使用它的方式各不相同。考虑到这一点,一般来说,大数据是指:

  • 大型数据集
  • 用于处理大型数据集的计算策略和技术类别

在这种情况下,“大型数据集”意味着使用传统工具或单台计算机无法合理处理或存储的数据集。这意味着大数据集的常见规模不断变化,可能在组织之间有很大差异。

为什么大数据系统不同?

处理大数据的基本要求与处理任何大小的数据集的要求相同。然而,在设计解决方案时,大规模、数据摄取和处理速度以及必须在每个阶段处理的数据特征等方面的巨大规模带来了重大挑战。大多数大数据系统的目标是从异构数据的大量数据中挖掘见解和联系,这是使用传统方法无法实现的。

2001年,Gartner的Doug Laney首次提出了后来被称为“大数据的三个V”的概念,以描述大数据与其他数据处理方式不同的一些特征:

体积

所处理信息的规模之巨帮助定义了大数据系统。这些数据集的规模可能比传统数据集大几个数量级,这要求在处理和存储生命周期的每个阶段都需要更多的思考。

通常,由于工作需求超出了单台计算机的能力,这就成为了从一组计算机中汇集、分配和协调资源的挑战。集群管理和能够将任务分解为较小部分的算法变得越来越重要。

速度

大数据与其他数据系统显著不同的另一方面是信息在系统中传输的速度。数据经常从多个来源流入系统,并且通常期望实时处理数据以获取见解并更新对系统的当前理解。

这种对近乎即时反馈的关注已经使许多大数据从业者远离了批处理方法,更靠近实时流处理系统。数据不断被添加、整理、处理和分析,以跟上新信息的涌入,并在最相关时尽早呈现有价值的信息。这些想法需要具有高可用组件的强大系统,以防止数据管道中的故障。

多样性

由于正在处理的来源和它们的相对质量的广泛范围,大数据问题通常是独特的。

数据可以从内部系统(如应用程序和服务器日志)、社交媒体源和其他外部API、物理设备传感器以及其他提供者那里摄取。大数据试图处理潜在有用的数据,无论其来源如何,通过将所有信息整合到一个系统中。

媒体的格式和类型也可能有很大的变化。图像、视频文件和音频记录等丰富媒体与文本文件、结构化日志等一起被摄取。而传统的数据处理系统可能期望数据进入管道时已经被标记、格式化和组织,大数据系统通常接受并存储接近其原始状态的数据。理想情况下,任何对原始数据的转换或更改将在处理时在内存中进行。

其他特征

各种个人和组织已经提出扩展最初的三个V的建议,尽管这些提议往往描述的是大数据的挑战而不是特性。一些常见的补充包括:

  • 真实性:来源的多样性和处理的复杂性可能导致评估数据质量(因此,分析结果的质量)的挑战。
  • 可变性:数据的变化导致质量的广泛变化。可能需要额外的资源来识别、处理或过滤低质量的数据,使其更有用。
  • 价值:大数据的最终挑战是提供价值。有时,系统和流程足够复杂,以至于使用数据和提取实际价值变得困难。

大数据生命周期是什么样的?

那么,在处理大数据系统时,数据实际上是如何处理的呢?虽然实施方法有所不同,但在我们可以一般性地讨论的策略和软件中存在一些共同点。虽然下面提出的步骤可能并非在所有情况下都成立,但它们被广泛使用。

大数据处理涉及的一般活动类别包括:

  • 将数据摄入系统
  • 将数据持久化存储
  • 计算和分析数据
  • 可视化结果

在我们详细讨论这四个工作流类别之前,我们将花一点时间谈谈集群计算,这是大多数大数据解决方案采用的重要策略。设置计算集群通常是每个生命周期阶段使用的技术的基础。

集群计算

由于大数据的特性,单个计算机在大多数阶段处理数据时往往是不够的。为了更好地满足大数据的高存储和计算需求,计算机集群是更合适的选择。

大数据集群软件结合了许多较小机器的资源,旨在提供一些好处:

  • 资源池化:合并可用存储空间以存储数据是一个明显的好处,但CPU和内存的池化也非常重要。处理大型数据集需要大量这三种资源。
  • 高可用性:集群可以提供不同级别的容错和可用性保证,以防止硬件或软件故障影响对数据和处理的访问。随着我们继续强调实时分析的重要性,这变得越来越重要。
  • 易于扩展性:集群通过添加额外的机器来水平扩展,这意味着系统可以根据资源需求的变化做出反应,而无需扩展机器的物理资源。

使用集群需要解决管理集群成员资格、协调资源共享以及在单个节点上调度实际工作的解决方案。集群成员资格和资源分配可以由诸如Hadoop的YARN(代表Yet Another Resource Negotiator)或Apache Mesos等软件来处理。

组装的计算集群通常作为其他软件与之交互以处理数据的基础。参与计算集群的机器通常也涉及分布式存储系统的管理,我们将在讨论数据持久性时详细介绍。

将数据导入系统

数据摄取是将原始数据添加到系统的过程。这个操作的复杂性在很大程度上取决于数据源的格式和质量,以及数据在处理之前离所需状态的距离。

将数据添加到大数据系统的一种方式是使用专用的摄取工具。像Apache Sqoop这样的技术可以从关系数据库中获取现有数据并将其添加到大数据系统中。同样,Apache FlumeApache Chukwa是旨在聚合和导入应用程序和服务器日志的项目。队列系统如Apache Kafka也可以用作各种数据生成器和大数据系统之间的接口。摄取框架如Gobblin可以帮助聚合和规范化摄取管道末端的这些工具的输出。

在摄取过程中,通常会进行一定程度的分析、排序和标记。这个过程有时被称为ETL,即提取、转换和加载。虽然这个术语传统上是指传统数据仓库处理过程,但其中一些概念也适用于进入大数据系统的数据。典型的操作可能包括修改传入数据的格式、对数据进行分类和标记、过滤掉不需要的或不良的数据,或者验证其是否符合某些要求。

考虑到这些能力,理想情况下,捕获的数据应尽可能保持原始,以便在管道的后续阶段具有更大的灵活性。

将数据持久化存储

摄取过程通常将数据交给管理存储的组件,以便可靠地将其持久化到磁盘。虽然这似乎是一个简单的操作,但是大量的传入数据、可用性要求和分布式计算层使得更复杂的存储系统是必要的。

这通常意味着利用分布式文件系统进行原始数据存储。像Apache Hadoop的HDFS文件系统这样的解决方案允许大量数据被写入到集群中的多个节点。这确保了数据可以被计算资源访问,可以被加载到集群的内存中进行内存操作,并且可以优雅地处理组件故障。除了HDFS,还可以使用其他分布式文件系统,包括CephGlusterFS

数据也可以被导入到其他分布式系统以获得更结构化的访问。分布式数据库,特别是NoSQL数据库,非常适合这个角色,因为它们通常考虑了相同的容错考虑因素,并且可以处理异构数据。根据您想要组织和呈现数据的方式,可以选择许多不同类型的分布式数据库。要了解更多关于一些选项以及它们最适合的用途,请阅读我们的NoSQL比较指南。

计算和分析数据

一旦数据可用,系统就可以开始处理数据以呈现实际信息。计算层可能是系统中最多样化的部分,因为所需的要求和最佳方法可能会因所需的洞察类型而有很大差异。数据通常会被重复处理,要么是由单个工具进行迭代处理,要么是通过使用多个工具来呈现不同类型的洞察。

批处理是一种处理大型数据集的方法。该过程涉及将工作分解为较小的部分,在每个机器上调度每个部分,根据中间结果重新排列数据,然后计算和组装最终结果。这些步骤通常分别被称为拆分、映射、洗牌、减少和组装,或者统称为分布式映射减少算法。这是Apache Hadoop的MapReduce所使用的策略。批处理在处理需要大量计算的非常大型数据集时最有用。

虽然批处理适用于某些类型的数据和计算,但其他工作负载需要更多的实时处理。实时处理要求信息被立即处理并准备就绪,并要求系统在新信息可用时做出反应。实现这一点的一种方式是流处理,它在由单个项目组成的连续数据流上运行。实时处理器的另一个常见特征是内存计算,它使用集群内存中的数据表示,以避免必须写回磁盘。

Apache StormApache FlinkApache Spark提供了实现实时或准实时处理的不同方式。每种技术都有其权衡,这可能会影响哪种方法最适合任何个体问题。一般来说,实时处理最适合分析变化或快速添加到系统中的较小数据块。

上述示例代表了计算框架。然而,在大数据系统中,还有许多其他计算或分析数据的方式。这些工具经常插入到上述框架中,并提供与底层层交互的附加接口。例如,Apache Hive提供了Hadoop的数据仓库接口,Apache Pig提供了高级查询接口,而可以使用类似SQL的方式与数据进行交互的项目包括Apache DrillApache ImpalaApache Spark SQLPresto。对于机器学习,像Apache SystemMLApache MahoutApache Spark的MLlib这样的项目可能会很有用。对于在大数据生态系统中得到广泛支持的直接分析编程,RPython都是受欢迎的选择。

可视化结果

由于大数据系统中处理的信息类型,识别数据随时间变化的趋势或变化通常比数值本身更重要。可视化数据是发现趋势并理解大量数据点的最有用的方法之一。

实时处理经常用于可视化应用程序和服务器指标。数据经常变化,指标中的大变化通常表明对系统或组织的健康产生重大影响。在这些情况下,像 Prometheus 这样的项目可以用于处理数据流作为时间序列数据库,并可视化该信息。

一种常用的数据可视化方式是使用 Elastic Stack,以前被称为 ELK stack。由 Logstash 用于数据收集,Elasticsearch 用于索引数据,以及 Kibana 用于可视化组成,Elastic stack 可以与大数据系统一起用于直观地查看计算结果或原始指标。使用 Apache Solr 进行索引和名为 Banana 的 Kibana 分支进行可视化可以实现类似的堆栈。由此创建的堆栈称为 Silk

通常用于交互式数据科学工作的另一种可视化技术是数据“笔记本”。这些项目允许以交互方式探索和可视化数据,以便分享、展示或协作。这类可视化界面的常见示例包括 Jupyter NotebookApache Zeppelin

大数据术语表

虽然我们在整个指南中尝试在使用时定义概念,但有时将专业术语集中在一个地方会很有帮助:

  • 大数据:大数据是指由于其数据量、速度和多样性而无法通过传统计算机或工具合理处理的数据集的总称。这个术语通常也适用于处理这种类型数据的技术和策略。
  • 批处理:批处理是一种涉及以大批量处理数据的计算策略。这通常适用于非时间敏感的工作,适用于非常大的数据集。该过程在系统中启动,稍后系统返回结果。
  • 集群计算:集群计算是将多台计算机的资源汇集起来,管理它们的集体能力以完成任务的实践。计算机集群需要一个集群管理层,该层处理单个节点之间的通信并协调工作分配。
  • 数据湖:数据湖是指相对原始状态下收集的大型数据存储库的术语。这经常用于指代大数据系统中收集的可能是非结构化且经常变化的数据。这与数据仓库(下文定义)的精神不同。
  • 数据挖掘:数据挖掘是试图在大型数据集中找到模式的广义术语。这是将大量数据精炼为更可理解和连贯的信息集的过程。
  • 数据仓库:数据仓库是可用于分析和报告的大型有序数据存储库。与 数据湖 相反,数据仓库由已经清理、与其他来源集成并且通常有序的数据组成。数据仓库通常与大数据相关,但通常是更传统系统的组成部分。
  • ETL:ETL 指的是抽取、转换和加载。它指的是将原始数据准备为系统使用的过程。传统上,这是与数据仓库相关的过程,但这个过程的特征也在大数据系统的摄取管道中找到。
  • Hadoop:Hadoop 是大数据早期的开源成功项目。它由一个名为 HDFS 的分布式文件系统组成,上面有一个名为 YARN(Yet Another Resource Negotiator)的集群管理和资源调度器。MapReduce 计算引擎提供了批处理能力。在现代 Hadoop 部署中,MapReduce 旁边可以运行其他计算和分析系统。
  • 内存计算:内存计算是一种策略,它涉及将工作数据集完全移动到集群的集体内存中。中间计算不会写入磁盘,而是保存在内存中。这使得像 Apache Spark 这样的内存计算系统在速度上比像 Hadoop 的 MapReduce 这样的 I/O 限制系统具有巨大优势。
  • 机器学习:机器学习是设计能够根据输入的数据学习、调整和改进的系统的研究和实践。这通常涉及实施可以不断聚焦于“正确”行为和见解的预测和统计算法,随着更多数据流经系统。
  • Map reduce(大数据算法):Map reduce(大数据算法,而不是 Hadoop 的 MapReduce 计算引擎)是一种用于在计算集群上调度工作的算法。该过程涉及将问题集拆分(映射到不同节点)并在其上计算以生成中间结果,通过整理结果以对齐相似集,然后通过输出单个值来减少结果。
  • NoSQL:NoSQL 是一个广义术语,指的是在传统关系模型之外设计的数据库。与关系数据库相比,NoSQL 数据库有不同的权衡,但由于其灵活性和频繁的分布式优先架构,通常非常适合大数据系统。
  • 流处理:流处理是在数据项通过系统时对其进行计算的实践。这允许对馈送到系统的数据进行实时分析,并且对使用高速度指标进行时间敏感操作非常有用。

结论

大数据是一个广泛而快速发展的主题。虽然它并不适合所有类型的计算,但许多组织正在将大数据用于某些工作负载,并用它来补充其现有的分析和业务工具。大数据系统非常适合发现难以检测的模式,并提供对通过常规手段无法发现的行为的洞察。通过正确实施处理大数据的系统,组织可以从已有的数据中获得令人难以置信的价值。

原文地址:https://blog.csdn.net/rubys007/article/details/135942872

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读5.3k次,点赞10次,收藏39次。本章详细写了mysql的安装,环境的搭建以及安装时常见的问题和解决办法。_mysql安装及配置超详细教程
文章浏览阅读1.8k次,点赞50次,收藏31次。本篇文章讲解Spark编程基础这门课程的期末大作业,主要围绕Hadoop基本操作、RDD编程、SparkSQL和SparkStreaming编程展开。_直接将第4题的计算结果保存到/user/root/lisi目录中lisipi文件里。
文章浏览阅读7.8k次,点赞9次,收藏34次。ES查询常用语法目录1. ElasticSearch之查询返回结果各字段含义2. match 查询3. term查询4. terms 查询5. range 范围6. 布尔查询6.1 filter加快查询效率的原因7. boosting query(提高查询)8. dis_max(最佳匹配查询)9. 分页10. 聚合查询【内含实际的demo】_es查询语法
文章浏览阅读928次,点赞27次,收藏18次。
文章浏览阅读1.1k次,点赞24次,收藏24次。作用描述分布式协调和一致性协调多个节点的活动,确保一致性和顺序。实现一致性、领导选举、集群管理等功能,确保系统的稳定和可靠性。高可用性和容错性Zookeeper是高可用的分布式系统,通过多个节点提供服务,容忍节点故障并自动进行主从切换。作为其他分布式系统的高可用组件,提供稳定的分布式协调和管理服务,保证系统的连续可用性。配置管理和动态更新作为配置中心,集中管理和分发配置信息。通过订阅机制,实现对配置的动态更新,以适应系统的变化和需求的变化。分布式锁和并发控制。
文章浏览阅读1.5k次,点赞26次,收藏29次。为贯彻执行集团数字化转型的需要,该知识库将公示集团组织内各产研团队不同角色成员的职务“职级”岗位的评定标准;
文章浏览阅读1.2k次,点赞26次,收藏28次。在安装Hadoop之前,需要进行以下准备工作:确认操作系统:Hadoop可以运行在多种操作系统上,包括Linux、Windows和Mac OS等。选择适合你的操作系统,并确保操作系统版本符合Hadoop的要求。安装Java环境:Hadoop是基于Java开发的,因此需要先安装和配置Java环境。确保已经安装了符合Hadoop版本要求的Java Development Kit (JDK),并设置好JAVA_HOME环境变量。确认硬件要求:Hadoop是一个分布式系统,因此需要多台计算机组成集群。
文章浏览阅读974次,点赞19次,收藏24次。# 基于大数据的K-means广告效果分析毕业设计 基于大数据的K-means广告效果分析。
文章浏览阅读1.7k次,点赞6次,收藏10次。Hadoop入门理论
文章浏览阅读1.3w次,点赞28次,收藏232次。通过博客和文献调研整理的一些农业病虫害数据集与算法。_病虫害数据集
文章浏览阅读699次,点赞22次,收藏7次。ZooKeeper使用的是Zab(ZooKeeper Atomic Broadcast)协议,其选举过程基于一种名为Fast Leader Election(FLE)的算法进行。:每个参与选举的ZooKeeper服务器称为一个“Follower”或“Candidate”,它们都有一个唯一的标识ID(通常是一个整数),并且都知道集群中其他服务器的ID。总之,ZooKeeper的选举机制确保了在任何时刻集群中只有一个Leader存在,并通过过半原则保证了即使部分服务器宕机也能维持高可用性和一致性。
文章浏览阅读10w+次,点赞62次,收藏73次。informatica 9.x是一款好用且功能强大的数据集成平台,主要进行各类数据库的管理操作,是使用相当广泛的一款ETL工具(注: ETL就是用来描述将数据从源端经过抽取(extract)、转换(transform)、加载(load)到目的端的过程)。本文主要为大家图文详细介绍Windows10下informatica powercenter 9.6.1安装与配置步骤。文章到这里就结束了,本人是在虚拟机中装了一套win10然后在此基础上测试安装的这些软件,因为工作学习要分开嘛哈哈哈。!!!!!_informatica客户端安装教程
文章浏览阅读7.8w次,点赞245次,收藏2.9k次。111个Python数据分析实战项目,代码已跑通,数据可下载_python数据分析项目案例
文章浏览阅读1.9k次,点赞61次,收藏64次。TDH企业级一站式大数据基础平台致力于帮助企业更全面、更便捷、更智能、更安全的加速数字化转型。通过数年时间的打磨创新,已帮助数千家行业客户利用大数据平台构建核心商业系统,加速商业创新。为了让大数据技术得到更广泛的使用与应用从而创造更高的价值,依托于TDH强大的技术底座,星环科技推出TDH社区版(Transwarp Data Hub Community Edition)版本,致力于为企业用户、高校师生、科研机构以及其他专业开发人员提供更轻量、更简单、更易用的数据分析开发环境,轻松应对各类人员数据分析需求。_星环tdh没有hive
文章浏览阅读836次,点赞21次,收藏19次。
文章浏览阅读1k次,点赞21次,收藏15次。主要介绍ETL相关工作的一些概念和需求点
文章浏览阅读1.4k次。本文以Android、java为开发技术,实现了一个基于Android的博物馆线上导览系统 app。基于Android的博物馆线上导览系统 app的主要使用者分为管理员和用户,app端:首页、菜谱信息、甜品信息、交流论坛、我的,管理员:首页、个人中心、用户管理、菜谱信息管理、菜谱分类管理、甜品信息管理、甜品分类管理、宣传广告管理、交流论坛、系统管理等功能。通过这些功能模块的设计,基本上实现了整个博物馆线上导览的过程。
文章浏览阅读897次,点赞19次,收藏26次。1.背景介绍在当今的数字时代,数据已经成为企业和组织中最宝贵的资源之一。随着互联网、移动互联网和物联网等技术的发展,数据的产生和收集速度也急剧增加。这些数据包括结构化数据(如数据库、 spreadsheet 等)和非结构化数据(如文本、图像、音频、视频等)。这些数据为企业和组织提供了更多的信息和见解,从而帮助他们做出更明智的决策。业务智能(Business Intelligence,BI)...
文章浏览阅读932次,点赞22次,收藏16次。也就是说,一个类应该对自己需要耦合或调用的类知道的最少,类与类之间的关系越密切,耦合度越大,那么类的变化对其耦合的类的影响也会越大,这也是我们面向对象设计的核心原则:低耦合,高内聚。优秀的架构和产品都是一步一步迭代出来的,用户量的不断增大,业务的扩展进行不断地迭代升级,最终演化成优秀的架构。其根本思想是强调了类的松耦合,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会波及有关系的类。缓存,从操作系统到浏览器,从数据库到消息队列,从应用软件到操作系统,从操作系统到CPU,无处不在。
文章浏览阅读937次,点赞22次,收藏23次。大数据可视化是关于数据视觉表现形式的科学技术研究[9],将数据转换为图形或图像在屏幕上显示出来,并进行各种交互处理的理论、方法和技术。将数据直观地展现出来,以帮助人们理解数据,同时找出包含在海量数据中的规律或者信息,更多的为态势监控和综合决策服务。数据可视化是大数据生态链的最后一公里,也是用户最直接感知数据的环节。数据可视化系统并不是为了展示用户的已知的数据之间的规律,而是为了帮助用户通过认知数据,有新的发现,发现这些数据所反映的实质。大数据可视化的实施是一系列数据的转换过程。