我们在大数据开发的过程中会接触到各种各样的集群,各种各样的技术,那么这些技术该如何组合完成架构呢,这也是一种学问。

Hadoop对事务支持 hadoop分别对应哪些技术_HDFS


在大数据开发中,技术分为三类:存储、计算、资源管理

最基本的存储技术就是HDFS,比如在企业级的应用中,会把通过各种渠道得到的数据,比如说用户行为日志,关系数据库的数据,埋点采集的数据统一存储到HDFS上,为后续提供作用。

HBase作为Nosql类非关系型数据库的代表,从分类上可以划分为存储的类,底层也是基于HDFS,HBase的主要用途还是代理关系型数据库去存储数据,其存储功能相当强,整体架构是基于kv式存储。

大数据最早的框架是MapReduce,前面也介绍了MapReduce的整体流程特性,还有shuffle的原理,讲了JobInProcess树的原理和JobTracker与TaskTracker之间的通信,心跳的检测,任务的派发与监控等等的知识,虽然MapReduce的编写很复杂,于是我们就会借用hive来间接的实现MapReduce。

MapReduce、Spark、Hive、SparkSql这些技术更多的用于离线大数据的计算,也就是针对于历史数据进行数据分析。

Storm、SparkStreaming、Flink这类的大数据技术更多针对于实时数据的计算,比如摄像头的实时监控系统,实时的订单等等,都需要实时计算出数据。

但是不管是离线计算还是实时计算,都需要强大的数据基础,需要将计算的任务分布到大规模的服务器集群上,那么如何管理这些服务器集群的计算资源,如何对一个计算请求进行资源分配,这就是Yarn的主要作用。不管是批处理还是流处理,都可以通过Yarn来实现管理,运行在一个集群中。

所以在实际部署的时候,往往很多集群都会公用一个结点,比如有dataNode的也往往会有NodeManager,Workerr等等,这些资源,统一运行在Yarn的NodeManager的容器中,被Yarn管理

而MapReduce,Storm,SparkStreaming这些微批次或者流处理的计算引擎,往往通过自身的执行引擎解析成MapReduce或者Spark后再被Yarn调度管理。

而HBase比较特殊,因为自身大多用在线上数据存储的需求中,通常是OLTP(在线事务管理)系统的一部分,为了保证高可用和资源独占性,一般都是独立部署集群。