304. Range Sum Query 2D - Immutable

本文介绍了一种使用前缀和优化二维矩阵求和的方法。通过预处理矩阵的前缀和,可以快速计算任意子矩阵的元素之和,大幅提高了求和效率。此方法适用于频繁查询的场景。
 1 class NumMatrix {
 2     int[][] sum;
 3     
 4     public NumMatrix(int[][] matrix) {
 5         int row = matrix.length;
 6         if(row > 0){
 7              int col = matrix[0].length;
 8              sum = new int[row+1][col+1];
 9              for(int i = 0; i < row; i++){
10                  for(int j = 0; j < col; j++){
11                      sum[i+1][j+1] = matrix[i][j] + sum[i][j+1] + sum[i+1][j] - sum[i][j]; 
12                  }
13              }
14         }
15        
16         
17     }
18     
19     public int sumRegion(int row1, int col1, int row2, int col2) {
20         if(sum.length == 0) return 0;
21         if(sum[0].length == 0) return 0;
22         return sum[row2+1][col2+1] - sum[row2+1][col1] - sum[row1][col2+1] + sum[row1][col1];
23        
24         
25     }
26 }

 

转载于:https://www.cnblogs.com/goPanama/p/9855505.html

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
[2025-06-04 16:02:18,809] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$) [2025-06-04 16:02:19,395] INFO Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation (org.apache.zookeeper.common.X509Util) [2025-06-04 16:02:19,503] INFO Registered signal handlers for TERM, INT, HUP (org.apache.kafka.common.utils.LoggingSignalHandler) [2025-06-04 16:02:19,509] INFO starting (kafka.server.KafkaServer) [2025-06-04 16:02:19,510] INFO Connecting to zookeeper on 97.2.171.140:2181 (kafka.server.KafkaServer) [2025-06-04 16:02:19,540] INFO [ZooKeeperClient Kafka server] Initializing a new session to 97.2.171.140:2181. (kafka.zookeeper.ZooKeeperClient) [2025-06-04 16:02:19,548] INFO Client environment:zookeeper.version=3.6.3--6401e4ad2087061bc6b9f80dec2d69f2e3c8660a, built on 04/08/2021 16:35 GMT (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,548] INFO Client environment:host.name=i-app-ecs-0003.novalocal (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,548] INFO Client environment:java.version=1.8.0_262 (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,548] INFO Client environment:java.vendor=Oracle Corporation (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,548] INFO Client environment:java.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.an7.x86_64/jre (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,548] INFO Client environment:java.class.path=/home/kafka/kafka2023/kafka/bin/../libs/activation-1.1.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/aopalliance-repackaged-2.6.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/argparse4j-0.7.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/audience-annotations-0.5.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/commons-cli-1.4.jar:/home/kafka/kafka2023/kafka/bin/../libs/commons-lang3-3.8.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-api-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-basic-auth-extension-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-json-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-mirror-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-mirror-client-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-runtime-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-transforms-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/hk2-api-2.6.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/hk2-locator-2.6.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/hk2-utils-2.6.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-annotations-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-core-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-databind-2.12.6.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-dataformat-csv-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-datatype-jdk8-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-jaxrs-base-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-jaxrs-json-provider-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-module-jaxb-annotations-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-module-scala_2.12-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jakarta.activation-api-1.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/jakarta.annotation-api-1.3.5.jar:/home/kafka/kafka2023/kafka/bin/../libs/jakarta.inject-2.6.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/jakarta.validation-api-2.0.2.jar:/home/kafka/kafka2023/kafka/bin/../libs/jakarta.ws.rs-api-2.1.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jakarta.xml.bind-api-2.3.2.jar:/home/kafka/kafka2023/kafka/bin/../libs/javassist-3.27.0-GA.jar:/home/kafka/kafka2023/kafka/bin/../libs/javax.servlet-api-3.1.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/javax.ws.rs-api-2.1.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/jaxb-api-2.3.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/jersey-client-2.34.jar:/home/kafka/kafka2023/kafka/bin/../libs/jersey-common-2.34.jar:/home/kafka/kafka2023/kafka/bin/../libs/jersey-container-servlet-2.34.jar:/home/kafka/kafka2023/kafka/bin/../libs/jersey-container-servlet-core-2.34.jar:/home/kafka/kafka2023/kafka/bin/../libs/jersey-hk2-2.34.jar:/home/kafka/kafka2023/kafka/bin/../libs/jersey-server-2.34.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-client-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-continuation-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-http-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-io-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-security-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-server-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-servlet-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-servlets-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-util-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-util-ajax-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jline-3.21.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/jopt-simple-5.0.4.jar:/home/kafka/kafka2023/kafka/bin/../libs/jose4j-0.7.9.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka_2.12-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-clients-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-log4j-appender-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-metadata-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-raft-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-server-common-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-shell-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-storage-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-storage-api-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-streams-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-streams-examples-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-streams-scala_2.12-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-streams-test-utils-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-tools-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/lz4-java-1.8.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/maven-artifact-3.8.4.jar:/home/kafka/kafka2023/kafka/bin/../libs/metrics-core-2.2.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/metrics-core-4.1.12.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-buffer-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-codec-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-common-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-handler-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-resolver-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-tcnative-classes-2.0.46.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-transport-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-transport-classes-epoll-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-transport-native-epoll-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-transport-native-unix-common-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/osgi-resource-locator-1.0.3.jar:/home/kafka/kafka2023/kafka/bin/../libs/paranamer-2.8.jar:/home/kafka/kafka2023/kafka/bin/../libs/plexus-utils-3.3.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/reflections-0.9.12.jar:/home/kafka/kafka2023/kafka/bin/../libs/reload4j-1.2.19.jar:/home/kafka/kafka2023/kafka/bin/../libs/rocksdbjni-6.29.4.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/scala-collection-compat_2.12-2.6.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/scala-java8-compat_2.12-1.0.2.jar:/home/kafka/kafka2023/kafka/bin/../libs/scala-library-2.12.15.jar:/home/kafka/kafka2023/kafka/bin/../libs/scala-logging_2.12-3.9.4.jar:/home/kafka/kafka2023/kafka/bin/../libs/scala-reflect-2.12.15.jar:/home/kafka/kafka2023/kafka/bin/../libs/slf4j-api-1.7.36.jar:/home/kafka/kafka2023/kafka/bin/../libs/slf4j-reload4j-1.7.36.jar:/home/kafka/kafka2023/kafka/bin/../libs/snappy-java-1.1.8.4.jar:/home/kafka/kafka2023/kafka/bin/../libs/trogdor-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/zookeeper-3.6.3.jar:/home/kafka/kafka2023/kafka/bin/../libs/zookeeper-jute-3.6.3.jar:/home/kafka/kafka2023/kafka/bin/../libs/zstd-jni-1.5.2-1.jar (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,548] INFO Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,549] INFO Client environment:java.io.tmpdir=/tmp (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,549] INFO Client environment:java.compiler=<NA> (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,549] INFO Client environment:os.name=Linux (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,549] INFO Client environment:os.arch=amd64 (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,549] INFO Client environment:os.version=3.10.0-1160.an7.x86_64 (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,549] INFO Client environment:user.name=root (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,549] INFO Client environment:user.home=/root (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,549] INFO Client environment:user.dir=/home/kafka/kafka2023/kafka/bin (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,549] INFO Client environment:os.memory.free=1013MB (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,549] INFO Client environment:os.memory.max=1024MB (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,549] INFO Client environment:os.memory.total=1024MB (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,552] INFO Initiating client connection, connectString=97.2.171.140:2181 sessionTimeout=18000 watcher=kafka.zookeeper.ZooKeeperClient$ZooKeeperClientWatcher$@5bf0d49 (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,557] INFO jute.maxbuffer value is 4194304 Bytes (org.apache.zookeeper.ClientCnxnSocket) [2025-06-04 16:02:19,564] INFO zookeeper.request.timeout value is 0. feature enabled=false (org.apache.zookeeper.ClientCnxn) [2025-06-04 16:02:19,570] INFO [ZooKeeperClient Kafka server] Waiting until connected. (kafka.zookeeper.ZooKeeperClient) [2025-06-04 16:02:19,577] INFO Client successfully logged in. (org.apache.zookeeper.Login) [2025-06-04 16:02:19,578] INFO Client will use DIGEST-MD5 as SASL mechanism. (org.apache.zookeeper.client.ZooKeeperSaslClient) [2025-06-04 16:02:19,595] INFO Opening socket connection to server i-app-ecs-0003.novalocal/97.2.171.140:2181. (org.apache.zookeeper.ClientCnxn) [2025-06-04 16:02:19,595] INFO SASL config status: Will attempt to SASL-authenticate using Login Context section 'Client' (org.apache.zookeeper.ClientCnxn) [2025-06-04 16:02:19,600] INFO Socket connection established, initiating session, client: /97.2.171.140:38148, server: i-app-ecs-0003.novalocal/97.2.171.140:2181 (org.apache.zookeeper.ClientCnxn) [2025-06-04 16:02:19,621] INFO Session establishment complete on server i-app-ecs-0003.novalocal/97.2.171.140:2181, session id = 0x108ea89bff30000, negotiated timeout = 18000 (org.apache.zookeeper.ClientCnxn) [2025-06-04 16:02:19,632] INFO [ZooKeeperClient Kafka server] Connected. (kafka.zookeeper.ZooKeeperClient) [2025-06-04 16:02:19,722] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer) org.apache.zookeeper.KeeperException$InvalidACLException: KeeperErrorCode = InvalidACL for /brokers/ids at org.apache.zookeeper.KeeperException.create(KeeperException.java:128) at org.apache.zookeeper.KeeperException.create(KeeperException.java:54) at kafka.zookeeper.AsyncResponse.maybeThrow(ZooKeeperClient.scala:566) at kafka.zk.KafkaZkClient.createRecursive(KafkaZkClient.scala:1728) at kafka.zk.KafkaZkClient.makeSurePersistentPathExists(KafkaZkClient.scala:1626) at kafka.zk.KafkaZkClient.$anonfun$createTopLevelPaths$1(KafkaZkClient.scala:1618) at kafka.zk.KafkaZkClient.$anonfun$createTopLevelPaths$1$adapted(KafkaZkClient.scala:1618) at scala.collection.immutable.List.foreach(List.scala:431) at kafka.zk.KafkaZkClient.createTopLevelPaths(KafkaZkClient.scala:1618) at kafka.server.KafkaServer.initZkClient(KafkaServer.scala:501) at kafka.server.KafkaServer.startup(KafkaServer.scala:203) at kafka.Kafka$.main(Kafka.scala:109) at kafka.Kafka.main(Kafka.scala) [2025-06-04 16:02:19,725] INFO shutting down (kafka.server.KafkaServer) [2025-06-04 16:02:19,728] INFO [ZooKeeperClient Kafka server] Closing. (kafka.zookeeper.ZooKeeperClient) [2025-06-04 16:02:19,833] INFO Session: 0x108ea89bff30000 closed (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:02:19,834] INFO EventThread shut down for session: 0x108ea89bff30000 (org.apache.zookeeper.ClientCnxn) [2025-06-04 16:02:19,836] INFO [ZooKeeperClient Kafka server] Closed. (kafka.zookeeper.ZooKeeperClient) [2025-06-04 16:02:19,839] INFO App info kafka.server for 0 unregistered (org.apache.kafka.common.utils.AppInfoParser) [2025-06-04 16:02:19,840] INFO shut down completed (kafka.server.KafkaServer) [2025-06-04 16:02:19,840] ERROR Exiting Kafka. (kafka.Kafka$) [2025-06-04 16:02:19,840] INFO shutting down (kafka.server.KafkaServer) [2025-06-04 16:15:57,279] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$) [2025-06-04 16:15:57,862] INFO Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation (org.apache.zookeeper.common.X509Util) [2025-06-04 16:15:57,976] INFO Registered signal handlers for TERM, INT, HUP (org.apache.kafka.common.utils.LoggingSignalHandler) [2025-06-04 16:15:57,981] INFO starting (kafka.server.KafkaServer) [2025-06-04 16:15:57,982] INFO Connecting to zookeeper on 97.2.171.140:2181 (kafka.server.KafkaServer) [2025-06-04 16:15:58,015] INFO [ZooKeeperClient Kafka server] Initializing a new session to 97.2.171.140:2181. (kafka.zookeeper.ZooKeeperClient) [2025-06-04 16:15:58,030] INFO Client environment:zookeeper.version=3.6.3--6401e4ad2087061bc6b9f80dec2d69f2e3c8660a, built on 04/08/2021 16:35 GMT (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,031] INFO Client environment:host.name=i-app-ecs-0003.novalocal (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,031] INFO Client environment:java.version=1.8.0_262 (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,031] INFO Client environment:java.vendor=Oracle Corporation (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,031] INFO Client environment:java.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.an7.x86_64/jre (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,031] INFO Client environment:java.class.path=/home/kafka/kafka2023/kafka/bin/../libs/activation-1.1.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/aopalliance-repackaged-2.6.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/argparse4j-0.7.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/audience-annotations-0.5.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/commons-cli-1.4.jar:/home/kafka/kafka2023/kafka/bin/../libs/commons-lang3-3.8.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-api-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-basic-auth-extension-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-json-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-mirror-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-mirror-client-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-runtime-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/connect-transforms-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/hk2-api-2.6.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/hk2-locator-2.6.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/hk2-utils-2.6.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-annotations-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-core-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-databind-2.12.6.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-dataformat-csv-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-datatype-jdk8-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-jaxrs-base-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-jaxrs-json-provider-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-module-jaxb-annotations-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jackson-module-scala_2.12-2.12.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jakarta.activation-api-1.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/jakarta.annotation-api-1.3.5.jar:/home/kafka/kafka2023/kafka/bin/../libs/jakarta.inject-2.6.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/jakarta.validation-api-2.0.2.jar:/home/kafka/kafka2023/kafka/bin/../libs/jakarta.ws.rs-api-2.1.6.jar:/home/kafka/kafka2023/kafka/bin/../libs/jakarta.xml.bind-api-2.3.2.jar:/home/kafka/kafka2023/kafka/bin/../libs/javassist-3.27.0-GA.jar:/home/kafka/kafka2023/kafka/bin/../libs/javax.servlet-api-3.1.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/javax.ws.rs-api-2.1.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/jaxb-api-2.3.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/jersey-client-2.34.jar:/home/kafka/kafka2023/kafka/bin/../libs/jersey-common-2.34.jar:/home/kafka/kafka2023/kafka/bin/../libs/jersey-container-servlet-2.34.jar:/home/kafka/kafka2023/kafka/bin/../libs/jersey-container-servlet-core-2.34.jar:/home/kafka/kafka2023/kafka/bin/../libs/jersey-hk2-2.34.jar:/home/kafka/kafka2023/kafka/bin/../libs/jersey-server-2.34.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-client-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-continuation-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-http-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-io-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-security-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-server-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-servlet-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-servlets-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-util-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jetty-util-ajax-9.4.44.v20210927.jar:/home/kafka/kafka2023/kafka/bin/../libs/jline-3.21.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/jopt-simple-5.0.4.jar:/home/kafka/kafka2023/kafka/bin/../libs/jose4j-0.7.9.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka_2.12-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-clients-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-log4j-appender-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-metadata-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-raft-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-server-common-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-shell-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-storage-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-storage-api-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-streams-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-streams-examples-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-streams-scala_2.12-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-streams-test-utils-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/kafka-tools-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/lz4-java-1.8.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/maven-artifact-3.8.4.jar:/home/kafka/kafka2023/kafka/bin/../libs/metrics-core-2.2.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/metrics-core-4.1.12.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-buffer-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-codec-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-common-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-handler-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-resolver-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-tcnative-classes-2.0.46.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-transport-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-transport-classes-epoll-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-transport-native-epoll-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/netty-transport-native-unix-common-4.1.73.Final.jar:/home/kafka/kafka2023/kafka/bin/../libs/osgi-resource-locator-1.0.3.jar:/home/kafka/kafka2023/kafka/bin/../libs/paranamer-2.8.jar:/home/kafka/kafka2023/kafka/bin/../libs/plexus-utils-3.3.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/reflections-0.9.12.jar:/home/kafka/kafka2023/kafka/bin/../libs/reload4j-1.2.19.jar:/home/kafka/kafka2023/kafka/bin/../libs/rocksdbjni-6.29.4.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/scala-collection-compat_2.12-2.6.0.jar:/home/kafka/kafka2023/kafka/bin/../libs/scala-java8-compat_2.12-1.0.2.jar:/home/kafka/kafka2023/kafka/bin/../libs/scala-library-2.12.15.jar:/home/kafka/kafka2023/kafka/bin/../libs/scala-logging_2.12-3.9.4.jar:/home/kafka/kafka2023/kafka/bin/../libs/scala-reflect-2.12.15.jar:/home/kafka/kafka2023/kafka/bin/../libs/slf4j-api-1.7.36.jar:/home/kafka/kafka2023/kafka/bin/../libs/slf4j-reload4j-1.7.36.jar:/home/kafka/kafka2023/kafka/bin/../libs/snappy-java-1.1.8.4.jar:/home/kafka/kafka2023/kafka/bin/../libs/trogdor-3.2.1.jar:/home/kafka/kafka2023/kafka/bin/../libs/zookeeper-3.6.3.jar:/home/kafka/kafka2023/kafka/bin/../libs/zookeeper-jute-3.6.3.jar:/home/kafka/kafka2023/kafka/bin/../libs/zstd-jni-1.5.2-1.jar (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,031] INFO Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,031] INFO Client environment:java.io.tmpdir=/tmp (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,031] INFO Client environment:java.compiler=<NA> (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,031] INFO Client environment:os.name=Linux (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,032] INFO Client environment:os.arch=amd64 (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,032] INFO Client environment:os.version=3.10.0-1160.an7.x86_64 (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,032] INFO Client environment:user.name=root (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,032] INFO Client environment:user.home=/root (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,032] INFO Client environment:user.dir=/home/kafka/kafka2023/kafka (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,032] INFO Client environment:os.memory.free=1013MB (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,032] INFO Client environment:os.memory.max=1024MB (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,032] INFO Client environment:os.memory.total=1024MB (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,035] INFO Initiating client connection, connectString=97.2.171.140:2181 sessionTimeout=18000 watcher=kafka.zookeeper.ZooKeeperClient$ZooKeeperClientWatcher$@5bf0d49 (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,040] INFO jute.maxbuffer value is 4194304 Bytes (org.apache.zookeeper.ClientCnxnSocket) [2025-06-04 16:15:58,047] INFO zookeeper.request.timeout value is 0. feature enabled=false (org.apache.zookeeper.ClientCnxn) [2025-06-04 16:15:58,052] INFO [ZooKeeperClient Kafka server] Waiting until connected. (kafka.zookeeper.ZooKeeperClient) [2025-06-04 16:15:58,057] INFO Client successfully logged in. (org.apache.zookeeper.Login) [2025-06-04 16:15:58,059] INFO Client will use DIGEST-MD5 as SASL mechanism. (org.apache.zookeeper.client.ZooKeeperSaslClient) [2025-06-04 16:15:58,074] INFO Opening socket connection to server i-app-ecs-0003.novalocal/97.2.171.140:2181. (org.apache.zookeeper.ClientCnxn) [2025-06-04 16:15:58,074] INFO SASL config status: Will attempt to SASL-authenticate using Login Context section 'Client' (org.apache.zookeeper.ClientCnxn) [2025-06-04 16:15:58,078] INFO Socket connection established, initiating session, client: /97.2.171.140:38154, server: i-app-ecs-0003.novalocal/97.2.171.140:2181 (org.apache.zookeeper.ClientCnxn) [2025-06-04 16:15:58,093] INFO Session establishment complete on server i-app-ecs-0003.novalocal/97.2.171.140:2181, session id = 0x108ea97a7a70000, negotiated timeout = 18000 (org.apache.zookeeper.ClientCnxn) [2025-06-04 16:15:58,098] INFO [ZooKeeperClient Kafka server] Connected. (kafka.zookeeper.ZooKeeperClient) [2025-06-04 16:15:58,184] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer) org.apache.zookeeper.KeeperException$InvalidACLException: KeeperErrorCode = InvalidACL for /brokers/ids at org.apache.zookeeper.KeeperException.create(KeeperException.java:128) at org.apache.zookeeper.KeeperException.create(KeeperException.java:54) at kafka.zookeeper.AsyncResponse.maybeThrow(ZooKeeperClient.scala:566) at kafka.zk.KafkaZkClient.createRecursive(KafkaZkClient.scala:1728) at kafka.zk.KafkaZkClient.makeSurePersistentPathExists(KafkaZkClient.scala:1626) at kafka.zk.KafkaZkClient.$anonfun$createTopLevelPaths$1(KafkaZkClient.scala:1618) at kafka.zk.KafkaZkClient.$anonfun$createTopLevelPaths$1$adapted(KafkaZkClient.scala:1618) at scala.collection.immutable.List.foreach(List.scala:431) at kafka.zk.KafkaZkClient.createTopLevelPaths(KafkaZkClient.scala:1618) at kafka.server.KafkaServer.initZkClient(KafkaServer.scala:501) at kafka.server.KafkaServer.startup(KafkaServer.scala:203) at kafka.Kafka$.main(Kafka.scala:109) at kafka.Kafka.main(Kafka.scala) [2025-06-04 16:15:58,187] INFO shutting down (kafka.server.KafkaServer) [2025-06-04 16:15:58,189] INFO [ZooKeeperClient Kafka server] Closing. (kafka.zookeeper.ZooKeeperClient) [2025-06-04 16:15:58,295] INFO Session: 0x108ea97a7a70000 closed (org.apache.zookeeper.ZooKeeper) [2025-06-04 16:15:58,296] INFO EventThread shut down for session: 0x108ea97a7a70000 (org.apache.zookeeper.ClientCnxn) [2025-06-04 16:15:58,298] INFO [ZooKeeperClient Kafka server] Closed. (kafka.zookeeper.ZooKeeperClient) [2025-06-04 16:15:58,301] INFO App info kafka.server for 0 unregistered (org.apache.kafka.common.utils.AppInfoParser) [2025-06-04 16:15:58,302] INFO shut down completed (kafka.server.KafkaServer) [2025-06-04 16:15:58,302] ERROR Exiting Kafka. (kafka.Kafka$) [2025-06-04 16:15:58,302] INFO shutting down (kafka.server.KafkaServer)
06-06
<think>首先,用户在问如何解决Kafka服务器启动时的错误:"KafkaServerstartuperrorInvalidACLExceptionKeeperErrorCode=InvalidACLfor/brokers/ids"。这是在Zookeeper的路径`/brokers/ids`上发生权限问题。从站内引用看:-引用[1]说:"ACLsontheKafkaznodesarenotremovedwhiledisablingKerberos."这解释了错误可能是因为在禁用Kerberos时Znode的ACL没有被移除。-其他引用涉及SASL认证、SSL认证、fetchsize问题,和用户队列后缀,不太直接相关。但引用[2]提到SASL权限认证可能相关,引用[4]是关于用户队列的,不直接相关。用户的错误提到`InvalidACLException`和`/brokers/ids`,这表明Zookeeper的ACL无效或损坏。我的回答应该:-系统指令:使用正确的LaTeX格式。比如行内数学用$...$,独立公式用$$...$$。-使用中文回答。-生成相关问题。-引用段落末尾自然地加引用标识,如[^1]。-回答结构清晰,真实可靠。步骤解决这个问题:1.**理解错误**:`InvalidACLException`for`/brokers/ids`通常是因为Zookeeper中的ACL不正确。可能的原因包括:-ACL被意外修改或损坏。-当集群配置变更(如启用或禁用安全机制)时,ACL没有被正确更新。-从引用[1],禁用Kerberos时,ACL可能没被移除。2.**解决方案**:-连接到Zookeeper服务器。-删除或修复`/brokers/ids`的ACL。-具体步骤:-使用Zookeeper的CLI(如`zkCli.sh`)连接到集群。-检查`/brokers/ids`路径:`ls/brokers/ids`,然后`get/brokers/ids`查看ACL。-删除无效ACL:参考引用[1],需要移除ACL。可能用`delete`命令删除节点并重建,或者用`setAcl`重置ACL。-设置合适的ACL:如果启用了安全认证,ACL应该正确配置;如果没启用,可以设置为开放权限。-在禁用Kerberos后,可能需要清除所有Zookeeper上与ACL相关的内容。来自引用[1]的建议:移除Kafkaznode上的ACL。一个常见的方法是删除Zookeeper中的`/brokers/ids`节点,并让Kafka在启动时重新创建它。但这可能会导致数据丢失,如果BrokerIDs有信息。更安全的做法是用`setAcl`设置默认权限。一般步骤:-**停止Kafka服务器**。-**备份Zookeeper数据**(可选但推荐)。-**连接到Zookeeper**:`./bin/zkCli.sh-serverlocalhost:2181`(调整端口)。-**检查路径**:`ls/brokers/ids`,应该列出BrokerIDs。-**重置ACL**:可能用`setAcl/brokers/idsworld:anyone:cdrwa`设置为开放权限。但如果集群有安全认证,不能这样;安全模式下需要设置认证用户的ACL。-或者,完全删除节点:`delete/brokers/ids`–但`/brokers/ids`可能有数据。如果有子节点,用`rmr/brokers/ids`(删除递归)。删除后,Kafka服务器在启动时会重新创建它。-**重启Kafka服务器**。在禁用安全功能后:-确保所有Zookeeper路径的ACL被清除。参考引用[1],运行工具或命令来移除ACL。可能用脚本或使用`kafka-configs.sh`工具。其他参考:搜索类似问题,标准方案是删除Zookeeper节点或修复ACL。在回答中,结构化:-解释错误原因。-提供解决步骤。-给出预防建议。引用来源:从引用[1],直接在提到时加[^1]。最后,生成相关问题:-KafkaACL是如何工作的?-如何避免在Kafka启动时出现ACL问题?-Kafka和Zookeeper之间的认证有哪些最佳实践?使用中文回答。</think> ### Kafka服务器启动错误 "InvalidACLException KeeperErrorCode=InvalidACL for /brokers/ids" 解决方案 这个错误通常发生在 Kafka 服务器启动时,涉及 Zookeeper 路径 `/brokers/ids` 的访问控制列表(ACL)无效或损坏。根据错误信息和参考内容(尤其是引用[1]),主要原因可能是: - **ACL 未正确清除**:在禁用 Kerberos 或更改安全配置时,Kafka znodes(如 `/brokers/ids`)的 ACL 可能未被完全移除,导致启动时 Zookeeper 拒绝访问[^1]。 - **ACL 配置冲突**:如果集群安全机制(如 SASL 或 SSL)被修改后,Zookeeper 中的 ACL 权限未同步更新,会出现权限无效问题。 以下是完整解决方法,逐步操作以修复错误: --- ### 步骤 1: 停止 Kafka 服务并备份 在操作前,确保 Kafka 集群停止运行,以避免数据不一致。 1. **停止 Kafka Broker**:运行 `bin/kafka-server-stop.sh`(Linux)或相应脚本停止所有 Kafka 节点。 2. **备份 Zookeeper 数据**(推荐): - 连接到 Zookeeper:`bin/zkCli.sh -server localhost:2181`(替换为您的 Zookeeper 地址)。 - 导出节点数据:`get /brokers/ids > backup.txt` 保存为备份。 这能防止意外操作导致数据丢失。 --- ### 步骤 2: 修复 ACL 权限 使用 Zookeeper CLI 修复 `/brokers/ids` 的无效 ACL: 1. **连接到 Zookeeper**: ```bash bin/zkCli.sh -server zookeeper_host:port # 替换为实际地址,如 localhost:2181 ``` 2. **检查问题路径**: - 列出路径:`ls /brokers/ids`,确认节点存在。 - 查看当前 ACL:`getAcl /brokers/ids`。如果显示 `InvalidACL`,说明权限损坏。 3. **重置 ACL 为默认权限**: - 设置为开放权限(无安全认证时适用): ```bash setAcl /brokers/ids world:anyone:cdrwa # 设置全局读写权限[^1] ``` - 如果启用安全认证(如 SASL),使用认证用户设置: ```bash setAcl /brokers/ids sasl:user:kafka-admin:cdrwa # 替换为您的 Kafka 管理员用户 ``` 4. **可选:递归修复子节点**(如果错误涉及所有 Broker ID): ```bash rmr /brokers/ids # 删除整个节点(Kafka 启动时自动重建) ``` 警告:此操作会删除 Broker ID 元数据。Kafka 重启后 Broker 会重新注册新 ID,但需确保 Zookeeper 中无其他依赖错误。 --- ### 步骤 3: 重启并验证 1. **重启 Zookeeper**:执行 `bin/zkServer.sh restart` 确保权限生效。 2. **重启 Kafka**:运行 `bin/kafka-server-start.sh config/server.properties`。 3. **验证修复**: - 检查日志:`tail -f logs/server.log`。无 `InvalidACLException` 错误即成功。 - 测试功能:用 `bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092` 确认 Broker 状态正常。 --- ### 预防措施 - **安全配置变更时清理 ACL**:禁用 Kerberos 或 SASL 后,运行官方工具(如 `kafka-configs.sh`)显式清除 znodes ACL[^1]。 - **定期监控 ACL**:通过 `getAcl /brokers/ids` 检查权限一致性,避免配置漂移。 - **引用相关建议**:配置 SASL/SSL 认证时,确保 Zookeeper ACL 与 Kafka 同步(参考引用[2]的安全文档)[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值