- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中org.apache.accumulo.fate.zookeeper.ZooLock
类的一些代码示例,展示了ZooLock
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZooLock
类的具体详情如下:
包路径:org.apache.accumulo.fate.zookeeper.ZooLock
类名称:ZooLock
暂无
代码示例来源:origin: apache/accumulo
private void getMasterLock(final String zMasterLoc) throws KeeperException, InterruptedException {
log.info("trying to get master lock");
final String masterClientAddress = hostname + ":"
+ getConfiguration().getPort(Property.MASTER_CLIENTPORT)[0];
while (true) {
MasterLockWatcher masterLockWatcher = new MasterLockWatcher();
masterLock = new ZooLock(getContext().getZooReaderWriter(), zMasterLoc);
masterLock.lockAsync(masterLockWatcher, masterClientAddress.getBytes());
masterLockWatcher.waitForChange();
if (masterLockWatcher.acquiredLock) {
break;
}
if (!masterLockWatcher.failedToAcquireLock) {
throw new IllegalStateException("master lock in unknown state");
}
masterLock.tryToCancelAsyncLockOrUnlock();
sleepUninterruptibly(TIME_TO_WAIT_BETWEEN_LOCK_CHECKS, TimeUnit.MILLISECONDS);
}
setMasterState(MasterState.HAVE_LOCK);
}
代码示例来源:origin: apache/accumulo
private static String getMaster(ZooCache cache, UUID iid, boolean printErrors) {
if (iid == null) {
return null;
}
try {
String masterLocPath = Constants.ZROOT + "/" + iid + Constants.ZMASTER_LOCK;
byte[] master = ZooLock.getLockData(cache, masterLocPath, null);
if (master == null) {
return null;
}
return new String(master, UTF_8);
} catch (Exception e) {
handleException(e, printErrors);
return null;
}
}
代码示例来源:origin: apache/accumulo
public long getSessionId() throws KeeperException, InterruptedException {
return getSessionId(getLockDataZooCache, path);
}
代码示例来源:origin: apache/accumulo
if (tabletServerLock == null || !tabletServerLock.wasLockAcquired()) {
log.debug("Got {} message before my lock was acquired, ignoring...", request);
throw new RuntimeException("Lock not acquired");
if (tabletServerLock != null && tabletServerLock.wasLockAcquired()
&& !tabletServerLock.isLocked()) {
Halt.halt(1, new Runnable() {
@Override
if (!ZooLock.isLockHeld(masterLockCache, lid)) {
if (!ZooLock.isLockHeld(masterLockCache, lid)) {
log.warn("Got {} message from a master that does not hold the current lock {}",
request, lock);
代码示例来源:origin: apache/accumulo
private void getZooLock(HostAndPort addr) throws KeeperException, InterruptedException {
String path = context.getZooKeeperRoot() + Constants.ZGC_LOCK;
LockWatcher lockWatcher = new LockWatcher() {
@Override
public void lostLock(LockLossReason reason) {
Halt.halt("GC lock in zookeeper lost (reason = " + reason + "), exiting!", 1);
}
@Override
public void unableToMonitorLockNode(final Throwable e) {
// ACCUMULO-3651 Level changed to error and FATAL added to message for slf4j compatibility
Halt.halt(-1, new Runnable() {
@Override
public void run() {
log.error("FATAL: No longer able to monitor lock node ", e);
}
});
}
};
while (true) {
lock = new ZooLock(context.getZooReaderWriter(), path);
if (lock.tryLock(lockWatcher,
new ServerServices(addr.toString(), Service.GC_CLIENT).toString().getBytes())) {
log.debug("Got GC ZooKeeper lock");
return;
}
log.debug("Failed to get GC ZooKeeper lock, will retry");
sleepUninterruptibly(1, TimeUnit.SECONDS);
}
}
代码示例来源:origin: apache/accumulo
tabletServerLock = new ZooLock(zoo, zPath);
zoo.putPersistentData(zPath, new byte[0], NodeExistsPolicy.SKIP);
if (tabletServerLock.tryLock(lw, lockContent)) {
log.debug("Obtained tablet server lock {}", tabletServerLock.getLockPath());
lockID = tabletServerLock.getLockID()
.serialize(context.getZooKeeperRoot() + Constants.ZTSERVERS + "/");
return;
代码示例来源:origin: apache/accumulo
public synchronized boolean tryLock(LockWatcher lw, byte data[])
throws KeeperException, InterruptedException {
TryLockAsyncLockWatcher tlalw = new TryLockAsyncLockWatcher(lw);
lockAsync(tlalw, data);
if (tlalw.acquiredLock) {
return true;
}
if (asyncLock != null) {
zooKeeper.recursiveDelete(path + "/" + asyncLock, NodeMissingPolicy.SKIP);
asyncLock = null;
}
return false;
}
代码示例来源:origin: apache/accumulo
public static void main(String[] args) throws Exception {
try (ServerContext context = new ServerContext(new SiteConfiguration())) {
String tserverPath = context.getZooKeeperRoot() + Constants.ZTSERVERS;
Opts opts = new Opts();
opts.parseArgs(TabletServerLocks.class.getName(), args);
ZooCache cache = context.getZooCache();
ZooReaderWriter zoo = context.getZooReaderWriter();
if (opts.list) {
List<String> tabletServers = zoo.getChildren(tserverPath);
for (String tabletServer : tabletServers) {
byte[] lockData = ZooLock.getLockData(cache, tserverPath + "/" + tabletServer, null);
String holder = null;
if (lockData != null) {
holder = new String(lockData, UTF_8);
}
System.out.printf("%32s %16s%n", tabletServer, holder);
}
} else if (opts.delete != null) {
ZooLock.deleteLock(zoo, tserverPath + "/" + args[1]);
} else {
System.out.println(
"Usage : " + TabletServerLocks.class.getName() + " -list|-delete <tserver lock>");
}
}
}
代码示例来源:origin: apache/accumulo
public synchronized boolean tryToCancelAsyncLockOrUnlock()
throws InterruptedException, KeeperException {
boolean del = false;
if (asyncLock != null) {
zooKeeper.recursiveDelete(path + "/" + asyncLock, NodeMissingPolicy.SKIP);
del = true;
}
if (lock != null) {
unlock();
del = true;
}
return del;
}
代码示例来源:origin: apache/accumulo
@Override
public Repo<Master> call(long tid, Master master) throws Exception {
// suppress assignment of tablets to the server
if (force) {
ZooReaderWriter zoo = master.getContext().getZooReaderWriter();
String path = master.getZooKeeperRoot() + Constants.ZTSERVERS + "/" + server.getLocation();
ZooLock.deleteLock(zoo, path);
path = master.getZooKeeperRoot() + Constants.ZDEADTSERVERS + "/" + server.getLocation();
zoo.putPersistentData(path, "forced down".getBytes(UTF_8), NodeExistsPolicy.OVERWRITE);
}
return null;
}
代码示例来源:origin: apache/accumulo
if (!ZooLock.isLockHeld(context.getZooCache(), lid)) {
代码示例来源:origin: apache/accumulo
private String lockString(ZooLock mlock) {
return mlock.getLockID().serialize(context.getZooKeeperRoot() + Constants.ZMASTER_LOCK);
}
代码示例来源:origin: apache/accumulo
public synchronized void replaceLockData(byte[] b) throws KeeperException, InterruptedException {
if (getLockPath() != null)
zooKeeper.getZooKeeper().setData(getLockPath(), b, -1);
}
代码示例来源:origin: apache/accumulo
@Override
public synchronized void process(WatchedEvent event) {
log.debug("event {} {} {}", event.getPath(), event.getType(), event.getState());
watchingParent = false;
if (event.getState() == KeeperState.Expired && lock != null) {
lostLock(LockLossReason.SESSION_EXPIRED);
} else {
try { // set the watch on the parent node again
zooKeeper.getStatus(path, this);
watchingParent = true;
} catch (KeeperException.ConnectionLossException ex) {
// we can't look at the lock because we aren't connected, but our session is still good
log.warn("lost connection to zookeeper");
} catch (Exception ex) {
if (lock != null || asyncLock != null) {
lockWatcher.unableToMonitorLockNode(ex);
log.error(
"Error resetting watch on ZooLock " + lock == null ? asyncLock : lock + " " + event,
ex);
}
}
}
}
代码示例来源:origin: apache/accumulo
lockAsync(myLock, lw);
代码示例来源:origin: apache/accumulo
@Override
public void run() {
log.info("Master requested tablet server halt");
gcLogger.logGCInfo(TabletServer.this.getConfiguration());
serverStopRequested = true;
try {
tabletServerLock.unlock();
} catch (Exception e) {
log.error("Caught exception unlocking TabletServer lock", e);
}
}
});
代码示例来源:origin: apache/accumulo
String path = tserversPath + "/" + child;
if (zoo.getChildren(path).size() > 0) {
if (!ZooLock.deleteLock(zoo, path, "tserver")) {
message("Did not delete " + tserversPath + "/" + child, opts);
代码示例来源:origin: apache/accumulo
lockHeld = ZooLock.isLockHeld(zooCache, new ZooUtil.LockID(zooRoot, lockId));
} catch (Exception e) {
log.debug("Failed to verify lock was held {} {}", lockId, e.getMessage());
代码示例来源:origin: apache/accumulo
private static void retryZooKeeperUpdate(ServerContext context, ZooLock zooLock,
ZooOperation op) {
while (true) {
try {
IZooReaderWriter zoo = context.getZooReaderWriter();
if (zoo.isLockHeld(zooLock.getLockID())) {
op.run(zoo);
}
break;
} catch (Exception e) {
log.error("Unexpected exception {}", e.getMessage(), e);
}
sleepUninterruptibly(1, TimeUnit.SECONDS);
}
}
代码示例来源:origin: org.apache.accumulo/accumulo-fate
public synchronized void replaceLockData(byte[] b) throws KeeperException, InterruptedException {
if (getLockPath() != null)
zooKeeper.getZooKeeper().setData(getLockPath(), b, -1);
}
我最近安装了一个带有 Exhibitor 的新 ZK 节点,它开始正常。当我执行 telnet localhost 2181 然后运行 stats 以查看版本时,即使我安装了 3.4.11,我仍然
每 the zookeeper docs , 可以创建一种以“ super ”用户身份访问 Zookeeper 集合的方法。这样做的方向在配置和连接方法方面都有些模糊。它确实巧妙地表明这只能通过 Ja
场景如下: Znode 创建:create/config 12345(例如创建于12/12/12) 更新此配置,设置/config 34567(例如在 2013 年 12 月 12 日修改) 一个月后
使用Zookeeper API,是否可以知道当前服务器是否是Zookeeper集群的leader? 文档提到领导者看到了所有追随者中最高的zxid。。是否有可能以某种方式检查? 最佳答案 您可以从不同
我正在学习 ZooKeeper 并研究备份存储在 ZooKeeper 中的数据的选项。 ZooKeeper 写入两个数据文件,快照和事务日志。人们经常提到快照是“模糊的”,需要重放事务日志以获取最新状
用例:一个池中有 100 个服务器;我想在每个服务器上启动一个 ZooKeeper 服务,服务器应用程序(ZooKeeper 客户端)将使用 ZooKeeper 集群(读/写)。那么就没有单点故障。
我正在运行 3 节点 zookeeper 集群来处理 Storm 和 kafka.Zookeeper 数据目录占用了我系统中的所有空间。我不知道如何清理它。因为,我不想完全删除数据,因为我会丢失进程的
我是 Zookeeper 的新手,试图了解它是否适合我的用例。 我有 1000 万个分层数据,我想将它们存储在 Zookeeper 中。 10M 键值对,键值对大小分别为 1KB。 因此,在没有复
在 here 有人说: "even if you read from a different follower every time, you'll never see version 3 of th
Zookeeper 临时节点是否写入磁盘? 我知道在 Zookeeper 确认写入客户端之前,正常的 Zookeeper 节点已写入磁盘。 但是,临时节点仅在客户端 session 期间持续,因此如果
在开发阶段使用zookeeper大约6个月后,虽然运行良好,但其数据目录的大小增长到 6 GIG !而且还在增加。下面列出了一些系统规范: zookeeper version: 3.4.6 numbe
我试图了解 Apache ZooKeeper 在裂脑情况下的内部工作原理。假设有一个由 5 个服务器组成的集群:A、B、C、D 和 E,其中 A 是领导者。现在假设子簇 {A, B} 与子簇 {C,
动物园管理员专家。 我问的问题对你来说可能很基础,但我是 ZK 的新手,我还没有掌握该工具,所以请原谅。考虑到这一点,这是我的问题。 假设我有一个由 5 个服务器组成的 ZK 集群,我有 3 个法定人
我正在尝试了解 Zookeeper 中的分层仲裁。文档 here 举了一个例子,但我仍然不确定我是否理解它。我的问题是,如果我有一个双节点 Zookeeper 集群(我知道不推荐这样做,但为了这个例子
我们使用的是2.3.0版本的curator-framework连接pom文件中的zookeeper。 org.apache.curator curator-fram
我们在开发机器上有一个独立的 zookeeper 设置。除了这台 testdev 机器之外,它适用于所有其他开发机器。 尝试通过 testdev 连接到 zookeeper 时,我们一遍又一遍地收到此
zookeeper 事务日志变得非常大(数千兆字节!)并且集群的每台机器中始终存在一个或最多两个事务日志文件,因为知道可能存在多个快照! .. 引入 autopurge.purgeInterval 和
本文整理了Java中org.apache.flink.shaded.zookeeper.org.apache.zookeeper.ZooKeeper.getSessionId()方法的一些代码示例,展
我需要一些帮助来使用 zookeeper-shell.sh 验证 znode(path) 是否存在于 zookeeper 中 示例:bin/zookeeper-shell.sh zk:9091 ls/
我需要使用 tcpdump 调试我的 kafka 消费者和 zookeeper 之间交换的数据。我浏览了 zookeeper 文档,但找不到任何关于 zookeeper 通信协议(protocol)的
我是一名优秀的程序员,十分优秀!