热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ApacheHiveVSSpark:不同目的,同样成功!

全文共2283字,预计学习时长5分钟图片来源:pexels.comphotosliced-lemon-952354Hive和Spark凭借其在处理大规模数据方面的优势大获成功,换句

全文共
2283字,预计学习时长
5分钟

《Apache Hive VS Spark:不同目的,同样成功!》
《Apache Hive VS Spark:不同目的,同样成功!》 图片来源:pexels.com/photo/sliced-lemon-952354/

Hive和Spark凭借其在处理大规模数据方面的优势大获成功,换句话说,它们是做大数据分析的。本文重点阐述这两种产品的发展史和各种特性,通过对其能力的比较,来说明这两个产品能够解决的各类复杂数据处理问题。

《Apache Hive VS Spark:不同目的,同样成功!》
《Apache Hive VS Spark:不同目的,同样成功!》

什么是Hive?

Hive是在Hadoop分布式文件系统上运行的开源分布式数据仓库数据库,用于查询和分析大数据。数据以表格的形式存储(就像关系数据库管理系统一样)。数据操作可以使用名为HiveQL的SQL接口来执行。Hive在Hadoop之上引入了SQL功能,使其成为一个水平可扩展的数据库,是DWH环境的绝佳选择。

Hive发展史掠影

Hive(即后来的Apache)最初是由Facebook开发的,开发人员发现他们的数据在几天内出现了从GBs到TBs的指数级增长。当时,Facebook使用Python将数据加载到RDBMS数据库中。因为RDBMS数据库只能垂直伸缩,很快就面临着性能和伸缩性问题。他们需要一个可以水平伸缩并处理大量数据的数据库。Hadoop在当时已经很流行了;不久之后,构建在Hadoop之上的Hive出现了。Hive与RDBMS数据库类似,但不是完整的RDBMS。

为什么选择Hive?

选择Hive的核心原因是它是运行在Hadoop上的SQL接口。此外,它还降低了MapReduce框架的复杂性。Hive帮助企业在HDFS上执行大规模数据分析,使其成为一个水平可伸缩的数据库。它的SQL接口HiveQL使具有RDBMS背景的开发人员能够构建和开发性能、使拓展的数据仓库类型框架。

Hive特性和功能

Hive具有企业级的特性和功能,可以帮助企业构建高效的高端数据仓库解决方案。

其中一些特性包括:

· Hive使用Hadoop作为存储引擎,仅在HDF上运行。

· 专门为数据仓库操作而构建的,不适用于OLTP或OLAP。

· HiveQL作为SQL引擎,能够帮助为数据仓库类型操作构建复杂的SQL查询。Hive可以与其他分布式数据库(如HBase)和NoSQL数据库(如Cassandra)集成。

Hive结构

Hive架构非常简单。它有一个Hive接口,并使用HDFS跨多个服务器存储数据,用于分布式数据处理。

《Apache Hive VS Spark:不同目的,同样成功!》
《Apache Hive VS Spark:不同目的,同样成功!》 用于数据仓库系统的Hive

Hive是专为数据仓库操作构建的数据库,尤其是那些处理万亿字节或千兆字节数据的数据库。与RDBMS的数据库类似,但不完全相同。如前所述,它是一个水平扩展的数据库,并利用了Hadoop的功能,使其成为一个快速执行的高规模数据库。它可以在数千个节点上运行,并且可以利用商用硬件。这使得Hive成为一款具有高性能和可扩展性的高性价比产品。

Hive集成功能

由于支持ANSI SQL标准,Hive可以与HBase和Cassandra.等数据库集成。这些工具对SQL的支持有限,可以帮助应用程序对更大的数据集执行分析和报告。Hive还可以与Spark、Kafka和Flume等数据流工具集成。

Hive的局限性

Hive是一个纯数据仓库数据库,以表的形式存储数据。因此,它只能处理使用SQL查询读写的结构化数据,不能用于非结构化数据。此外,Hive也不适合OLTP或OLAP操作。

《Apache Hive VS Spark:不同目的,同样成功!》
《Apache Hive VS Spark:不同目的,同样成功!》

什么是Spark?

Spark是一个分布式大数据框架,帮助提取和处理大量RDD格式的数据,以便进行分析。简而言之,它不是一个数据库,而是一个框架,可以使用RDD(弹性分布式数据)方法从数据存储区(如Hive、Hadoop和HBase)访问外部分布式数据集。由于Spark在内存中执行复杂的分析,所以运行十分迅速。

什么是Spark Streaming?

Spark Streaming是Spark的一个扩展,它可以从Web源实时流式传输实时数据,以创建各种分析。尽管有其他工具,如Kafka和Flume可以做到这一点,但Spark成为一个很好的选择,执行真正复杂的数据分析是必要的。Spark有自己的SQL引擎,与Kafka和Flume集成时运行良好。

Spark发展史掠影

Spark是作为MapReduce的替代方案而提出的,MapReduce是一种缓慢且资源密集型的编程模型。因为Spark对内存中的数据进行分析,所以不必依赖磁盘空间或使用网络带宽。

为什么选择Spark?

Spark的核心优势在于它能够执行复杂的内存分析和高达千兆字节的数据流大小,使其比MapReduce更高效、更快。Spark可以从Hadoop上运行的任何数据存储中提取数据,并在内存中并行执行复杂的分析。此功能减少了磁盘输入/输出和网络争用,将其速度提高了十倍甚至一百倍。另外,Spark中的数据分析框架还可以使用Java、Scala、Python、R甚至是SQL来构建。

Spark架构

Spark体系结构可以根据需求而变化。通常,Spark体系结构包括Spark流、Spark SQL、机器学习库、图形处理、Spark核心引擎和数据存储(如HDFS、MongoDB和Cassandra)。

《Apache Hive VS Spark:不同目的,同样成功!》
《Apache Hive VS Spark:不同目的,同样成功!》 Spark特性和功能

· 闪电般快速的分析

Spark从Hadoop中提取数据并在内存中执行分析。数据被并行地以块的形式拉入内存。然后,将最终数据集传送到目的地。数据集也可以驻留在内存中,知道被使用。

· Spark Streaming

Spark Streaming是Spark的一个扩展,它可以从大量使用的web源实时传输大量数据。由于Spark具有执行高级分析的能力,因此与Kafka和Flume等其他数据流工具相比,显得尤为突出。

· 支持各种应用编程接口

Spark支持不同的编程语言,如在大数据和数据分析领域非常流行的Java、Python和Scala。这使得数据分析框架可以用任何一种语言编写。

· 海量数据处理能力

如前所述,高级数据分析通常需要在海量数据集上执行。在Spark出现之前,这些分析是使用MapReduce方法进行的。Spark不仅支持MapReduce,还支持基于SQL的数据提取。Spark可以为需要对大型数据集执行数据提取的应用程序进行更快的分析。

· 数据存储和工具集成

Spark可以与运行在Hadoop上的各种数据存储(如Hive和HBase)集成。还可以从像MongoDB这样的NoSQL数据库中提取数据。与在数据库中执行分析的其他应用程序不同,Spark从数据存储中提取数据一次,然后在内存中对提取的数据集执行分析。

Spark的扩展——Spark Streaming可以与Kafka和Flume集成,构建高效高性能的数据管道。

《Apache Hive VS Spark:不同目的,同样成功!》
《Apache Hive VS Spark:不同目的,同样成功!》

Hive和Spark的区别

Hive和Spark是大数据空间为不同目的而构建的不同产品。Hive是一个分布式数据库,Spark是一个用于数据分析的框架。

特性和功能的差异

《Apache Hive VS Spark:不同目的,同样成功!》
《Apache Hive VS Spark:不同目的,同样成功!》

《Apache Hive VS Spark:不同目的,同样成功!》
《Apache Hive VS Spark:不同目的,同样成功!》

结论

Hive和Spark都是大数据世界中非常流行的工具。Hive是使用SQL对大量数据执行数据分析的最佳选择。另一方面,Spark是运行大数据分析的最佳选择,它提供了比MapReduce更快、更现代的替代方案。

《Apache Hive VS Spark:不同目的,同样成功!》
《Apache Hive VS Spark:不同目的,同样成功!》

留言 点赞 关注

我们一起分享AI学习与发展的干货

编译组:廖馨婷、宋兰欣相关链接:https://dzone.com/articles/comparing-apache-hive-vs-spark

如需转载,请后台留言,遵守转载规范


推荐阅读
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • Kylin 单节点安装
    软件环境Hadoop:2.7,3.1(sincev2.5)Hive:0.13-1.2.1HBase:1.1,2.0(sincev2.5)Spark(optional)2.3.0K ... [详细]
  • Azkaban(三)Azkaban的使用
    界面介绍首页有四个菜单projects:最重要的部分,创建一个工程,所有flows将在工程中运行。scheduling:显示定时任务executing:显示当前运行的任务histo ... [详细]
  • bat大牛带你深度剖析android 十大开源框架_请收好!5大领域,21个必知的机器学习开源工具...
    全文共3744字,预计学习时长7分钟本文将介绍21个你可能没使用过的机器学习开源工具。每个开源工具都为数据科学家处理数据库提供了不同角度。本文将重点介绍五种机器学习的 ... [详细]
  • Yarn已过时!Kubeflow实现机器学习调度平台才是未来
    来源:AI前线本文约6700字,建议阅读10分钟。本文分析了建设分布式训练平台的过程中的痛点所在,为你介绍Kubeflow与其核心组件及其 ... [详细]
  • 探索MLlib机器学习
    公众号后台回复关键词:pyspark,获取本项目github地址。MLlib是Spark的机器学习库,包括以下主要功能。实用工具ÿ ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • 伸缩性|发生_分布式文件系统设计,该从哪些方面考虑?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了分布式文件系统设计,该从哪些方面考虑?相关的知识,希望对你有一定的参考价值。点击上方关注“ ... [详细]
author-avatar
梦露的殇_192
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有