List of usage examples for org.apache.zookeeper WatchedEvent getState
public KeeperState getState()
From source file:org.apache.curator.x.async.details.InternalWatcher.java
License:Apache License
@Override public void process(WatchedEvent event) { final WatchedEvent localEvent = (watcherFilter != null) ? watcherFilter.apply(event) : event; switch (localEvent.getState()) { default: {/* w w w . ja v a 2 s.com*/ if ((watchMode != WatchMode.stateChangeOnly) && (localEvent.getType() != Event.EventType.None)) { if (!future.complete(localEvent)) { future.obtrudeValue(localEvent); } } break; } case Disconnected: case AuthFailed: case Expired: { if (watchMode != WatchMode.successOnly) { AsyncEventException exception = new AsyncEventException() { private final AtomicBoolean isReset = new AtomicBoolean(false); @Override public Event.KeeperState getKeeperState() { return localEvent.getState(); } @Override public CompletionStage<WatchedEvent> reset() { Preconditions.checkState(isReset.compareAndSet(false, true), "Already reset"); future = new CompletableFuture<>(); return future; } }; future.completeExceptionally(exception); } break; } } }
From source file:org.apache.curator.x.rpc.idl.structs.RpcCuratorEvent.java
License:Apache License
public RpcCuratorEvent(WatchedEvent event) { this.type = RpcCuratorEventType.WATCHED; this.resultCode = 0; this.path = event.getPath(); this.context = null; this.stat = null; this.data = null; this.name = null; this.children = null; this.aclList = null; this.watchedEvent = new RpcWatchedEvent(RpcKeeperState.valueOf(event.getState().name()), RpcEventType.valueOf(event.getType().name()), event.getPath()); this.leaderEvent = null; this.childrenCacheEvent = null; }
From source file:org.apache.curator.x.rpc.idl.structs.RpcWatchedEvent.java
License:Apache License
public RpcWatchedEvent(WatchedEvent watchedEvent) { keeperState = RpcKeeperState.valueOf(watchedEvent.getState().name()); eventType = RpcEventType.valueOf(watchedEvent.getType().name()); path = watchedEvent.getPath();//from w w w . j a va 2 s . co m }
From source file:org.apache.cxf.dosgi.discovery.zookeeper.ZooKeeperDiscovery.java
License:Apache License
public void process(WatchedEvent event) { LOG.debug("got ZooKeeper event " + event); switch (event.getState()) { case SyncConnected: LOG.info("Connection to ZooKeeper established"); // this event can be triggered more than once in a row (e.g. after Disconnected event), // so we must be re-entrant here start();/*from ww w .j a va 2s . c o m*/ break; case Expired: LOG.info("Connection to ZooKeeper expired. Trying to create a new connection"); stop(false); createZooKeeper(curConfiguration); break; default: // ignore other events break; } }
From source file:org.apache.distributedlog.impl.federated.FederatedZKLogMetadataStore.java
License:Apache License
@Override public void process(WatchedEvent watchedEvent) { if (Event.EventType.None == watchedEvent.getType() && Event.KeeperState.Expired == watchedEvent.getState()) { scheduleTask(this, conf.getZKSessionTimeoutMilliseconds()); return;/*from w w w . j a v a 2 s . c o m*/ } if (Event.EventType.NodeChildrenChanged == watchedEvent.getType()) { // fetch the namespace fetchSubNamespaces(this).whenComplete(this); } }
From source file:org.apache.distributedlog.impl.ZKLogSegmentMetadataStore.java
License:Apache License
/** * Process the watched events for registered listeners. *//*ww w.ja v a 2s . co m*/ @Override public void process(WatchedEvent event) { if (Event.EventType.None == event.getType() && Event.KeeperState.Expired == event.getState()) { Set<String> keySet = new HashSet<String>(listeners.keySet()); for (String logSegmentsPath : keySet) { scheduleTask(logSegmentsPath, new ReadLogSegmentsTask(logSegmentsPath, this), 0L); } return; } String path = event.getPath(); if (null == path) { return; } switch (event.getType()) { case NodeDeleted: notifyLogStreamDeleted(path, listeners.remove(path)); break; case NodeChildrenChanged: new ReadLogSegmentsTask(path, this).run(); break; default: break; } }
From source file:org.apache.giraph.bsp.BspService.java
License:Apache License
@Override public final void process(WatchedEvent event) { // 1. Process all shared events // 2. Process specific derived class events if (LOG.isDebugEnabled()) { LOG.debug("process: Got a new event, path = " + event.getPath() + ", type = " + event.getType() + ", state = " + event.getState()); }/*from ww w .j ava 2 s . c o m*/ if ((event.getPath() == null) && (event.getType() == EventType.None)) { if (event.getState() == KeeperState.Disconnected) { // Watches may not be triggered for some time, so signal all BspEvents for (BspEvent bspEvent : registeredBspEvents) { bspEvent.signal(); } LOG.warn("process: Disconnected from ZooKeeper (will automatically " + "try to recover) " + event); } else if (event.getState() == KeeperState.SyncConnected) { if (LOG.isInfoEnabled()) { LOG.info("process: Asynchronous connection complete."); } connectedEvent.signal(); } else { LOG.warn("process: Got unknown null path event " + event); } return; } boolean eventProcessed = false; if (event.getPath().startsWith(masterJobStatePath)) { // This will cause all becomeMaster() MasterThreads to notice the // change in job state and quit trying to become the master. masterElectionChildrenChanged.signal(); eventProcessed = true; } else if ((event.getPath().contains(WORKER_HEALTHY_DIR) || event.getPath().contains(WORKER_UNHEALTHY_DIR)) && (event.getType() == EventType.NodeChildrenChanged)) { if (LOG.isDebugEnabled()) { LOG.debug("process: workerHealthRegistrationChanged " + "(worker health reported - healthy/unhealthy )"); } workerHealthRegistrationChanged.signal(); eventProcessed = true; } else if (processMappingEvent(event) || processVertexEvent(event) || processEdgeEvent(event)) { return; } else if (event.getPath().contains(ADDRESSES_AND_PARTITIONS_DIR) && event.getType() == EventType.NodeCreated) { if (LOG.isInfoEnabled()) { LOG.info("process: partitionAssignmentsReadyChanged " + "(partitions are assigned)"); } addressesAndPartitionsReadyChanged.signal(); eventProcessed = true; } else if (event.getPath().contains(SUPERSTEP_FINISHED_NODE) && event.getType() == EventType.NodeCreated) { if (LOG.isInfoEnabled()) { LOG.info("process: superstepFinished signaled"); } superstepFinished.signal(); eventProcessed = true; } else if (event.getPath().endsWith(applicationAttemptsPath) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isInfoEnabled()) { LOG.info("process: applicationAttemptChanged signaled"); } applicationAttemptChanged.signal(); eventProcessed = true; } else if (event.getPath().contains(MASTER_ELECTION_DIR) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isInfoEnabled()) { LOG.info("process: masterElectionChildrenChanged signaled"); } masterElectionChildrenChanged.signal(); eventProcessed = true; } else if (event.getPath().equals(cleanedUpPath) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isInfoEnabled()) { LOG.info("process: cleanedUpChildrenChanged signaled"); } cleanedUpChildrenChanged.signal(); eventProcessed = true; } if (!(processEvent(event)) && (!eventProcessed)) { LOG.warn("process: Unknown and unprocessed event (path=" + event.getPath() + ", type=" + event.getType() + ", state=" + event.getState() + ")"); } }
From source file:org.apache.giraph.graph.BspService.java
License:Apache License
@Override public final void process(WatchedEvent event) { // 1. Process all shared events // 2. Process specific derived class events if (LOG.isDebugEnabled()) { LOG.debug("process: Got a new event, path = " + event.getPath() + ", type = " + event.getType() + ", state = " + event.getState()); }/*w ww . ja v a 2 s .c o m*/ if ((event.getPath() == null) && (event.getType() == EventType.None)) { if (event.getState() == KeeperState.Disconnected) { // No way to recover from a disconnect event, signal all BspEvents for (BspEvent bspEvent : registeredBspEvents) { bspEvent.signal(); } throw new RuntimeException("process: Disconnected from ZooKeeper, cannot recover - " + event); } else if (event.getState() == KeeperState.SyncConnected) { if (LOG.isInfoEnabled()) { LOG.info("process: Asynchronous connection complete."); } connectedEvent.signal(); } else { LOG.warn("process: Got unknown null path event " + event); } return; } boolean eventProcessed = false; if (event.getPath().startsWith(masterJobStatePath)) { // This will cause all becomeMaster() MasterThreads to notice the // change in job state and quit trying to become the master. masterElectionChildrenChanged.signal(); eventProcessed = true; } else if ((event.getPath().contains(WORKER_HEALTHY_DIR) || event.getPath().contains(WORKER_UNHEALTHY_DIR)) && (event.getType() == EventType.NodeChildrenChanged)) { if (LOG.isDebugEnabled()) { LOG.debug("process: workerHealthRegistrationChanged " + "(worker health reported - healthy/unhealthy )"); } workerHealthRegistrationChanged.signal(); eventProcessed = true; } else if (event.getPath().equals(inputSplitsAllReadyPath) && (event.getType() == EventType.NodeCreated)) { if (LOG.isInfoEnabled()) { LOG.info("process: inputSplitsReadyChanged " + "(input splits ready)"); } inputSplitsAllReadyChanged.signal(); eventProcessed = true; } else if (event.getPath().endsWith(INPUT_SPLIT_RESERVED_NODE) && (event.getType() == EventType.NodeCreated)) { if (LOG.isDebugEnabled()) { LOG.debug("process: inputSplitsStateChanged " + "(made a reservation)"); } inputSplitsStateChanged.signal(); eventProcessed = true; } else if (event.getPath().endsWith(INPUT_SPLIT_RESERVED_NODE) && (event.getType() == EventType.NodeDeleted)) { if (LOG.isInfoEnabled()) { LOG.info("process: inputSplitsStateChanged " + "(lost a reservation)"); } inputSplitsStateChanged.signal(); eventProcessed = true; } else if (event.getPath().endsWith(INPUT_SPLIT_FINISHED_NODE) && (event.getType() == EventType.NodeCreated)) { if (LOG.isDebugEnabled()) { LOG.debug("process: inputSplitsStateChanged " + "(finished inputsplit)"); } inputSplitsStateChanged.signal(); eventProcessed = true; } else if (event.getPath().endsWith(INPUT_SPLIT_DONE_DIR) && (event.getType() == EventType.NodeChildrenChanged)) { if (LOG.isDebugEnabled()) { LOG.debug("process: inputSplitsDoneStateChanged " + "(worker finished sending)"); } inputSplitsDoneStateChanged.signal(); eventProcessed = true; } else if (event.getPath().equals(inputSplitsAllDonePath) && (event.getType() == EventType.NodeCreated)) { if (LOG.isInfoEnabled()) { LOG.info("process: inputSplitsAllDoneChanged " + "(all vertices sent from input splits)"); } inputSplitsAllDoneChanged.signal(); eventProcessed = true; } else if (event.getPath().contains(PARTITION_ASSIGNMENTS_DIR) && event.getType() == EventType.NodeCreated) { if (LOG.isInfoEnabled()) { LOG.info("process: partitionAssignmentsReadyChanged " + "(partitions are assigned)"); } partitionAssignmentsReadyChanged.signal(); eventProcessed = true; } else if (event.getPath().contains(SUPERSTEP_FINISHED_NODE) && event.getType() == EventType.NodeCreated) { if (LOG.isInfoEnabled()) { LOG.info("process: superstepFinished signaled"); } superstepFinished.signal(); eventProcessed = true; } else if (event.getPath().endsWith(applicationAttemptsPath) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isInfoEnabled()) { LOG.info("process: applicationAttemptChanged signaled"); } applicationAttemptChanged.signal(); eventProcessed = true; } else if (event.getPath().contains(MASTER_ELECTION_DIR) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isInfoEnabled()) { LOG.info("process: masterElectionChildrenChanged signaled"); } masterElectionChildrenChanged.signal(); eventProcessed = true; } else if (event.getPath().equals(cleanedUpPath) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isInfoEnabled()) { LOG.info("process: cleanedUpChildrenChanged signaled"); } cleanedUpChildrenChanged.signal(); eventProcessed = true; } if (!(processEvent(event)) && (!eventProcessed)) { LOG.warn("process: Unknown and unprocessed event (path=" + event.getPath() + ", type=" + event.getType() + ", state=" + event.getState() + ")"); } }
From source file:org.apache.giraph.worker.InputSplitsHandler.java
License:Apache License
@Override public void process(WatchedEvent event) { if (event.getPath() == null) { LOG.warn("process: Problem with zookeeper, got event with path null, " + "state " + event.getState() + ", event type " + event.getType()); return;//from ww w . j a va2 s . c om } // Check if the reservation for the input split was lost // (some worker died) if (event.getPath().endsWith(inputSplitReservedNode) && event.getType() == Watcher.Event.EventType.NodeDeleted) { synchronized (pathList) { String split = event.getPath(); split = split.substring(0, split.indexOf(inputSplitReservedNode)); pathList.add(split); if (LOG.isInfoEnabled()) { LOG.info("process: Input split " + split + " lost reservation"); } } } }
From source file:org.apache.hadoop.contrib.bkjournal.BKJMUtil.java
License:Apache License
static ZooKeeper connectZooKeeper() throws IOException, KeeperException, InterruptedException { final CountDownLatch latch = new CountDownLatch(1); ZooKeeper zkc = new ZooKeeper(zkEnsemble, 3600, new Watcher() { public void process(WatchedEvent event) { if (event.getState() == Watcher.Event.KeeperState.SyncConnected) { latch.countDown();//from w w w. j a v a2s . c o m } } }); if (!latch.await(3, TimeUnit.SECONDS)) { throw new IOException("Zookeeper took too long to connect"); } return zkc; }