在学习接触大数据相关各种技术后,比如:
zookeeper分布式应用协调服务组件、
Hadoop是分布式计算平台(包含分布式文件系统HDFS和分布式计算和任务处理MapReduce)、
Hive是分布式数据库、
Hbase是分布式kv系统、
kafka 分布式消息系统、
dubbo分布式服务框架、
Storm分布式实时计算模式框架、
Spark是分布式计算系统、
NoSQL分布式数据库、
Redis分布式缓存框架等
这些分布式的框架或系统都可以搭建相应的集群,集群和分布式有什么区别呢?
简单说:
分布式是以缩短单个任务的执行时间来提升效率的,分布式会将不同的业务分布在不同的节点上,一个节点垮了,那这个业务就不可以访问,分布式中的每一个节点都可以做集群,而集群不一定是分布式的。
而集群则是通过提高单位时间内执行的任务数来提升效率,集群会将几台服务器集中在一起,实现同一业务。
比如:
如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务需10小时。
采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是Hadoop的Map/Reduce分布式计算模型)
而采用集群方案,同样提供10台服务器,每台服务器都能独立处理这个任务。假设有10个任务同时到达,10个服务器将同时工作,10小后,10个任务同时完成,这样,整身来看,还是1小时内完成一个任务!
集群举例:比如新浪网,访问的人多了,他可以做一个集群,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问时,响应服务器会看哪台服务器负载不是很重(负载均衡集群),就将给哪一台去完成。集群会有一定组织性,一台执行任务服务器垮了(高可用集群,或者说响应服务器垮了,会再选出一个响应服务器),其它服务器可以顶上来。如果我们对海量的数据日志进行用户行为的分析,我们就涉及到高性能计算集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。(高性能计算集群有分高吞吐式计算和分布计算)。
集群的优点
<1>高扩展性
<2>高可用性HA:集群中的一个节点失效,它的任务可传递给其他节点。可以防止单点失效
<3>高性能:负载平衡集群允许系统同时接入更多的用户
<4>高性能价比:可以采用廉价的复合工业标准的硬件来构造高性能的系统。
有关集群的原理
大家可以参考这个链接http://www.cnblogs.com/zhijianliutang/archive/2012/03/05/2381055.html