怎么关闭自动升级(手机怎么关闭自动升级)
2735
2022-05-30
场景说明
在kafka使用场景中,有时希望访问kafka集群时内网和外网可以通过不同的IP访问,而kafka集群只配置了内网IP的访问接口。本文对双网卡(一个网卡IP对应内网、一个网卡IP对应外网)和单网卡(对应内网IP)两种场景提供访问Kafka集群的方式。
配置方式
下面配置方式以FusionInsight HD中的使用方式说明。
场景一:双网卡
配置原理
Kafka Broker节点主机配置双网卡,一个网卡对应内网IP段,供内网访问使用,一个网卡对应外网IP段,供外网访问使用。
配置原理是:把Broker对应主机的内外网IP都加入到Kafka listener配置中,内外网使用对应的IP去访问。
配置前准备
1. 确定内外网IP的对应关系
文中以FI双平面举例,三个节点,各个节点管理IP(外网)和业务IP(内网)对应关系如下图:
业务平面IP是192.168网段,目前此网段3个节点IP可访问Kafka集群,管理平面IP是8.5网段,此网段3个节点IP不可以正常访问kafka集群。下文假设需要把8.5网段当成外部可访问的网段平面。
2. 安装Kafka客户端并查看配置
1)Kafka客户端的安装方式见产品文档中软件安装的配置客户端部分。
2)创建具有Kafkaadmin权限的用户,具体见产品文档中添加用户和角色部分。
3)登录Kafka客户端,查看Kafka各节点的信息
切换到Kafka客户端安装目录,例如“/opt/kafkaclient”。
cd /opt/kafkaclient
执行以下命令,配置环境变量。
source bigdata_env
执行以下命令,进行用户认证。(普通模式跳过此步骤)
kinit 组件业务用户
执行以下命令,切换到Kafka客户端安装目录。
cd Kafka/kafka/bin
执行./kafka-broker-info.sh --zookeeper zk业务IP:24002/kafka,查询结果为kafka节点的brokerid与kafka业务ip节点的对应关系。
4)后台查看目前集群中listener.security.protocol.map和listeners两个参数的配置
查看Kafka集群各个节点上的/opt/huawei/Bigdata/FusionInsight_Current/1_XX_Broker/etc/server.properties路径,其中1_XX_Broker修改为集群中的具体路径,查看并拷贝保存server.properties文件中的listener.security.protocol.map和listeners配置文件信息到本地。
具体配置方式
说明:listener.security.protocol.map是-名称和安全协议之间的映射,-名称与安全协议这个键值对以冒号分隔,映射条目之间以逗号分隔。listeners是kafka的-,配置格式是:-名称://IP:Port,不同-配置间用逗号隔开。
本文环境中broker-1节点这两个参数设置如下:
listener.security.protocol.map = PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL,TRACE:SASL_PLAINTEXT
listeners = SASL_PLAINTEXT://192.168.131.10:21007,PLAINTEXT://192.168.131.10:21005,SSL://192.168.131.10:21008,SASL_SSL://192.168.131.10:21009,TRACE://192.168.131.10:21013
具体配置方式如下:
1) 在原listener.security.protocol.map配置中添加新IP访问的-名称和访问协议,例如,使用SASL_PLAINTEXT协议,则新增映射EXTERNAL_SASL_PLAINTEXT:SASL_PLAINTEXT,EXTERNAL_SASL_PLAINTEXT是自定义-名称,SASL_PLAINTEXT是协议名,kafka中支持的协议类型有PLAINTEXT、SASL_PLAINTEXT、SASL_SSL、SSL四种。
2) 在各个节点的原listeners配置中添加新IP访问地址EXTERNAL_SASL_PLAINTEXT://8.5.131.10:21112,EXTERNAL_SASL_PLAINTEXT必须与listener.security.protocol.map中新添加的-名一致,8.5.131.10为新增的访问Kafka的IP,21112为此IP访问的端口号。注意:各个节点上的listeners不一样,区别是IP地址不同,各个节点上对应的是本机的IP,修改时,新增的IP地址需与原IP地址是对应的。端口号必须与原配置中的端口号不同,且端口未被使用。查看端口是否使用方式:lsof -i:21112,21112为查询的端口号,如果没有查到信息则此端口未被使用。
3) 修改各个节点的listener.security.protocol.map信息:
执行kafka-configs.sh --entity-type brokers --entity-name 1 --alter --bootstrap-server 192.168.131.10:21007 --add-config listener.security.protocol.map=[PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL,TRACE:SASL_PLAINTEXT ,EXTERNAL_SASL_PLAINTEXT:SASL_PLAINTEXT] --command-config ../config/consumer.properties
--entity-name对应参数1表示brokerid,是kafka-broker-info.sh中查询出的Broker_ID;--bootstrap-server参数是原集群访问的地址,--command-config参数是consumer.properties的绝对或者相对路径,文件中的安全协议security.protocol参数必须与--bootstrap-server中的端口对应;listener.security.protocol.map的值是步骤1中修改后的协议,执行时必须添加“[]”,否则执行报错。
执行时按./kafka-broker-info.sh --zookeeper zk业务IP:24002/kafka查询出的brokerid依次执行(本文中有三个kafka节点,因此上述命令执行三次,即命令中的
--entity-name 分别设置为 1,2,3)。
4) 修改各个节点的listeners信息:
执行kafka-configs.sh --entity-type brokers --entity-name 1 --alter --bootstrap-server 192.168.131.10:21005 --add-config listeners=[PLAINTEXT://192.168.131.10:21005,SASL_PLAINTEXT://192.168.131.10:21007,SSL://192.168.131.10:21008,SASL_SSL://192.168.131.10:21009,TRACE://192.168.131.10:21013, EXTERNAL_SASL_PLAINTEXT://8.5.131.10:21112]
--entity-name对应参数1表示brokerid;--bootstrap-server参数是原集群访问的地址,--command-config参数是consumer.properties的绝对或者相对路径,文件中的安全协议参数必须与--bootstrap-server中的端口对应;listeners中的IP必须与brokerid是一一对应,具体对应关系是kafka-broker-info.sh中brokerid与listeners中原配置IP以及新增IP一一对应。执行时按brokerid依次执行。
例如,本文中对应关系如下:
BrokerID
原kafka访问IP
新增Kafka访问IP
1
192.168.131.10
8.5.131.10
2
192.168.131.11
8.5.131.11
3
192.168.131.12
8.5.131.12
修改时,--entity-name 1对应的listeners中的IP是原IP 192.168.131.10和新增IP 8.5.131.10。
5) 配置完成后原IP可继续访问,新添加的IP按新配置的端口和协议访问,例如,EXTERNAL_SASL_PLAINTEXT对应的是SASL_PLAINTEXT协议,生产数据的命令是kafka-verifiable-producer.sh --max-messages 100 --topic mytest --broker-list 8.5.131.11:21112 --producer.config ../config/producer.properties
说明:配置时,这两个参数原本的配置不能删除,只能在原来的配置上增加新的配置,否则使用kafka-configs.sh命令会报错。添加新的配置后,zk上/brokers/ids/目录下各节点的信息也会改变,可能造成kafka-broker-info.sh信息的展示与添加配置前不同。
例如,listeners配置时新添加的协议在原来协议后面,则不会改变zk上/brokers/ids/目录下各节点的host信息,kafka-broker-info.sh仍显示原IP与brokerid的映射关系。listeners=[PLAINTEXT://192.168.131.10:21005,SASL_PLAINTEXT://192.168.131.10:21007,SSL://192.168.131.10:21008,SASL_SSL://192.168.131.10:21009,TRACE://192.168.131.10:21013 ,EXTERNAL_SASL_PLAINTEXT://8.5.131.10:21112]
而listeners配置时新添加的协议在原来协议前面,则可能会改变zk上/brokers/ids/目录下各节点的host信息,kafka-broker-info.sh显示新IP与brokerid的映射关系。
listeners=[ EXTERNAL_SASL_PLAINTEXT://8.5.131.10:21112,PLAINTEXT://192.168.131.10:21005,SASL_PLAINTEXT://192.168.131.10:21007,SSL://192.168.131.10:21008,SASL_SSL://192.168.131.10:21009,TRACE://192.168.131.10:21013]
场景二:单网卡
配置原理
Kafka Broker节点主机只对应一个网卡,供内网访问使用,防火墙映射出一个可供外网访问的IP,Kafka每个节点内网IP和端口与映射外网相同IP的不同端口,外网访问时,使用此映射的IP和端口。
配置原理是:把Broker对应主机的内网IP和端口加入到Kafka listener配置中,Broker对应的外网IP和端口加入到kafka advertised.listener配置中,外网使用对应的IP和端口去访问,实际访问的还是内网的IP和端口。
配置前准备
1. 网络映射新的IP和端口
此方案中不同节点映射为同一IP不同端口,映射关系如下:
原IP
原端口
映射IP
映射端口
192.168.131.10
21112
8.5.131.10
21027
192.168.131.11
21112
8.5.131.10
21028
192.168.131.12
21112
8.5.131.10
21029
192.168网段是原集群中的业务IP,8.5网段是新映射的IP,外网可直接访问此网段。访问时,不同端口实际上访问的是对应的内网IP。
2. 安装Kafka客户端并查看配置
1)Kafka客户端的安装方式见产品文档中软件安装的配置客户端部分。
2)创建具有Kafkaadmin权限的用户,具体见产品文档中添加用户和角色部分。
3)登录Kafka客户端,查看Kafka各节点的信息
切换到Kafka客户端安装目录,例如“/opt/kafkaclient”。
cd /opt/kafkaclient
执行以下命令,配置环境变量。
source bigdata_env
执行以下命令,进行用户认证。(普通模式跳过此步骤)
kinit 组件业务用户
执行以下命令,切换到Kafka客户端安装目录。
cd Kafka/kafka/bin
执行./kafka-broker-info.sh --zookeeper zk业务IP:24002/kafka,查询结果为kafka节点的brokerid与kafka业务ip节点的对应关系。
4)后台查看目前集群中listener.security.protocol.map和listeners两个参数的配置
查看Kafka集群各个节点上的/opt/huawei/Bigdata/FusionInsight_Current/1_XX_Broker/etc/server.properties路径,其中1_XX_Broker修改为集群中的具体路径,查看并拷贝保存server.properties文件中的listener.security.protocol.map和listeners配置文件信息到本地。
具体配置方式
说明:listener.security.protocol.map是-名称和安全协议之间的映射,-名称与安全协议这个键值对以冒号分隔,映射条目之间以逗号分隔。listeners是kafka的-,配置格式是:-名称://IP:Port,不同-配置间用逗号隔开。advertised.listeners是kafka对外开放的-,配置格式是:-名称://IP:Port,不同-配置间用逗号隔开。
本文环境中broker-1节点这两个参数设置如下:
listener.security.protocol.map = PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL,TRACE:SASL_PLAINTEXT
listeners = SASL_PLAINTEXT://192.168.131.10:21007,PLAINTEXT://192.168.131.10:21005,SSL://192.168.131.10:21008,SASL_SSL://192.168.131.10:21009,TRACE://192.168.131.10:21013
具体配置方式如下:
1) 在原listener.security.protocol.map配置中添加新IP访问的-名称和访问协议,例如,使用SASL_PLAINTEXT协议,则新增映射EXTERNAL_SASL_PLAINTEXT:SASL_PLAINTEXT,EXTERNAL_SASL_PLAINTEXT是自定义-名称,SASL_PLAINTEXT是协议名,kafka中支持的协议类型有PLAINTEXT、SASL_PLAINTEXT、SASL_SSL、SSL四种。
2) 在各个节点的原listeners配置中添加新IP访问地址EXTERNAL_SASL_PLAINTEXT://8.5.131.10:21112,EXTERNAL_SASL_PLAINTEXT必须与listener.security.protocol.map中新添加的-名一致,8.5.131.10为新映射的外网访问Kafka的IP,21112为此IP访问的端口号。注意:各个节点上的listeners不一样,区别是IP地址不同,各个节点上对应的是本机的IP,新映射的IP地址是一样的。修改时,新增的IP地址对应的端口号必须与原配置中的端口号不同,且端口未被使用。查看端口是否使用方式:lsof -i:21112,21112为查询的端口号,如果没有查到信息则此端口未被使用。
3) 修改各个节点的listener.security.protocol.map信息:
执行kafka-configs.sh --entity-type brokers --entity-name 1 --alter --bootstrap-server 192.168.131.10:21007 --add-config listener.security.protocol.map=[PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL,TRACE:SASL_PLAINTEXT ,EXTERNAL_SASL_PLAINTEXT:SASL_PLAINTEXT] --command-config ../config/consumer.properties
--entity-name对应参数1表示brokerid,是kafka-broker-info.sh中查询出的Broker_ID;--bootstrap-server参数是原集群访问的地址,--command-config参数是consumer.properties的绝对或者相对路径,文件中的安全协议security.protocol参数必须与--bootstrap-server中的端口对应;listener.security.protocol.map的值是步骤1中修改后的协议,执行时必须添加“[]”,否则执行报错。
执行时按./kafka-broker-info.sh --zookeeper zk业务IP:24002/kafka查询出的brokerid依次执行(本文中有三个kafka节点,因此上述命令执行三次,即命令中的
--entity-name 分别设置为 1,2,3)。
4) 修改各个节点的listeners信息:
执行kafka-configs.sh --entity-type brokers --entity-name 1 --alter --bootstrap-server 192.168.131.10:21005 --add-config listeners=[PLAINTEXT://192.168.131.10:21005,SASL_PLAINTEXT://192.168.131.10:21007,SSL://192.168.131.10:21008,SASL_SSL://192.168.131.10:21009,TRACE://192.168.131.10:21013, EXTERNAL_SASL_PLAINTEXT:// 192.168.131.10:21112]
--entity-name对应参数1表示brokerid;--bootstrap-server参数是原集群访问的地址,--command-config参数是consumer.properties的绝对或者相对路径,文件中的安全协议参数必须与--bootstrap-server中的端口对应;listeners中的IP必须与brokerid是一一对应。执行时按brokerid依次执行。注意此时EXTERNAL_SASL_PLAINTEXT对应的是内网IP和内网配置的端口。
5) 修改各个节点的advertised.listeners信息:
执行kafka-configs.sh --entity-type brokers --entity-name 1 --alter --bootstrap-server 192.168.131.10:21005 --add-config advertised.listeners=[PLAINTEXT://192.168.131.10:21005,SASL_PLAINTEXT://192.168.131.10:21007,SSL://192.168.131.10:21008,SASL_SSL://192.168.131.10:21009,TRACE://192.168.131.10:21013, EXTERNAL_SASL_PLAINTEXT://8.5.131.10:21027]
--entity-name对应参数1表示brokerid;--bootstrap-server参数是原集群访问的地址,--command-config参数是consumer.properties的绝对或者相对路径,文件中的安全协议参数必须与--bootstrap-server中的端口对应;advertised.listeners中的原IP必须与brokerid是一一对应,新增IP的端口必须与此节点对应的映射端口一一对应。执行时按brokerid依次执行。注意此时EXTERNAL_SASL_PLAINTEXT对应的是映射的外网IP和外网访问的端口。
6) 配置完成后原IP可继续访问,新添加的IP按新配置的端口和协议访问,例如,EXTERNAL_SASL_PLAINTEXT对应的是SASL_PLAINTEXT协议,生产数据的命令是kafka-verifiable-producer.sh --max-messages 100 --topic mytest --broker-list 8.5.131.10:21027 --producer.config ../config/producer.properties
说明:配置时,这两个参数原本的配置不能删除,只能在原来的配置上增加新的配置,否则使用kafka-configs.sh命令会报错。
回退方式
1. 如果删除此次配置,针对各个节点在kafka客户端执行如下两条命令:
kafka-configs.sh --entity-type brokers --entity-name 1 --alter --bootstrap-server 192.168.131.10:21005 --delete-config listener.security.protocol.map --command-config ../config/consumer.properties
kafka-configs.sh --entity-type brokers --entity-name 1 --alter --bootstrap-server 192.168.131.10:21005 -- delete-config listeners --command-config ../config/consumer.properties
kafka-configs.sh --entity-type brokers --entity-name 1 --alter --bootstrap-server 192.168.131.10:21005 -- delete-config advertised.listeners --command-config ../config/consumer.properties
执行时按./kafka-broker-info.sh --zookeeper zk业务IP:24002/kafka查询出的brokerid依次执行删除。删除时各个节点配置都需要删除,各个节点命令仅--entity-name参数不一致。此删除方式仅删除listener.security.protocol.map和listeners相关的配置,对其他配置无影响,删除后这两个参数恢复为默认配置。删除后需重启Kafka集群。
分布式 Kafka
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。