目录
分布式储存的认识
缘由
在用Scala 做附近餐馆推荐系统的时候,用到了spark,其中有用到的数据储存结构有rdd,dataframe, dataset。 And when things came to RDD,(resilient distribute datasets), distribute, this word made me frustrated. I ve heard about “distribute” for hundreds times. Distribute Systems and Distribute datasets and so on. When I actually used RDD. I felt really familiar. It works like Cloud compute which I work on me second semester. This blog is about to record this experience about my learning “Distribute”. Lets get it started.
Distribute Storage System 分布式存储系统
定义
分布式存储系统是大量普通PC服务器通过Internet互联,对外作为一个整体提供存储服务
wikipedia:
A distributed data store is a computer network where information is stored on more than one node, often in a replicated fashion. It is usually specifically used to refer to either a distributed database where users store information on a number of nodes, or a computer network in which users store information on a number of peer network nodes.
Differentiation between Distribute, and Cloud computing
相同点:都是利用多台服务器(实体或虚拟的),进行合同服务或计算。
主要特点:
- 分布式计算:
目的是为了解决单机需要花很长时间计算出结果的任务问题,通常把任务分解到多个机器上计算,然后最终汇总结果得出整体计算结果。目的是为了解决单机需要花很长时间计算出结果的任务问题,通常把任务分解到多个机器上计算,然后最终汇总结果得出整体计算结果。 - 分布式系统:
部署在多个服务器上,合同协作的软件服务系统,可以不同服务器提供不同子服务,可以但不是必须支持负载均衡或失效切换。相对于单机有更好的扩展性和可用性。但通常是用于特定应用的非通用的系统设计和服务解决方案,以支持大规模用户同时操作和/或大数据。部署在多个服务器上,合同协作的软件服务系统,可以不同服务器提供不同子服务,可以但不是必须支持负载均衡或失效切换。相对于单机有更好的扩展性和可用性。但通常是用于特定应用的非通用的系统设计和服务解决方案,以支持大规模用户同时操作和/或大数据。 - 集群:
目的是通过软硬件技术整合多台服务器,让它们作为一个整体对外服务。常见的有负载均衡或失效切换工作模式,甚至混合两种在同一个集群中。目的是通过软硬件技术整合多台服务器,让它们作为一个整体对外服务。常见的有负载均衡或失效切换工作模式,甚至混合两种在同一个集群中。 - 云计算:
应该是三者中最大的概念,目的主要是统一更好的管理所有的软硬件资源,提供灵活可定制分配的资源服务,提供更好的可扩展性和高可用性。云计算主要分为三类,基础设施即服务(IaaS,比如各种虚拟机运营商提供的VPS,阿里云,腾讯云),平台即服务(PaaS,比如各种软件应用平台,像淘宝开放平台,微信小程序),软件即服务(SaaS,比如各种在线购买的独立软件服务,云盘等)
比较:
- 分布式计算的各个机器可以是完全无关的,只是共同分担指定计算任务。
- 分布式系统:可以使用集群或云计算环境辅助实现,也可以不使用,通常根据业务需要定制方案,但一般是非通用的和业务耦合性强的设计方案。云计算通常会用到类似集群的解决方案,只不过可能是应用层的解决方案(负载均衡,失效切换或热备等高可用解决方案),而集群是应用无关的通用解决方案。机器或应用之间必须有基础的通信合作,通常用心跳监控提供基础高可用支持。
- 云是个范围更大,非常抽象的概念,分布式计算和集群比较决定明确。云服务或计算,可以包含或使用集群,可以提供分布式计算服务。可以包含下到网络设备管理和分配,上到硬件资源,操作系统,软件,服务等一切可管理的资源。主要体现在高度自动化统一化精细化管理(软件部署,配置,资源分配,监控,分析,优化),提供高扩展性和高可用性的服务。
- 从某种角度上说百度搜索,淘宝网,腾讯QQ或微信等似乎都是一种软件即服务的云服务,只不过它们是网络应用,并通过其它方式,不是直接向终端用户收费。从资源管理的角度来说,这些都是太专用的特殊定制的云,不是通用的。
Conclusion
Distribute is an kind of specific implementation of Cloud computing.
Classification of DSS
According to datastructure, DSS can be classified into multiple types:
- Distribute File System : Structureless data. eg. video, graph, audio. Also called Distribute Object System.
- Distribute Key-Value Sytem : half structured data. 用于存储关系简单的半结构化数据,提供基于Key的增删改查操作,缓存、固化存储,例如Memached、Redis、DynamoDB等.
- Distribute Databases System :存储结构化数据,提供SQL关系查询语言,支持多表关联,嵌套子查询等,例如MySQL Sharding集群、MongoDB等等