小编aru*_*esh的帖子

Zookeeper/Chubby -vs- MySql NDB

我最近一直在阅读Paxos论文,FLP定理等,并为一个项目评估Apache Zookeeper.我也一直在通过Chubby(谷歌的分布式锁定服务)以及可在线获得的各种文献.我对Zookeeper的基本用法是为分布式系统实现复制和一般协调.

我只是想知道,Zookeeper或像分布式锁定系统这样的Chubby带来的具体优势是什么.基本上我只是想知道为什么我不能只使用MySQL NDB集群.我一直听说MySQL有很多复制问题.我希望有一些关于这个主题的更多经验可能会对它有所了解.

提前致谢..

简单列出我的要求:

  • 我有一个同质的分布式系统.
  • 我需要一些方法来保持所有节点的一致状态.
  • 我的系统公开了一项服务,与客户的交互将导致我的系统集体状态发生一些变化.
  • 高可用性是一个目标,因此关闭的节点不得影响服务.
  • 我希望系统至少服务1000 req/sec.
  • 我希望系统的集体状态大小有限(基本上插入/删除将是暂时的......但在稳定状态下,我期望大量的更新和读取)

java mysql replication database-replication apache-zookeeper

15
推荐指数
2
解决办法
6478
查看次数

HBase如何保证行级原子性?

考虑到HBase将每个列族存储在单独的HFile中以及行可以跨越多个列族的事实.HBase如何确保跨越多个列族的行的放置/删除操作确实是原子的?

database hadoop hbase distributed-system nosql

8
推荐指数
1
解决办法
2458
查看次数

更改scala mutable.HashMap的默认容量/加载因子

我目前正在使用scala 2.9.1.我创建一个mutable.HashMap使用:

> val m = mutable.HashMap.empty[Int, Int]
Run Code Online (Sandbox Code Playgroud)

我对斯卡拉有点新意.在java中,我能够在HashMap的构造函数中指定容量和加载因子.我无法找到任何方法在scala中做同样的事情.

提前致谢

collections scala

8
推荐指数
1
解决办法
1031
查看次数

使用具有随机指针的节点反转链接列表

我最近遇到了这个有趣的问题:

"考虑每个节点的链表,除了'下一个'指针还有一个'随机'指针.'随机'指针指向链表上的一些随机的其他节点.它也可能指向NULL.简化事情,没有两个"随机"指针指向同一个节点,但是超过1个节点的随机指针可以指向NULL.

现在我们需要反转Linked列表的所有指针('next'和'random')的方向.约束是解决方案必须是O(1)空间复杂度(可以创建恒定数量的新节点但不与列表的长度成比例)"

我花了很多时间考虑这个.我真的不相信它实际上是可能的.

linked-list

7
推荐指数
1
解决办法
1942
查看次数

当一个线程在wait()上阻塞时被中断时会发生什么?

考虑到wait()只能在同步上下文中调用,随后释放监视器,直到另一个线程在同一对象上调用notify/nofityAll为止,

假设线程A在wait()上阻塞,这导致线程B获取锁.现在,如果我们中断线程A,控件是否会立即转移到线程A?在这种情况下,由于处理InterrupException的try catch块在同步上下文中,并且因为一次只能有一个Thread可以保存监视器,所以Thread B会发生什么?它应该移动到阻塞状态,直到线程A完成执行?

提前致谢

java concurrency multithreading interrupted-exception

5
推荐指数
1
解决办法
4246
查看次数

究竟什么是Erlang的并发模型?

我最近正在读一篇论文为什么事件不好.本文是基于事件和基于线程的高度并发服务器的比较研究,最后得出的结论是,线程比该场景中的事件更好.

我发现我无法对erlang暴露的并发模型进行分类.Erlang提供轻量级进程,但这些进程大部分时间都被挂起,直到它收到某种类型的事件/消息.

/阿伦

erlang events multithreading

3
推荐指数
2
解决办法
1252
查看次数

如何使用java API访问安全的kerberized hadoop

我对Kerberos很新.我正在使用共享的Hadoop集群.我的管理员为我提供了用户名和密码以及KDC服务器的位置.

是否可以仅使用JAVA GSS API和Hadoop USerGroupInformation类来访问Hadoop集群.

对于非kerberos hadoop集群,这将是我将使用的代码片段,比如从HDFS读取文件:

String uname = <Some username>;
UserGroupInformation ugi = UserGroupInformation.createRemoteUser(uname);
ugi.doAs(new PrivilegedExceptionAction<Void>(){

   public Void run() throws Exception {

      HdfsConfiguration hdfsConf = new HdfsConfiguration();
      ... SETUP Configuration ...
      FileSystem fs = FileSystem.get(hdfsConf);
      ... Use 'fs' to read/write etc ...
   }

});
Run Code Online (Sandbox Code Playgroud)

现在对于一个安全的群集,我也为用户提供了kerberos密码..有人可以告诉我,我需要对上面的代码片段进行哪些确切的更改才能首先访问KDC并进行kinit然后继续使用HDFS操作

请记住,在我计划部署Java应用程序的环境中,我可能没有在本地安装"kinit",因此从java中调用kinit进程不是一种选择.

提前致谢..

java security hadoop kerberos jaas

3
推荐指数
1
解决办法
5705
查看次数