由于数据量巨大,单机无法存储,所以我们需要将用很多台机器存储数据,HDFS(Hadoop Distributed FileSystem)就应用而生,它是专门负责管理这么多台单机之间的数据,你存取数据都是和单机一样的操作流程,但实际上这些数据都是在多台单机上存储的,相当于HDFS是一个帮你管理大数据的界面,你不用管它后面是怎么的关系,只需要在它这儿操作就可以了。光有数据也不行啊,数据我们是要提取信息的,也就是需要计算的,那怎么实现这么多单机之间的协同计算呢?MapReduce / Tez / Spark 就出来了,它说,这种小事我来做,MapReduce是第一代计算引擎,Tez和Spark是第二代。MapReduce虽然好用,但是其代码就像汇编语言一样,为了解放我们的大脑,一种更简单的语言应用而生,这就是Pig和Hive。Pig是接近脚本方式去描述MapReduce,Hive则用的是SQL。但是MapReduce的计算速度确实是非常慢的,对于一些实时性比较强的数据处理,MapReduce计算速度就有点太差劲,于是Impala,Presto,Drill 三个系统就出来了,三个系统的核心理念是,MapReduce引擎太慢,因为它太通用,太强壮,太保守,我们SQL需要更轻量,更激进地获取资源,更专门地对SQL做优化,而且不需要那么多容错性保证(因为系统出错了大不了重新启动任务,如果整个处理时间更短的话,比如几分钟之内)。这些系统让用户更快速地处理SQL任务。

Hive的特点:     

1.Hive不存储数据,Hive需要分析计算的数据,以及计算结果后的数据实际存储在分布式系统上,如HDFS上。

 2.Hive某种程度来说也不进行数据计算,只是个解释器,只是将用户需要对数据处理的逻辑,通过SQL编程提交后解释成MapReduce程序,然后将这个MR程序提交给Yarn进行调度执行。所以实际进行分布式运算的是MapReduce程序。

 3.因为Hive为了能操作HDFS上的数据集,那么他需要知道数据的切分格式,如行列分隔符,存储类型,是否压缩,数据的存储地址等信息。为了方便以后操作所以他需要将这些信息通过一张表存储起来,然后将这张表(元数据)存储到mysql中。

Spark和hive的区别?

Spark现在发展成了一个生态群:spark sql ,spark core,spark mllib,sparkR,spark Graphx

spark是一个独立自主的家伙,它是一个运算引擎,它可以从各种各样的数据源读取数据,来做运算,然后可以将运算结果写入各种各样的存储系统中,hive是一个资源整合者,它自己并不没有核心的功能,它提供sql语法的解析,然后转成MapReduce或者spark或者tez等程序,去执行。

spark sql和hive是同一性质的

Presto和MySQL的区别?

Presto本身不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询。MySQL首先是一个单点关系型数据库,其具有存储和计算分析能力,而Presto只有计算分析能力;在数据量方面,MySQL不能满足当前大数据量的分析需求,Hive是一个数据仓库,只能访问hdfs的数据;Presto是一个交互式查询引擎,可以在很短的时间内返回查询结果,但是Presto是取代不了Hive的,因为Presto全部的数据都是在内存中,限制了在内存中的数据集大小,实际应用中,对于在Presto的查询是有一定规定条件的,比如说一个查询在Presto查询超过30分钟,说明不适合在Presto上使用,主要原因是,查询过大的话,会占用整个集群的资源,这会导致你后续的查询是没有资源进行查询的,这跟Presto的设计理念是冲突的,就像是你进行一个查询,但是要等个5分钟才有资源继续查询,这是很不合理的,交互式就变得弱了很多。当数据量较大时,可用SparkSQL进行建表,查询,关联等;

Hadoop是什么呢?

Hadoop的核心是HDFS和MapReduce,一个提供了存储,一个提供了计算,核心框架如下所示:

 

Hive,SQL,MapReduce,Hadoop,Spark等这些关系及理解

Hadoop的生态图 

Hive,SQL,MapReduce,Hadoop,Spark等这些关系及理解

hadoop的详细介绍可以参考:https://www.zhihu.com/question/23036370 

参考:https://cloud.tencent.com/developer/article/1042387

          https://www.maiyewang.com/archives/19387

         https://blog.csdn.net/yilulvxing/article/details/86220888

          https://www.zhihu.com/question/329052025/answer/979123167
 

 

 

 

 

 

 

 

相关文章: