转自知乎链接:https://www.zhihu.com/question/27974418/answer/156227565
学习很重要的是能将纷繁复杂的信息进行归类和抽象。有点文(很喜欢这个答主和他的答案,属于那种有思维的人,尤其是他的这句话)。
对应到大数据技术体系,虽然各种技术百花齐放,层出不穷,但大数据技术本质上无非解决4个核心问题。
- 存储,海量的数据怎样有效的存储?主要包括hdfs、Kafka;
- 计算,海量的数据怎样快速计算?主要包括MapReduce、Spark、Flink等;
- 查询,海量数据怎样快速查询?主要为Nosql和Olap,Nosql主要包括Hbase、 Cassandra 等,其中olap包括kylin、impla等,其中Nosql主要解决随机查询,Olap技术主要解决关联查询;
- 挖掘,海量数据怎样挖掘出隐藏的知识?也就是当前火热的机器学习和深度学习等技术,包括TensorFlow、caffe、mahout等;
大数据技术生态其实是一个江湖....
在一个夜黑风高的晚上,江湖第一大帮会Google三本阵法修炼秘籍流出,大数据技术江湖从此纷争四起、永无宁日...
这三本秘籍分别为:
- 《Google file system》:论述了怎样借助普通机器有效的存储海量的大数据;
- 《Google MapReduce》:论述了怎样快速计算海量的数据;
- 《Google BigTable》:论述了怎样实现海量数据的快速查询;
以上三篇论文秘籍是大数据入门的最好文章,通俗易懂,先看此三篇再看其它技术;
Hadoop包括三大部分,分别是hdfs、MapReduce和hbase:
hdfs解决大数据的存储问题。
mapreduce解决大数据的计算问题。
hbase解决大数据量的查询问题。
大概的演进:
1,传统数据仓库派说你mapreduce修炼太复杂,老子不会编程,老子以前用sql吃遍天下,为了将这拨人收入门下,并降低大数据修炼难度,遂出了hive,pig、impla等SQL ON Hadoop的简易修炼秘籍;
2,伯克利派说你MapReduce只重招数,内力无法施展,且不同的场景需要修炼不同的技术,太过复杂,于是推出基于内力(内存)的《Spark》,意图解决所有大数据计算问题。
3,流式计算相关门派说你hadoop只能憋大招(批量计算),太麻烦,于是出了SparkStreaming、Storm,S4等流式计算技术,能够实现数据一来就即时计算。
4,apache看各大门派纷争四起,推出flink,想一统流计算和批量计算的修炼;