意图与逻辑

来源:互联网 发布:万方数据库免费试用 编辑:程序博客网 时间:2024/06/06 10:39

伪分布式 vs 分布式

什么叫分布式什么叫伪分布式,之前我们说与 hadoop 相关的 java 进程如果只运行在一个物理机器中,为伪分布式,如果运行在多台物理机器中则为分布式,伪分布式的本质是该节点既为主节点,也为从节点(主节点和从节点在一个节点上共存),也即伪分布式是分布式的一种特殊情况,其实也可以反过来说,即如果把主节点固定在一台机器,而把从节点部署到其他节点,即可实现了伪分布式向分布式的转换,也即,分布式是将从节点从主节点中拆分出去,所以其实也可以说,分布式是伪分布式的一种特例。

MVC:主节点/从节点、模型类/控制类

MVC 也是一种分层的结构(hierarchical structure),这里的层次关系指的是一种逻辑上的层次,一种抽象意义的层次,不是物理的,不是实际的,就好比佛家所说,人生三境界,如何界定呢,不是红绿蓝三种颜色,清清楚楚,是概念上的,逻辑上的;

在 hadoop 完全分布式集群环境下,一个重要特征就是,主节点从节点的划分,我们来看它们各自的使命与职责:

  • 主节点:namenode/secondarynamenode、JobTracker
  • 从节点:datanode、TaskTracker

也即从节点存储数据,并用于工作的执行,主节点用于控制,记录一些控制信息,这是不是某种形式的MVC(模型与控制相分离)的设计思想。主节点是大脑,从节点是人的四肢;

MVC:hdfs vs Map Reduce(hadoop)

文件系统自然对应于model(持久层),用于保存数据;
Map Reduce 则为控制control(控制层),操作处理的对象是数据,本身不持有数据。

唯有思想摧枯拉朽。无处不在的 MVC,鬼魅的身影!

MVC:client vs server

不管是提供计算支持的 RPC 模式,还是提供资源的 HTTP 服务器,客户端用于显示,服务器端做后台,返回结果。

ZooKeeper 是如何实现数据传输的事务性一致的

ZooKeeper 要求第一传输的数据不宜太大(不超过 2M),更重要的一点是,ZooKeeper 要求各服务器之间的系统时间要保持一致,由此得知各主机的系统时间是 ZooKeeper 实现数据在集群间传输的重要依据指标。

谁谁是谁谁的实现?

要实现的:为抽象的思想。
实现的:为具体的语言、产品。

比如:

  • 分布式(存储和计算):hadoop(HDFS、MapReduce)
  • SQL(关系型查询语言):MySQL,Oracle
  • NoSQL(非关系型查询语言):HBase、MongoDb。
  • 面向对象思想:Java/C++。
  • 泛型编程思想:STL;

具有什么属性的文件可设置为共享?

  • (1)出于通信的需要;
  • (2)文件为不被修改的静态文件;
0 0
原创粉丝点击