apache / pulsar

Apache Pulsar - distributed pub-sub messaging system
https://pulsar.apache.org/
Apache License 2.0
14.13k stars 3.57k forks source link

func Namespace does not have any clusters configured #8954

Closed sixhj closed 3 years ago

sixhj commented 3 years ago

11:30:48.835 [main] INFO org.apache.distributedlog.api.namespace.NamespaceBuilder - No feature provider is set. All features are disabled now. 11:30:48.840 [main] INFO org.apache.distributedlog.impl.BKNamespaceDriver - Created shared zooKeeper client builder dlzk:distributedlog://192.168.33.3:2181,192.168.33.4:2181,192.168.33.5:2181/pulsar/functions:factory_writer_shared: zkServers = 192.168.33.3:2181,192.168.33.4:2181,192.168.33.5:2181, numRetries = 3, sessionTimeout = 30000, retryBackoff = 5000, maxRetryBackoff = 30000, zkAclId = null. 11:30:48.841 [main] INFO org.apache.zookeeper.ZooKeeper - Initiating client connection, connectString=192.168.33.3:2181,192.168.33.4:2181,192.168.33.5:2181 sessionTimeout=30000 watcher=org.apache.bookkeeper.zookeeper.ZooKeeperWatcherBase@67c912d3 11:30:48.842 [main] INFO org.apache.zookeeper.ClientCnxnSocket - jute.maxbuffer value is 10485760 Bytes 11:30:48.842 [main] INFO org.apache.zookeeper.ClientCnxn - zookeeper.request.timeout value is 0. feature enabled= 11:30:48.846 [main-SendThread(192.168.33.5:2181)] INFO org.apache.zookeeper.ClientCnxn - Opening socket connection to server 192.168.33.5/192.168.33.5:2181. Will not attempt to authenticate using SASL (unknown error) 11:30:48.847 [main-SendThread(192.168.33.5:2181)] INFO org.apache.zookeeper.ClientCnxn - Socket connection established, initiating session, client: /192.168.33.3:33208, server: 192.168.33.5/192.168.33.5:2181 11:30:48.854 [main-SendThread(192.168.33.5:2181)] INFO org.apache.zookeeper.ClientCnxn - Session establishment complete on server 192.168.33.5/192.168.33.5:2181, sessionid = 0x300000371ea0011, negotiated timeout = 30000 11:30:48.854 [main-EventThread] INFO org.apache.bookkeeper.zookeeper.ZooKeeperWatcherBase - ZooKeeper client is connected now. 11:30:48.870 [main] INFO org.apache.distributedlog.impl.BKNamespaceDriver - Created shared client builder bk:distributedlog://192.168.33.3:2181,192.168.33.4:2181,192.168.33.5:2181/pulsar/functions:factory_writer_shared : zkServers = 192.168.33.3:2181,192.168.33.4:2181,192.168.33.5:2181, ledgersPath = /ledgers, numIOThreads = 2 11:30:48.872 [main] INFO org.apache.distributedlog.impl.metadata.BKDLConfig - Propagate BKDLConfig to DLConfig : encodeRegionID = false, firstLogSegmentSequenceNumber = 1, createStreamIfNotExists = true, isFederated = false. 11:30:48.890 [main] INFO org.apache.distributedlog.impl.BKNamespaceDriver - Initialized BK namespace driver: clientId = function-worker-c-pulsar-cluster-fw-192.168.33.3-8080, regionId = 0, federated = false. 11:30:48.902 [main] INFO org.apache.distributedlog.logsegment.LogSegmentMetadataCache - Log segment cache is enabled = true 11:30:51.321 [ForkJoinPool.commonPool-worker-1] WARN org.apache.pulsar.broker.web.PulsarWebResource - Namespace missing local cluster name in clusters list: local_cluster=pulsar-cluster ns=public/functions clusters=[standalone] 11:30:51.473 [AsyncHttpClient-58-1] WARN org.apache.pulsar.client.admin.internal.BaseResource - [http://192.168.33.3:8080/admin/v2/persistent/public/functions/assignments] Failed to perform http put request: javax.ws.rs.ClientErrorException: HTTP 412 Precondition Failed 11:30:51.473 [pulsar-web-43-5] INFO org.eclipse.jetty.server.RequestLog - 192.168.33.3 - - [14/十二月/2020:11:30:50 +0800] "PUT /admin/v2/persistent/public/functions/assignments HTTP/1.1" 412 60 "-" "Pulsar-Java-v2.7.0" 532 11:30:51.558 [main] ERROR org.apache.pulsar.functions.worker.WorkerService - Error Starting up in worker org.apache.pulsar.client.admin.PulsarAdminException$PreconditionFailedException: Namespace does not have any clusters configured at org.apache.pulsar.client.admin.internal.BaseResource.getApiException(BaseResource.java:225) ~[org.apache.pulsar-pulsar-client-admin-original-2.7.0.jar:2.7.0] at org.apache.pulsar.client.admin.internal.BaseResource$1.failed(BaseResource.java:133) ~[org.apache.pulsar-pulsar-client-admin-original-2.7.0.jar:2.7.0] at org.glassfish.jersey.client.JerseyInvocation$1.failed(JerseyInvocation.java:839) ~[org.glassfish.jersey.core-jersey-client-2.31.jar:?] at org.glassfish.jersey.client.JerseyInvocation$1.completed(JerseyInvocation.java:820) ~[org.glassfish.jersey.core-jersey-client-2.31.jar:?] at org.glassfish.jersey.client.ClientRuntime.processResponse(ClientRuntime.java:229) ~[org.glassfish.jersey.core-jersey-client-2.31.jar:?] at org.glassfish.jersey.client.ClientRuntime.access$200(ClientRuntime.java:62) ~[org.glassfish.jersey.core-jersey-client-2.31.jar:?] at org.glassfish.jersey.client.ClientRuntime$2.lambda$response$0(ClientRuntime.java:173) ~[org.glassfish.jersey.core-jersey-client-2.31.jar:?] at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) ~[org.glassfish.jersey.core-jersey-common-2.31.jar:?] at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) ~[org.glassfish.jersey.core-jersey-common-2.31.jar:?] at org.glassfish.jersey.internal.Errors.process(Errors.java:292) ~[org.glassfish.jersey.core-jersey-common-2.31.jar:?] at org.glassfish.jersey.internal.Errors.process(Errors.java:274) ~[org.glassfish.jersey.core-jersey-common-2.31.jar:?] at org.glassfish.jersey.internal.Errors.process(Errors.java:244) ~[org.glassfish.jersey.core-jersey-common-2.31.jar:?]

functionsWorkerEnabled=true

func conf

pulsarFunctionsCluster: pulsar-cluster pulsarWebServiceUrl: http://localhost:8081 numFunctionPackageReplicas: 2

not use function is ok. but enabled func start err

this is my deploy doc https://www.yuque.com/docs/share/9848ce43-bf68-4eaf-a074-15d65ad35156?# 《部署》

sixhj commented 3 years ago

Troubleshooting

Error message: Namespace missing local cluster name in clusters list

Failed to get partitioned topic metadata: org.apache.pulsar.client.api.PulsarClientException$BrokerMetadataException: Namespace missing local cluster name in clusters list: local_cluster=xyz ns=public/functions clusters=[standalone] The error message prompts when either of the cases occurs:

a) a broker is started with functionsWorkerEnabled=true, but the pulsarFunctionsCluster is not set to the correct cluster in the conf/functions_worker.yaml file; b) setting up a geo-replicated Pulsar cluster with functionsWorkerEnabled=true, while brokers in one cluster run well, brokers in the other cluster do not work well. Workaround

If any of these cases happens, follow the instructions below to fix the problem:

Get the current clusters list of public/functions namespace. bin/pulsar-admin namespaces get-clusters public/functions Check if the cluster is in the clusters list. If the cluster is not in the list, add it to the list and update the clusters list. bin/pulsar-admin namespaces set-clusters --cluster=, public/functions Set the correct cluster name in pulsarFunctionsCluster in the conf/functions_worker.yml file.

sixhj commented 3 years ago

Troubleshooting

Error message: Namespace missing local cluster name in clusters list

Failed to get partitioned topic metadata: org.apache.pulsar.client.api.PulsarClientException$BrokerMetadataException: Namespace missing local cluster name in clusters list: local_cluster=xyz ns=public/functions clusters=[standalone] The error message prompts when either of the cases occurs:

a) a broker is started with functionsWorkerEnabled=true, but the pulsarFunctionsCluster is not set to the correct cluster in the conf/functions_worker.yaml file; b) setting up a geo-replicated Pulsar cluster with functionsWorkerEnabled=true, while brokers in one cluster run well, brokers in the other cluster do not work well. Workaround

If any of these cases happens, follow the instructions below to fix the problem:

Get the current clusters list of public/functions namespace. bin/pulsar-admin namespaces get-clusters public/functions Check if the cluster is in the clusters list. If the cluster is not in the list, add it to the list and update the clusters list. bin/pulsar-admin namespaces set-clusters --cluster=, public/functions Set the correct cluster name in pulsarFunctionsCluster in the conf/functions_worker.yml file.