Example usage for org.apache.zookeeper WatchedEvent getPath

List of usage examples for org.apache.zookeeper WatchedEvent getPath

Introduction

In this page you can find the example usage for org.apache.zookeeper WatchedEvent getPath.

Prototype

public String getPath() 

Source Link

Usage

From source file:org.apache.flume.agent.SmartAvroSource.java

License:Apache License

public void etlAndMonitorData(WatchedEvent event, String path) {
    // ??/*ww w  . j a v a  2  s  .  c o  m*/
    String ip = congZkUtils.readData(path);
    String tempPath = event.getPath() + "/" + ip;
    if ("".equals(ip)) {
        return;
    }
    String nodeData = congZkUtils.readData(tempPath);
    String zhuPath = path + "/" + hostname + "/" + systemProperties.getIp_() + "/" + ip;
    // ?zk
    zhuZkUtils.writeData(path, ip);
    zhuZkUtils.writeData(zhuPath, nodeData);
    logger.info("??,:" + zhuPath);
    // ?
    monitorLocalNodeData(path + "/" + systemProperties.getIp_(), 0);
    if (path.equals(FlumeConstants.AGENT_LOG_ROOT)) {
        monitorLocalNodeData(tempPath, 1);
    }
    //      monitorLocalNodeData(path + "/" + systemProperties.getIp_(), congZk, 1);
    //      monitorSenderNodeData(zhuPath, zhuZk);
}

From source file:org.apache.flume.node.MyWatcher.java

License:Apache License

public void process(WatchedEvent event) {
    try {//from  ww  w .  j  a va 2s  . c  o  m
        if ((event.getPath() != null) && (event.getType() != Watcher.Event.EventType.None))
            ZooKeeperUtils.keeper.exists(this.path, new MyWatcher(this.path));
    } catch (Exception e) {
        logger.error("watcher:", e);
    }
    logger.info("zookeeper node change :" + event.getPath() + "-" + event.getType().toString());
    if (StringUtils.isEmpty(this.path))
        return;
    if ((this.path.equals(event.getPath())) && (event.getType() == Watcher.Event.EventType.NodeDeleted))
        System.exit(0);
}

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());
    }/*w w w  .  j  a v  a 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.bsp.BspService.java

License:Apache License

/**
 * Process WatchedEvent for Mapping Inputsplits
 *
 * @param event watched event/*from   w  w  w.  j  a  v a 2  s .c  o m*/
 * @return true if event processed
 */
public final boolean processMappingEvent(WatchedEvent event) {
    boolean eventProcessed = false;
    if (event.getPath().equals(mappingInputSplitsPaths.getAllReadyPath())
            && (event.getType() == EventType.NodeCreated)) {
        if (LOG.isInfoEnabled()) {
            LOG.info("process: inputSplitsReadyChanged " + "(input splits ready)");
        }
        mappingInputSplitsEvents.getAllReadyChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().endsWith(MAPPING_INPUT_SPLIT_RESERVED_NODE)
            && (event.getType() == EventType.NodeCreated)) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("process: mappingInputSplitsStateChanged " + "(made a reservation)");
        }
        mappingInputSplitsEvents.getStateChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().endsWith(MAPPING_INPUT_SPLIT_RESERVED_NODE)
            && (event.getType() == EventType.NodeDeleted)) {
        if (LOG.isInfoEnabled()) {
            LOG.info("process: mappingInputSplitsStateChanged " + "(lost a reservation)");
        }
        mappingInputSplitsEvents.getStateChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().endsWith(MAPPING_INPUT_SPLIT_FINISHED_NODE)
            && (event.getType() == EventType.NodeCreated)) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("process: mappingInputSplitsStateChanged " + "(finished inputsplit)");
        }
        mappingInputSplitsEvents.getStateChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().endsWith(MAPPING_INPUT_SPLIT_DONE_DIR)
            && (event.getType() == EventType.NodeChildrenChanged)) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("process: mappingInputSplitsDoneStateChanged " + "(worker finished sending)");
        }
        mappingInputSplitsEvents.getDoneStateChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().equals(mappingInputSplitsPaths.getAllDonePath())
            && (event.getType() == EventType.NodeCreated)) {
        if (LOG.isInfoEnabled()) {
            LOG.info("process: mappingInputSplitsAllDoneChanged " + "(all entries sent from input splits)");
        }
        mappingInputSplitsEvents.getAllDoneChanged().signal();
        eventProcessed = true;
    }
    return eventProcessed;
}

From source file:org.apache.giraph.bsp.BspService.java

License:Apache License

/**
 * Process WatchedEvent for Vertex Inputsplits
 *
 * @param event watched event/*ww  w.ja  v  a  2  s .  c  o  m*/
 * @return true if event processed
 */
public final boolean processVertexEvent(WatchedEvent event) {
    boolean eventProcessed = false;
    if (event.getPath().equals(vertexInputSplitsPaths.getAllReadyPath())
            && (event.getType() == EventType.NodeCreated)) {
        if (LOG.isInfoEnabled()) {
            LOG.info("process: inputSplitsReadyChanged " + "(input splits ready)");
        }
        vertexInputSplitsEvents.getAllReadyChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().endsWith(VERTEX_INPUT_SPLIT_RESERVED_NODE)
            && (event.getType() == EventType.NodeCreated)) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("process: vertexInputSplitsStateChanged " + "(made a reservation)");
        }
        vertexInputSplitsEvents.getStateChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().endsWith(VERTEX_INPUT_SPLIT_RESERVED_NODE)
            && (event.getType() == EventType.NodeDeleted)) {
        if (LOG.isInfoEnabled()) {
            LOG.info("process: vertexInputSplitsStateChanged " + "(lost a reservation)");
        }
        vertexInputSplitsEvents.getStateChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().endsWith(VERTEX_INPUT_SPLIT_FINISHED_NODE)
            && (event.getType() == EventType.NodeCreated)) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("process: vertexInputSplitsStateChanged " + "(finished inputsplit)");
        }
        vertexInputSplitsEvents.getStateChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().endsWith(VERTEX_INPUT_SPLIT_DONE_DIR)
            && (event.getType() == EventType.NodeChildrenChanged)) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("process: vertexInputSplitsDoneStateChanged " + "(worker finished sending)");
        }
        vertexInputSplitsEvents.getDoneStateChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().equals(vertexInputSplitsPaths.getAllDonePath())
            && (event.getType() == EventType.NodeCreated)) {
        if (LOG.isInfoEnabled()) {
            LOG.info("process: vertexInputSplitsAllDoneChanged " + "(all vertices sent from input splits)");
        }
        vertexInputSplitsEvents.getAllDoneChanged().signal();
        eventProcessed = true;
    }
    return eventProcessed;
}

From source file:org.apache.giraph.bsp.BspService.java

License:Apache License

/**
 * Process WatchedEvent for Edge Inputsplits
 *
 * @param event watched event//from ww w.j ava 2s  .  c o  m
 * @return true if event processed
 */
public final boolean processEdgeEvent(WatchedEvent event) {
    boolean eventProcessed = false;
    if (event.getPath().equals(edgeInputSplitsPaths.getAllReadyPath())
            && (event.getType() == EventType.NodeCreated)) {
        if (LOG.isInfoEnabled()) {
            LOG.info("process: edgeInputSplitsReadyChanged " + "(input splits ready)");
        }
        edgeInputSplitsEvents.getAllReadyChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().endsWith(EDGE_INPUT_SPLIT_RESERVED_NODE)
            && (event.getType() == EventType.NodeCreated)) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("process: edgeInputSplitsStateChanged " + "(made a reservation)");
        }
        edgeInputSplitsEvents.getStateChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().endsWith(EDGE_INPUT_SPLIT_RESERVED_NODE)
            && (event.getType() == EventType.NodeDeleted)) {
        if (LOG.isInfoEnabled()) {
            LOG.info("process: edgeInputSplitsStateChanged " + "(lost a reservation)");
        }
        edgeInputSplitsEvents.getStateChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().endsWith(EDGE_INPUT_SPLIT_FINISHED_NODE)
            && (event.getType() == EventType.NodeCreated)) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("process: edgeInputSplitsStateChanged " + "(finished inputsplit)");
        }
        edgeInputSplitsEvents.getStateChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().endsWith(EDGE_INPUT_SPLIT_DONE_DIR)
            && (event.getType() == EventType.NodeChildrenChanged)) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("process: edgeInputSplitsDoneStateChanged " + "(worker finished sending)");
        }
        edgeInputSplitsEvents.getDoneStateChanged().signal();
        eventProcessed = true;
    } else if (event.getPath().equals(edgeInputSplitsPaths.getAllDonePath())
            && (event.getType() == EventType.NodeCreated)) {
        if (LOG.isInfoEnabled()) {
            LOG.info("process: edgeInputSplitsAllDoneChanged " + "(all edges sent from input splits)");
        }
        edgeInputSplitsEvents.getAllDoneChanged().signal();
        eventProcessed = true;
    }
    return eventProcessed;
}

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  va2s.  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.graph.BspServiceMaster.java

License:Apache License

@Override
public boolean processEvent(WatchedEvent event) {
    boolean foundEvent = false;
    if (event.getPath().contains(WORKER_HEALTHY_DIR) && (event.getType() == EventType.NodeDeleted)) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("processEvent: Healthy worker died (node deleted) " + "in " + event.getPath());
        }/*  w  w  w  .j a v a  2  s.  c o m*/
        checkHealthyWorkerFailure(event.getPath());
        superstepStateChanged.signal();
        foundEvent = true;
    } else if (event.getPath().contains(WORKER_FINISHED_DIR)
            && event.getType() == EventType.NodeChildrenChanged) {
        if (LOG.isDebugEnabled()) {
            LOG.debug(
                    "processEvent: Worker finished (node change) " + "event - superstepStateChanged signaled");
        }
        superstepStateChanged.signal();
        foundEvent = true;
    }

    return foundEvent;
}

From source file:org.apache.giraph.graph.BspServiceWorker.java

License:Apache License

@Override
protected boolean processEvent(WatchedEvent event) {
    boolean foundEvent = false;
    if (event.getPath().startsWith(masterJobStatePath) && (event.getType() == EventType.NodeChildrenChanged)) {
        if (LOG.isInfoEnabled()) {
            LOG.info("processEvent: Job state changed, checking " + "to see if it needs to restart");
        }//w w w. java  2 s .  c  o m
        JSONObject jsonObj = getJobState();
        try {
            if ((ApplicationState
                    .valueOf(jsonObj.getString(JSONOBJ_STATE_KEY)) == ApplicationState.START_SUPERSTEP)
                    && jsonObj.getLong(JSONOBJ_APPLICATION_ATTEMPT_KEY) != getApplicationAttempt()) {
                LOG.fatal("processEvent: Worker will restart " + "from command - " + jsonObj.toString());
                System.exit(-1);
            }
        } catch (JSONException e) {
            throw new RuntimeException(
                    "processEvent: Couldn't properly get job state from " + jsonObj.toString());
        }
        foundEvent = true;
    } else if (event.getPath().contains(PARTITION_EXCHANGE_DIR)
            && event.getType() == EventType.NodeChildrenChanged) {
        if (LOG.isInfoEnabled()) {
            LOG.info("processEvent : partitionExchangeChildrenChanged "
                    + "(at least one worker is done sending partitions)");
        }
        partitionExchangeChildrenChanged.signal();
        foundEvent = true;
    }

    return foundEvent;
}

From source file:org.apache.giraph.master.BspServiceMaster.java

License:Apache License

@Override
public boolean processEvent(WatchedEvent event) {
    boolean foundEvent = false;
    if (event.getPath().contains(WORKER_HEALTHY_DIR) && (event.getType() == EventType.NodeDeleted)) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("processEvent: Healthy worker died (node deleted) " + "in " + event.getPath());
        }//w  w  w .  java  2s  .  c o  m
        checkHealthyWorkerFailure(event.getPath());
        superstepStateChanged.signal();
        foundEvent = true;
    } else if (event.getPath().contains(WORKER_FINISHED_DIR)
            && event.getType() == EventType.NodeChildrenChanged) {
        if (LOG.isDebugEnabled()) {
            LOG.debug(
                    "processEvent: Worker finished (node change) " + "event - superstepStateChanged signaled");
        }
        superstepStateChanged.signal();
        foundEvent = true;
    } else if (event.getPath().contains(WORKER_WROTE_CHECKPOINT_DIR)
            && event.getType() == EventType.NodeChildrenChanged) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("processEvent: Worker wrote checkpoint (node change) "
                    + "event - workerWroteCheckpoint signaled");
        }
        workerWroteCheckpoint.signal();
        foundEvent = true;
    }

    return foundEvent;
}