大数据应用开发
学习很重要的是能将纷繁复杂的信息进行归类和抽象。
对应到大数据技术体系,虽然各种技术百花齐放,层出不穷,但大数据技术本质上无非解决4个核心问题。
- 存储,海量的数据怎样有效的存储?主要包括hdfs、Kafka;
- 计算,海量的数据怎样快速计算?主要包括MapReduce、Spark、Flink等;
- 查询,海量数据怎样快速查询?主要为Nosql和Olap,Nosql主要包括Hbase、 Cassandra 等,其中olap包括kylin、impla等,其中Nosql主要解决随机查询,Olap技术主要解决关联查询;
- 挖掘,海量数据怎样挖掘出隐藏的知识?也就是当前火热的机器学习和深度学习等技术,包括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,想一统流计算和批量计算的修炼;
参考文献
《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
---------------------------------------------------
作者:杨兮臣
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用闲暇时间,把自己毕生所学整理一下,感谢行业的技术大咖