更新时间:2022-12-14 GMT+08:00

配置客户端绑定IP

配置场景

以防多重IP节点,当前ZooKeeper客户端绑定任何一个可获取的IP。在生产环境数据流层、管理层或其他的网络层将会有不同的IP段。ZooKeeper客户端将会绑定数据流层的IP。这将有助于帮助定位数据IP不可到达的失败场景。

配置描述

配置“zookeeper.client.bind.address”来确保客户端总是绑定到指定IP。如果要将“zookeeper.client.bind.address”的值设为X,在ZooKeeper客户端启动时传入以下系统属性:-Dzookeeper.client.bind.address=X。

表1 客户端绑定IP地址配置参数

参数

系统参数

描述

默认值

zookeeper.client.bind.address

zookeeper.client.bind.address

绑定在ZooKeeper客户端的IP或者hostname。这是可选参数,默认ZooKeeper客户端绑定到系统中任何一个可获取的IP。

-

操作步骤

  1. 以客户端安装用户,登录安装客户端的节点。
  2. 执行以下命令,进入客户端安装路径。

    cd /opt/client

  3. 执行以下命令编辑component_env文件。

    vi ZooKeeper/component_env

    添加“zookeeper.client.bind.address”参数及参数值。

    普通模式:

    export ZOOKEEPER_HOME="/opt/client/ZooKeeper/zookeeper"
    PATH_NEW=`echo $PATH | sed "s|:$ZOOKEEPER_HOME/bin||g" | sed "s|$ZOOKEEPER_HOME/bin:||g"`
    export PATH="$ZOOKEEPER_HOME/bin:$PATH_NEW"
    # default heap for zookeeper client
    export ZK_CLIENT_HEAP="256"
    export CLIENT_JVMFLAGS="-Xmx${ZK_CLIENT_HEAP}m"
    export CLIENT_JVMFLAGS="$CLIENT_JVMFLAGS -Dzookeeper.root.logger=WARN,CONSOLE -Dzookeeper.request.timeout=120000 -Dzookeeper.client.bind.address=X" #添加参数,X为配置的IP地址

    安全模式:

    if [ "$HADOOP_SECURITY_AUTHENTICATION" = "kerberos" ]; then
        default_realm=`cat $KRB5_CONFIG |grep default_realm|awk -F"=" '{gsub(" ","");print $2}'|tr 'A-Z' 'a-z'`
        export ZOO_SERVER_PRINCIPAL="zookeeper/hadoop.${default_realm}"
        export CLIENT_JVMFLAGS=" ${CLIENT_JVMFLAGS} -Djava.security.krb5.conf=$KRB5_CONFIG -Dzookeeper.kin -Dzookeeper.client.bind.address=X" #添加参数,X为配置的IP地址

  1. 执行:wq命令保存。
  2. 重启客户端使配置生效。