从0开始学大数据-01大数据技术(名词科普)
今天我们常说的大数据技术,其实起源于Google在2004年前后发表的三篇论文,也就是我们经常听到的“三驾马车”,分别是分布式文件系统GFS、大数据分布式计算框架MapReduce和NoSQL数据库系统BigTable。
赫赫有名的Hadoop,主要包括Hadoop分布式文件系统HDFS和大数据计算引擎MapReduce。
Facebook发布了Hive。Hive支持使用SQL语法来进行大数据计算,比如写个Select语句进行数据查询,然后Hive会把SQL语句转化成MapReduce的计算程序。
专门将关系数据库中的数据导入导出到Hadoop平台的Sqoop;
针对大规模日志进行分布式收集、聚合和传输的Flume;
MapReduce工作流调度引擎Oozie等。
在Hadoop早期,MapReduce既是一个执行引擎,又是一个资源调度框架,服务器集群的资源调度管理由MapReduce自己完成。但是这样不利于资源复用,也使得MapReduce非常臃肿。于是一个新项目启动了,将MapReduce执行引擎和资源调度分离开来,这就是Yarn。
MapReduce进行机器学习计算的时候性能非常差,因为机器学习算法通常需要进行很多次的迭代计算,而MapReduce每执行一次Map和Reduce计算都需要重新启动一次作业,带来大量的无谓消耗。还有一点就是MapReduce主要使用磁盘作为存储介质,而2012年的时候,内存已经突破容量和成本限制,成为数据运行过程中主要的存储介质。Spark一经推出,立即受到业界的追捧,并逐步替代MapReduce在企业应用中的地位。
像MapReduce、Spark这类计算框架处理的业务场景都被称作批处理计算,也被称为大数据离线计算。
大数据流计算,有Storm、Flink、Spark Streaming等流计算框架来满足此类大数据应用的场景。 流式计算要处理的数据是实时在线产生的数据,所以这类计算也被称为大数据实时计算。
Flink可以同时支持流式计算和批处理计算。
HBase是从Hadoop中分离出来的、基于HDFS的NoSQL系统。
大数据处理的主要应用场景包括数据分析、数据挖掘与机器学习。数据分析主要使用Hive、Spark SQL等SQL引擎完成;数据挖掘与机器学习则有专门的机器学习框架TensorFlow、Mahout以及MLlib等,内置了主要的机器学习和数据挖掘算法。
最后一张图总结所谓的大数据技术。