apache hive

如何用形象的比喻描述大数据的技术生态?Hadoop、Hive、Spark 之间是什么关系?

 

作者:有点文
链接:https://www.zhihu.com/question/27974418/answer/156227565

学习很重要的是能将纷繁复杂的信息进行归类和抽象。
对应到大数据技术体系,虽然各种技术百花齐放,层出不穷,但大数据技术本质上无非解决4个核心问题。

  1. 存储,海量的数据怎样有效的存储?主要包括hdfs、Kafka;
  2. 计算,海量的数据怎样快速计算?主要包括MapReduce、Spark、Flink等;
  3. 查询,海量数据怎样快速查询?主要为Nosql和Olap,Nosql主要包括Hbase、 Cassandra 等,其中olap包括kylin、impla等,其中Nosql主要解决随机查询,Olap技术主要解决关联查询;
  4. 挖掘,海量数据怎样挖掘出隐藏的知识?也就是当前火热的机器学习和深度学习等技术,包括TensorFlow、caffe、mahout等;

大数据技术生态其实是一个江湖....

在一个夜黑风高的晚上,江湖第一大帮会Google三本阵法修炼秘籍流出,大数据技术江湖从此纷争四起、永无宁日...

这三本秘籍分别为:

  • 《Google file system》:论述了怎样借助普通机器有效的存储海量的大数据;
  • 《Google MapReduce》:论述了怎样快速计算海量的数据;
  • 《Google BigTable》:论述了怎样实现海量数据的快速查询;

以上三篇论文秘籍是大数据入门的最好文章,通俗易懂,先看此三篇再看其它技术;

在Google三大秘籍流出之后,江湖上,致力于武学开放的apache根据这三本秘籍分别研究出了对应的武学巨著《hadoop》,并开放给各大门派研习,Hadoop包括三大部分,分别是hdfs、MapReduce和hbase:
hdfs解决大数据的存储问题。
mapreduce解决大数据的计算问题。
hbase解决大数据量的查询问题。

之后,在各大门派的支持下,Hadoop不断衍生和进化各种分支流派,其中最激烈的当属计算技术,其次是查询技术。存储技术基本无太多变化,hdfs一统天下。

以下为大概的演进:

1,传统数据仓库派说你mapreduce修炼太复杂,老子不会编程,老子以前用sql吃遍天下,为了将这拨人收入门下,并降低大数据修炼难度,遂出了hive,pig、impla等SQL ON Hadoop的简易修炼秘籍;

2,伯克利派说你MapReduce只重招数,内力无法施展,且不同的场景需要修炼不同的技术,太过复杂,于是推出基于内力(内存)的《Spark》,意图解决所有大数据计算问题。

3,流式计算相关门派说你hadoop只能憋大招(批量计算),太麻烦,于是出了SparkStreaming、Storm,S4等流式计算技术,能够实现数据一来就即时计算。

4,apache看各大门派纷争四起,推出flink,想一统流计算和批量计算的修炼;