public static void createAndFailSilent(ZooKeeperWatcher zkw, String zkNode) throws KeeperException {
        try {
            RecoverableZooKeeper zk = zkw.getRecoverableZooKeeper();
            waitForZKConnectionIfAuthenticating(zkw);
            if (zk.exists(zkNode, false) == null) {
                zk.create(zkNode, new byte[0], createACL(zkw, zkNode), CreateMode.PERSISTENT);
            }
        } catch (KeeperException.NodeExistsException nee) {
            //
        } catch (KeeperException.NoAuthException nee) {
            try {
                if (null == zkw.getRecoverableZooKeeper().exists(zkNode, false)) {
                    // If we failed to create the file and it does not already
                    // exist.
                    throw (nee);
                }
            } catch (InterruptedException ie) {
                zkw.interruptedException(ie);
            }

        } catch (InterruptedException ie) {
            zkw.interruptedException(ie);
        }
    }
Creates the specified node, if the node does not exist. Does not set a watch and fails
silently if the node already exists.
<p/>
The node created is persistent and open access.

@param zkw   zk reference
@param zkNode path of node
@throws KeeperException if unexpected zookeeper exception
inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/common/zookeeper/ZKUtil.java