大数据应用开发

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

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

 

这三本秘籍分别为:

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

 

Hadoop包括三大部分,分别是hdfs、MapReduce和hbase:
hdfs解决大数据的存储问题。
mapreduce解决大数据的计算问题。
hbase解决大数据量的查询问题。

 

 MapReduce是第一代计算引擎,Tez和Spark是第二代。MapReduce的设计,采用了很简化的计算模型,只有Map和Reduce两个计算过程(中间用Shuffle串联),用这个模型,已经可以处理大数据领域很大一部分问题了。

 

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

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

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

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

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

 

Map+Reduce的简单模型很黄很暴力,虽然好用,但是很笨重。第二代的Tez和Spark除了内存Cache之类的新feature,本质上来说,是让Map/Reduce模型更通用,让Map和Reduce之间的界限更模糊,数据交换更灵活,更少的磁盘读写,以便更方便地描述复杂算法,取得更高的吞吐量

 

参考文献

《Google file system》——论述了怎样借助普通机器有效的存储海量的大数据;

《Google MapReduce》——论述了怎样快速计算海量的数据;

《Google BigTable》——论述了怎样实现海量数据的快速查询;

《大数据的技术生态》——https://www.zhihu.com/question/27974418/answer/156227565

《从Hadoop到Spark、Flink,大数据处理框架十年激荡发展史》——https://zhuanlan.zhihu.com/p/98864297

《大数据、Flink、Hadoop生态》——https://zhuanlan.zhihu.com/hgdcxy

《Hadoop教程(一) Hadoop入门教程》——https://blog.csdn.net/yuan_xw/article/details/50003197

 

posted @ 2020-11-25 10:10  杨兮臣  阅读(469)  评论(0编辑  收藏  举报