private static void logRetrievedMsg(final ZooKeeperWatcher zkw, final String zkNode,
            final byte[] data, final boolean watcherSet) {
        if (!logger.isDebugEnabled()) {
            return;
        }
        logger.debug(zkw.prefix("Retrieved " + ((data == null) ? 0 : data.length)
                + " byte(s) of data from zkNode " + zkNode + (watcherSet ? " and set watcher; " : "; data=")
                + (data == null ? "null" : data.length == 0 ? "empty" : new String(data))));
    }
Creates the specified node and all parent nodes required for it to exist.
<p/>
No watches are set and no errors are thrown if the node already exists.
<p/>
The nodes created are 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