示例#1
0
 /// <summary>Parse an ACL list.</summary>
 /// <remarks>
 /// Parse an ACL list. This includes configuration indirection
 /// <see cref="Org.Apache.Hadoop.Util.ZKUtil.ResolveConfIndirection(string)"/>
 /// </remarks>
 /// <param name="zkAclConf">configuration string</param>
 /// <returns>an ACL list</returns>
 /// <exception cref="System.IO.IOException">on a bad ACL parse</exception>
 public virtual IList <ACL> ParseACLs(string zkAclConf)
 {
     try
     {
         return(ZKUtil.ParseACLs(ZKUtil.ResolveConfIndirection(zkAclConf)));
     }
     catch (ZKUtil.BadAclFormatException e)
     {
         throw new IOException("Parsing " + zkAclConf + " :" + e, e);
     }
 }
示例#2
0
        /// <summary>Utility method to fetch the ZK ACLs from the configuration</summary>
        /// <exception cref="System.Exception"/>
        public static IList <ACL> GetZKAcls(Configuration conf)
        {
            // Parse authentication from configuration.
            string zkAclConf = conf.Get(YarnConfiguration.RmZkAcl, YarnConfiguration.DefaultRmZkAcl
                                        );

            try
            {
                zkAclConf = ZKUtil.ResolveConfIndirection(zkAclConf);
                return(ZKUtil.ParseACLs(zkAclConf));
            }
            catch (Exception e)
            {
                Log.Error("Couldn't read ACLs based on " + YarnConfiguration.RmZkAcl);
                throw;
            }
        }
示例#3
0
        /// <exception cref="Org.Apache.Hadoop.HadoopIllegalArgumentException"/>
        /// <exception cref="System.IO.IOException"/>
        /// <exception cref="Org.Apache.Zookeeper.KeeperException"/>
        private void InitZK()
        {
            zkQuorum = conf.Get(ZkQuorumKey);
            int zkTimeout = conf.GetInt(ZkSessionTimeoutKey, ZkSessionTimeoutDefault);
            // Parse ACLs from configuration.
            string zkAclConf = conf.Get(ZkAclKey, ZkAclDefault);

            zkAclConf = ZKUtil.ResolveConfIndirection(zkAclConf);
            IList <ACL> zkAcls = ZKUtil.ParseACLs(zkAclConf);

            if (zkAcls.IsEmpty())
            {
                zkAcls = ZooDefs.Ids.CreatorAllAcl;
            }
            // Parse authentication from configuration.
            string zkAuthConf = conf.Get(ZkAuthKey);

            zkAuthConf = ZKUtil.ResolveConfIndirection(zkAuthConf);
            IList <ZKUtil.ZKAuthInfo> zkAuths;

            if (zkAuthConf != null)
            {
                zkAuths = ZKUtil.ParseAuth(zkAuthConf);
            }
            else
            {
                zkAuths = Collections.EmptyList();
            }
            // Sanity check configuration.
            Preconditions.CheckArgument(zkQuorum != null, "Missing required configuration '%s' for ZooKeeper quorum"
                                        , ZkQuorumKey);
            Preconditions.CheckArgument(zkTimeout > 0, "Invalid ZK session timeout %s", zkTimeout
                                        );
            int maxRetryNum = conf.GetInt(CommonConfigurationKeys.HaFcElectorZkOpRetriesKey,
                                          CommonConfigurationKeys.HaFcElectorZkOpRetriesDefault);

            elector = new ActiveStandbyElector(zkQuorum, zkTimeout, GetParentZnode(), zkAcls,
                                               zkAuths, new ZKFailoverController.ElectorCallbacks(this), maxRetryNum);
        }