分享

分布式系统中的数据是不是都经过主控服务器?

haoshen1987 发表于 2013-10-16 13:40:06 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 6501
本帖最后由 nettman 于 2013-10-27 15:51 编辑

当某用户访问分布式文件系统或者分布式数据库时,分布式系统都得先找到所有结点上的数据,然后把所有数据取到主控服务器再给用户吗?
我看相关分析时,都没提那么细,不过,我猜应该是这样子的,结点都是在内网。
不知道有没有说明明白。
              
         

已有(4)人评论

跳转到指定楼层
tntzbzc 发表于 2013-10-16 13:41:03

            不是~~!
分布式文件系统HDFS:
1、CLIENT先从NAMENODE上获取数据块索引
2、然后CLIENT从DATANODE直接获取数据,不通过MASTER-NAMENODE
分布式数据库HBASE:
1、CLIENT通过ZOOKEEPER调度
2、ZOOKEEEPER从HMASTER上获取HRSERVER的数据索引
3、随后CLIENT访问HRSERVER
4、HRSERVER在访问HR获取数据
5、HRSERVER返回数据给CLIENT
        
回复

使用道具 举报

haoshen1987 发表于 2013-10-16 13:41:35

            引用 1 楼 tntzbzc 的回复:不是~~!
分布式文件系统HDFS:
1、CLIENT先从NAMENODE上获取数据块索引
2、然后CLIENT从DATANODE直接获取数据,不通过MASTER-NAMENODE
分布式数据库HBASE:
1、CLIENT通过ZOOKEEPER调度
2、ZOOKEEEPER从HMASTER上获取HRSERVER的数据索引
3、随后CLIENT访问HRSERVER
4、HRSERVER在访问HR获取数据
5、HRSERVER返回数据给CLIENT

CLIENT与SERVER应该只有一个连接,如何实现这种方式?需要基于哪一层做处理?
        
回复

使用道具 举报

tntzbzc 发表于 2013-10-16 13:42:33

            CLIENT和HMASTER一般只有一个,除了多线程。
但和HRSERVER可以是一对多的关系,理论上一个CLIENT可以和所有的HRSERVER同时对接
可以参考Hbase-coprocessor-endpoint
Htable.coprocessorExec方法就是一对多的重要方法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条