-
Resize Fs
lsblk fdisk /dev/nvme0n1 partprobe pvcreate /dev/nvme0n1p4 vgextend VolGroup00 /dev/nvme0n1p4 lvdisplay lvextend -l +100%FREE /dev/VolGroup00/lv_root lvs resize2fs /dev/VolGroup00/lv_root df -h
-
Tanyan
跟烦的人打交道的时候,就想着赶紧把他的事处理掉拉倒,反而让对方占便宜了,操,这是一个矛盾。
-
Respect
人的相处,我觉得最重要是尊重。
不过每个人对尊重的理解不一样吧,不强求。礼尚往来吧。
-
Update Kafka Cert
在重启 ZK 之前先更新 broker 里面的证书并 reload
export c="" && for i in {0..9} ; do k exec -ti $c-shaxy-b-kafka-$i -npro-kafka -- sh -c 'export CERTS_STORE_PASSWORD=$(grep listener.name.replication-9091.ssl.keystore.password /tmp/strimzi.properties | cut -f2 -d=) && sh /opt/kafka/kafka_tls_prepare_certificates.sh' ; k exec -ti $c-shaxy-b-kafka-$i -npro-kafka -- bin/kafka-configs.sh --bootstrap-server 127.0.0.1:9092 --entity-type brokers --entity-name $i --alter --add-config listener.name.replication-9091.ssl.truststore.location=/tmp/kafka/cluster.truststore.p12 ; done
这个命令应该是会去重载证书(虽然路径名字未变),因为中间尝试删除 truststore 再运行命令行报错,说文件不存在。
而且还做了一个“破坏性”的测试:不运行 kafka-config.sh 直接重启一个 Broker,会导致其他 Broker 全部报证书验证失败。然后再刷一下 kafka-confg.sh,报错停止。所以看起来这个脚本的确是重载了新的证书。
按这个方法跑下来,RB 全部无损重启了。
但 XY 有大概6个集群还是出问题,需要重启 Broker 才行。
这些需要重启的 Broker 在支行上面的 kafka-config 命令时报错如下:
Error while executing config command with args '--bootstrap-server 127.0.0.1:9092 --entity-type brokers --entity-name 0 --alter --add-config listener.name.replication-9091.ssl.truststore.location=/tmp/kafka/cluster.truststore.p12' java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.InvalidRequestException: Invalid config value for resource ConfigResource(type=BROKER, name='0'): Validation of dynamic config update of SSLFactory failed: javax.net.ssl.SSLHandshakeException: PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed at org.apache.kafka.common.internals.KafkaFutureImpl.wrapAndThrow(KafkaFutureImpl.java:45) at org.apache.kafka.common.internals.KafkaFutureImpl.access$000(KafkaFutureImpl.java:32) at org.apache.kafka.common.internals.KafkaFutureImpl$SingleWaiter.await(KafkaFutureImpl.java:104) at org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:272) at kafka.admin.ConfigCommand$.alterConfig(ConfigCommand.scala:345) at kafka.admin.ConfigCommand$.processCommand(ConfigCommand.scala:297) at kafka.admin.ConfigCommand$.main(ConfigCommand.scala:90) at kafka.admin.ConfigCommand.main(ConfigCommand.scala) Caused by: org.apache.kafka.common.errors.InvalidRequestException: Invalid config value for resource ConfigResource(type=BROKER, name='0'): Validation of dynamic config update of SSLFactory failed: javax.net.ssl.SSLHandshakeException: PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed
-
Kafka Unclean Leader Election
刚刚发现一个现象,正常吗?
如果一个Topic是下面这样的,它不会 unclean leader elect 选出来0 做leader,需要再次触发一下 unclean.leader.election.enable=true,哪怕这个 topic 已经是 true
{ "PartitionErrorCode": 72, "PartitionID": 43, "Leader": -1, "LeaderEpoch": 21, "Replicas": [ 0, 3 ], "Isr": [ 3 ], "OfflineReplicas": [ 3 ] }
-
Zookeeper Reconfig
语法:
server.<positive id> = <address1>:<port1>:<port2>[:role];[<client port address>:]<client port>
https://zookeeper.apache.org/doc/r3.5.2-alpha/zookeeperReconfig.html
The client port specification is to the right of the semicolon. The client port address is optional, and if not specified it defaults to “0.0.0.0”. As usual, role is also optional, it can be participant or observer (participant by default).
client port 一般就是 2181
但这个 /zookeeper/config 路径看起来默认是有权限控制的,直接 reconfig -add 会因为没权限而失败。
有两个办法
方法1
-
ZK 启动的时候需要有一个 admin 用户,Environment=”SERVER_JVMFLAGS=-Dzookeeper.DigestAuthenticationProvider.superDigest=admin:cGFzc3dvcmQK” 通过启动的时候添加这个参数
-
addauth digest admin:password
zk shell 里面配置认证,然后再 reconfig
方法2
所有ZK 配置文件里面添加
skipACL=yes
然后依次重启。另外想吐槽一点点,觉得有些和普遍的观念相悖的地方:
添加一个新 ZK 节点的时候,需要在 zoo.cfg 里面先配置上 server.xxx=xxx:xxx,否则启动失败。
然而,添加这个配置启动之后,dynamic 配置又自动把它去掉了,还需要在 zkshell 里面再次 reconfig -add 添加一次。
-
-
蠢就是坏
如果你没有办法区分两个东西,那他们对你来说就是同一件事,比如:蠢就是坏。
-
冷空气
这几天的实践证明,冷空气里面跑步会导致喉咙轻微的不舒服。
-
Avro Schema Registry Auth
cat schema-registry.properties authority.header=schema-registry-admin curl -H 'authority.header:schema-registry.properties' -XDELETE
-
Sort By Multi Fields
sort -hk4,2 -k1,1