IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hadoop、Hive、Spark是什么关系 -> 正文阅读

[大数据]Hadoop、Hive、Spark是什么关系

? ? ? ?Hadoop、Hive、Spark都是大数据相关的技术,大数据属于数据管理系统的范畴。数据管理系统要解决的问题是数据如何存储和数据如何计算。

? ? ? ?在单机数据管理系统时代,一台服务器上可以满足数据存储的需求,计算也不会遇到什么瓶颈,数据处理都是IO密集型的,不是CPU密集型的,也谈不上什么分布式系统。以今天典型的服务器为例,一个典型的2U服务器,可以配置6块硬盘,没块硬盘选4T,这样就会有24T原始容量,再加上一些数据包可用的冗余,再加上一些格式化的损失,保守估计,一台服务器也可以存储10T以上的数据,与此同时,在这样的服务器上再配置上128G内存,两颗CPU,再安装一款数据库管理系统,略微进行调优,单表处理10亿数据没什么问题。现在单机数据管理方案仍然是备选。

CPU密集型?可以理解为 就是处理繁杂算法的操作,对硬盘等操作不是很频繁,比如一个算法非常之复杂,可能要处理半天,而最终插入到数据库的时间很快。

IO密集型可以理解为简单的业务逻辑处理,比如计算1+1=2,但是要处理的数据很多,每一条都要去插入数据库,对数据库频繁操作。

? ? ? ?在现如今这个信息爆炸的时代,数据的容量越来越大,一台机器可能无法满足数据的存储需求,需要通过扩展机器的数量来对数据进行存储。如果用100台服务器去存储数据,如何做统一管理呢?在Hadoop生态里面,HDFS扮演者数据统一管理的角色,会统一管理100台服务器上的存储空间,提供一个接口,让这100台机器的空间好像就是在一台机器上,让用户感觉到有一个无限大的存储空间,方便用户写应用程序进行存储和计算。数据分布存储在100台机器上,每个机器都有自己的CPU和内存,如何高效利用这些资源处理数据呢?HDFS中引入了一个MapReduce模块,MapReduce模块实际上是提供了一个任务并行的框架,通过它的API抽象,能让用户把程序分成两个阶段,一个是map阶段,形象地来讲,你有一个很大的任务,找了100个帮手,把任务平均分成100份,每个人做一份,这就是map阶段。而reduce阶段,就是对map阶段完成的任务进行汇总,最终输出一个结果。综上所述,Hadoop中采用HDFS来处理存储,MapRecude来处理计算。

? ? ? ?为了能够在大数据上使用SQL来处理数据,Hive应用而生。Hive实际上是在Hadoop上进行结构化数据处理的一个解决方案,目的是能让用户通过编写SQL来处理数据。当然,只有结构化后数据才可以进行查询,Hive中的一个核心模块metastore用来存储结构化的信息,简单来说,就是一个表信息,比如表中有多少列,每个列有什么数据结构。Hive中的执行引擎就会把一条SQL语句进行语法分析,生成语法树,这两个步骤和普通关系型数据库没有本质的区别,主要区别在执行阶段,Hive的执行引擎会把SQL语句翻译成一个MapReduce任务去执行,然后将执行结果返回给用户。这就是Hive里面采用SQL处理数据的过程。Hive的出现让?一部分大数据工程师变成了SQL Boy/SQL Girl。从工程角度来看,效率和灵活性是一对矛盾体,从Hive例子中可以看出,SQL出现使得大数据处理开发的任务效率提高了,但是在数据处理的表达和灵活性上,不如直接写MapReduce程序。不过,具体要根据实际的场景去选择。当然,在Hadoop上写SQL也不是只有Hive一个方案,像impala,presto等都是SQL在Hadoop上替换方案。

? ? ? ?最后,介绍一下Spark。Spark经常用来和Hadoop进行对比,更为精确的说是和Hadoop里面的MapReduce对比,因为Spark本身也是一个计算框架。Spark和MapReduce不同主要是Spak是基于内存的计算,而MapRecude是基于磁盘的计算,所以Spark的卖点就是快。Spark的核心模块和MapRecude在使用体验上有一些类似的地方,他们都提供了一些列的API,让开发这写数据处理的程序,并且在MapReduce上有Hive类似的方案,让用户能够写SQL。同理,在Spark生态里面也有Spark?Sql这个模块。Spark作为一个纯的计算引擎,还提供了其他上层的抽象,帮助用户写其他类型的数据处理程序,比如Spark提供了streaming模块,可以让用户写流处理程序,提供了MLlib模块,让用户去写机器学习的程序,以及图处理模块GraphX。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:35:41  更:2022-09-21 00:35:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:13:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码