我正在使用Zookeeper进行分布式资源锁定。我有一个由7个Zookeeper实例组成的集群,7个应用程序客户端连接到它们
在Zookeeper集群中分发客户端的最佳策略是什么?所谓分布,我指的是客户端应使用哪些zoo端点进行初始连接(我知道在故障转移时,客户端可能会自动重新连接到另一个zoo节点)
一对一是一个好策略吗?为什么?是否所有客户端都应连接到单个Zookeeper节点?也许我应该这样减少Zookeeper节点的数量?明白了。我正在使用Curator library,我需要的是将服务
我的仲裁中有三台服务器。他们正在运行ZooKeeper 3.4.5。根据mntr的输出,其中两个运行正常。其中一个由于部署而在几天前重新启动,此后一直无法加入仲裁。日志中突出的一些行是:
2014-03-03 18:44:40,995 [myid:1] - INFO [main:QuorumPeer@429] - currentEpoch not found! Creating with a reasonable default of 0. This should only happen wh
我使用Curator创建了newClient,并设置了重试策略,但如果连接字符串错误,retry connected将始终运行,直到内存不足,但我希望程序退出一次重试3次
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
CuratorFrameworkFactory.newClient(zkAddress,retryPolicy);
CuratorFrameworkFactory.builder().connectS
我正在学习zookeeper并尝试服务发现的馆长框架。然而,我面临着一个奇怪的问题,我很难弄清楚。问题是,当我试图通过servicescovery注册实例时,serviceCache的cacheChanged事件被触发三次。当我删除一个实例时,它只被触发一次,这是预期的行为。请参阅下面的代码:
public class DiscoveryExample {
private static String PATH = "/base";
static ServiceDiscovery
在6节点群集上运行zookeeper时,是否有人知道仲裁是自动确定为4节点还是3节点
如果法定人数选择为N/2,那么它将变为3,并可能导致大脑分裂的情况。
如果法定人数选择为(N+1)/2,则它将变为4,从而避免出现大脑分裂的情况
因此,我希望是后者,但政府没有提到任何这类问题。
有人肯定知道吗
另外,我知道建议使用奇数个zookeeper节点,但我只是想知道偶数个节点的情况会发生什么。请参见org.apache.zookeeper.server.quorum.flexible.qourumma
我和动物园管理员一起工作(http://zookeeper.apache.org/). 下载3.3.5并创建zoo.cfg并放入$ZOOKEEPER/conf中,使用zkServer start启动ZOOKEEPER。但以下是错误
有人能帮我吗
nfig or no quorum defined in config, running in standalone mode
2012-08-01 23:20:32,175 [myid:] - ERROR [main:ZooKeeperServe
我一直在尝试对ZooKeeper集群进行一些测试。我想知道是否有人知道ZooKeeper向其追随者复制数据需要多少时间。或者是否有一种方法来衡量这一点?我一直在看日志文件,但它们似乎对我没有多大帮助,试图从阅读日志中推断出来,我的眼睛很痛
另外,对于使用能够向我显示服务中发生的事情的连续实时输出的监视服务,您有什么建议吗
在我的一个测试用例中,我创建了200个znode,其值的长度是32字节、64字节、128字节。。。我注意到任何大于512字节的东西比小于512字节的东西花费的时间都要少。我很想
Zookeeper监视程序正在捕获子节点的添加和删除,但仅当我更改父节点的值时才会执行此操作
例如,对于parent1,只有在我首先更新parent1的值时才会触发nodeChildrenChanged类型的观察者事件,这会触发NodeDataChanged观察者事件
还有人看到这个吗
--约翰啊,想出来了。需要调用zk.exists(path,watcher)来初始化数据事件,调用zk.getChildren(path,watcher)来初始化子事件。啊,找到了。需要调用zk.exists(p
我有一个ZK,部署在数据中心,并与许多策展人客户交互。由于网络状况不太稳定,因此总是在客户端检测到连接丢失事件
现在我在看一些关于ZK和Curator在不稳定的网络环境下设置的良好实践
我想到的是增加ZK和策展人双方的会话超时,比如增加到1分钟
期待您的回复
谢谢。如果是网络可靠性问题,增加会话超时只会延迟结果。此外,系统的总延迟也将增加
除了网络之外,可能还有多种可能的连接丢失原因。请参考下面的链接
您还可以使用下面的命令检查zk集群的运行状况
Apache Mesos“从属”节点是否可以位于比Mesos“主”节点更为独立的网络上?类似地(对于高可用性(HA)部署),在Mesos“主”选择中使用的Apache Zookeeper节点是否可以部署在与as Mesos“从”节点不同的网络上
目前,我在云中有3个主节点+从节点,我想在本地子网中添加一个从节点
如果这种设置是可行的,那么这种设置的利弊是什么
谢谢 我认为这本书是一本很好的读物,它讲述了让这本书成功所需要的一些东西。有一些场景是关于在DC关闭时如何处理东西的
优点:
您可以在D
我有多个进程在内存队列上运行。该队列是Zookeeper创建/删除的顺序ZNode的一种表现形式
添加znode时,将在所有相关进程的队列中添加一个等效项。而且,当删除znode时,在每个涉及的进程中,都会从队列中删除等效项
添加和删除信号预计将保持平衡,因为每个添加的项目最终都应删除
我遇到了这样一种情况:znode很快被添加和删除,并且在添加通知之前的一个过程中收到了删除通知。因此,删除该项的尝试发生了,但失败了,因为它实际上不在那里,然后接收到添加该项的添加信号,但该项从未被删除
一个简单
我在我的项目中使用Apache Curator。在CuratorFramework与ZooKeeper服务器失去连接后,它会自动重新连接,但它似乎丢失了我设置的所有手表,我再也没有收到任何通知。如果连接未断开并重新启动,则监视将按预期工作
这是馆长的错误还是我做错了什么?
设置手表的代码如下所示:
CuratorFramework framework = CuratorFrameworkFactory.newClient(connectString, SESSION_TIMEOUT_MS, 0,
我正在尝试连接暴风雨中的一个远程卡夫卡集群。我正在使用以下代码:
Broker brokerForPartition0 = new Broker("208.113.164.114:9091");
Broker brokerForPartition1 = new Broker("208.113.164.115:9092");
Broker brokerForPartition2 = new Broker("208.113.164.117:90
我有一个动物园管理员配置:
autopurge.snapRetainCount=10
autopurge.purgeInterval=1
snapCount=3000000
我的/opt/zookeeper-3.4.11/datadir变大,没有autopurce发生
我尝试用zkCleanup.sh清理这个混乱,但它什么也没做
sysadmin@clickhouse-node1:/opt/zookeeper-3.4.11/bin$ ls /opt/zookeeper-3.4.11/data/
动物园管理员专家
我问的问题对你来说可能是最基本的,但我对ZK是新手,我还没有掌握这个工具,所以请原谅我。考虑到这一点,我的问题是
假设我有一个由5台服务器组成的ZK集群,我的仲裁人数为3。现在,这保证了服务器不会进入分裂大脑的场景,如果它们位于两个物理上独立的DC或机器上
但是,我想知道的是,如果仲裁设置为3,这意味着Leader服务器需要等待至少2台服务器复制写入的数据,总共3个复制的数据。但是,如果客户机连接到不属于仲裁的服务器(这两个服务器中的任何一个),这不意味着它获取旧数据吗 首先,
当我通过以下命令执行zkServer.cmd时:
D:\zookeeper\zookeeper-3.4.14\bin>call "C:\Program Files\Java\jdk-13.0.2"\bin\java "-Dzookeeper.log.dir=D:\zookeeper\zookeeper-3.4.14\bin\.." "-Dzookeeper.root.logger=INFO,CONSOLE" -cp "D:\zookeeper\zookeeper-3.4.14\bin\..
风暴版:0.82
zookeeper版本:3.4.5
我们有一个小风暴集群(1个nimbus和3个supervisors),所以只使用1个zookeeper实例,它与风暴nimbus位于同一位置
我们很少在zookeeper日志中出现以下错误,我们的风暴群就会停止
2014-04-05 13:27:32,885 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFact
ory@197] - Accep
我试图使用SpringXD构建一个kafka消费者,但无论我为zkconnect提供什么,它都告诉我连接是混乱的
stream create kafka-source-test --definition "kafka --groupId=xd-test --zkconnect=52.5.7.194:2181 --topic=vehicle-data | log" --deploy
这将产生:
2015-05-22 17:49:46,973 1.1.2.RELEASE WARN Deploy
要从命令行界面删除zookeeper中的节点,有一个delete命令。当我运行它时,它会说:
Node not empty: /testNode
我正在使用。为此,zkCli提供了rmr(已弃用)或deleteall命令。它将递归删除路径下的所有节点。这个命令没有执行。您提供的文档链接适用于版本3.3.3我在Java中使用以下命令:
zkClient.deleteRecursive(ZkUtils.getTopicPath(topicName))
Zookeeper是否将临时节点写入磁盘
我知道在Zookeeper确认对客户端的写入之前,普通Zookeeper节点会被写入磁盘
但是,临时节点仅在客户端会话期间持续,因此,如果zookeeper节点全部崩溃,则根据定义,客户端会话将中断。因此无需写入磁盘,因为在集合重新启动时不会重新创建临时节点。所以从理论上讲,似乎短暂的节点只需要存储在内存中
这就是它的实现方式吗?我自己也遇到了这个问题,并注意到它已经在上得到了回答,我将它发布在这里,供任何发现这个问题的人使用
简言之,是的,短暂的节点确
我有一个有3个碎片的SolrCloud,3个复制品和一个有5个成员的Zookeeper合奏
副本2正在失效,根设备是EBS备份的,并且它有一个连接的EBS卷。我假设重新启动时,它将迁移到具有新的公共和私有IP的新硬件
我还假设我必须重新启动所有碎片和副本。将新复制副本分配到与旧复制副本相同的插槽的最佳方法是什么?不是在第一次SolrCloud启动时分配给每个主机的碎片/副本角色吗?这些分配不是存储在Zookeeper中吗?replica2按预期使用新的公共和私有IP重新启动。我在所有SOLR主机
我如何验证zookeeper中的所有节点都是仲裁的一部分并且是健康的?谈到“ruok”,但这并不是说zookeeper节点是否是仲裁的一部分,是否与其他节点同步。您可以使用中记录的srvr命令获取有关集合中每个zookeeper服务器的更详细状态信息。请参见下面的3节点集群输出示例,其中主机名为ubuntu1、ubuntu2和ubuntu3
模式字段将告诉您该特定服务器是领导者还是追随者。Zxid字段是ZooKeeper集群的内部事务ID,用于跟踪znodes树的状态更改。在一个健康的集群中,您
HDP-2.5.3.0,NiFi 1.1.1
我正在用NiFi编写一个自定义处理器。我需要将几个字符串和时间戳字段存储在某个位置,以便这些字段在所有/任何节点上都可用
@Tags({ "example" })
@CapabilityDescription("Provide a description")
@SeeAlso({})
@ReadsAttributes({ @ReadsAttribute(attribute = "", description = "") })
@WritesAttri
我在Ubuntu14上安装了zookeeper,但当运行该命令时失败了。命令是:
cat/var/log/kaa/*| grep错误
它表明:
2017-04-19 00:20:04197[main]错误o.k.s.n.s.i.KaNodeInitializationService-未能在5分钟内连接到Zookeeper。Kaa节点服务器将停止。
2017-04-19 00:45:39668[Kaa节点服务器关闭线程]错误o.k.s.c.s.a.AdminInitializationServic
正如ZooKeeper入门指南中提到的,容错群集设置至少需要三台服务器,强烈建议您使用奇数台服务器
所以,如果我有5台服务器,如上所述,当其中两台服务器出现故障时,我仍然可以生存。但这意味着同时或累计
那么这个怎么样:
5台服务器->故障一台->4台服务器->故障一台->3台服务器->故障一台->2台服务器->故障一台->死亡
3台服务器(初始化)和3台服务器(从5台服务器降级)之间的区别是什么?要让Zookeeper集群工作,它需要仲裁。仲裁是集群中的大多数服务器
对于3节点集群,大多数是2
例如,zkClient A连接到ZKServerX,zkClient A发出从0到1更新znode“/A”的请求。收到此请求后,zkserverx将其转发给leader
然后,领导者向所有服务器广播此更新建议。在服务器达到仲裁后
提交更新请求,更新成功
然后zka客户端发出读取请求以获取znode“/A”的值。zkserverx接收该读取请求
因此,如果zkserverx不在仲裁中,并且zkserverx没有提交更新以赶上领先者,那么zka客户机仍然可能获得znode“/A”的过时值。在这种情况
嗨,我刚从我的动物园管理员那里得到一些数据
如您所见,zk_max_延迟相当高。但这是它曾经达到的最大值还是它始终是当前值
echo mntr | nc localhost 2181
zk_version 3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 04:05 GMT
zk_avg_latency 0
zk_max_latency 4738
zk_min_latency 0
zk_packets
我在zookeeper中配置了3台服务器
这里是zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/Alternant/zookeeper/zk1Data
clientPort=2181
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=10.111.210.19:2888:3888
我在尝试连接时遇到此异常
2020-01-31 14:3
我们都知道Zookeeper leader从追随者那里得到一半ACK时会执行写操作,所以我的问题是关于以下两种情况:
对于未确认的追随者,他们是否可能保留过时的数据,并且无法使用最新数据响应客户机
即使对于已确认的追随者,如果无法提交写入,会发生什么?客户端可以看到未提交的数据吗
观察者是否可能将过时的数据返回给客户端
我正在用我的ZookePernetexnuget软件包执行一个简单的createAsync(),它正在抛出一个异常,该异常由MARSHALLINGERROR触发
以下是两行摘要(在这两行之间,成功地向Zookeeper确认了连接):
我不明白ClusterWatcher是我自己从Watcher派生的类。是的,我是用C#写的,但这是一件如此简单的事情,我认为它无关紧要。主机正在运行Windows 10 Pro,如果有必要的话。此异常可以通过不指定ACL模式触发(您似乎通过了null)。在Java中
我使用Zookeeper作为集群的组通信框架。在我的集群中,每当一个节点崩溃时,我都需要一个相同的事件。如何做到这一点?
早些时候,我使用JGroup作为组通信框架,集群中的每个节点用于连接到同一个通道,每当某个特定节点崩溃时,JGroup都会生成一个事件。您可以让每个节点在zookeeper中创建一个znode。当节点崩溃时,短暂的znode将消失
现在通知新节点加入和离开,让所有临时znode都是同一父znode的子节点,并在父znode的子节点上注册a。此监视将在添加和删除子znode时启
我们集群中有两名卡夫卡经纪人和3名动物园管理员
随机(2-10小时时间)经纪人下跌
非常感谢您为调试此问题提供的任何帮助
日志
[2014-10-28 08:19:56,465] INFO [Kafka Server 1], shutting down (kafka.server.KafkaServer)
[2014-10-28 08:19:56,470] INFO [Socket Server on Broker 1], Shutting down (kafka.network.SocketS
我有一个zookeeper集群,它有3个节点:zk01、zk02和zk03。为了进行维护工作,我关闭了zk01,并用一个新节点替换它,它仍然被称为zk01。但是,当我运行“echo stat | nc zk01 2181”时,收到错误消息“此ZooKeeper实例当前未为请求提供服务”。所以我对zk02和zk03尝试了这个命令:
root@zk01.gf-tokyo ~ # echo stat | nc zk02 2181
Zookeeper version: 3.3.5-cdh3u6--1,
我在网上跟踪链接
要获取Zookeeper服务器包,我将访问唯一的tar文件。从这一点上,我假设所有内容都在tar文件中,但当我正确设置dataDir时,我得到了“Zookeeper数据目录丢失…”。谷歌搜索让我发现有一个zookeeper服务器服务,我可能需要“初始化”它。我到底在哪里可以得到3.5.1 alpha版的zookeeper服务器
我无法启动动物园管理员服务。请查看堆栈跟踪
跟踪1:org.apache.zookeeper.server.ZooKeeperServer:
Severe unrecoverable error, exiting
java.io.FileNotFoundException: /var/lib/zookeeper/version-2/snapshot.40003a3c3 (Permission denied)
at java.io.FileOutputStream.open(Native M
如果您已经使用策展人/动物园管理员实现了发布-订阅模式,您可以分享您的经验吗?我们目前正在进行概念验证,您的反馈将大有帮助
找到此链接,其中显示了使用策展人的示例。该示例中的注释表示“它不是用于生产的”。他们是说这不是一个好的模式来使用策展人,他们只是用它作为一个例子来展示策展人的特点?或者他们是说该模式与策展人合作良好,但该示例不是您将在生产中实施的东西
除了众所周知的对znode大小的1MB限制之外,这也有助于了解利弊
非常感谢您的帮助 遇到了这个链接,它谈到了使用Zookeeper作为队列
嗨,我设置了我的zookeeper集群,它似乎运行良好。但是我试图设置堆的大小,但它似乎没有得到尊重。我在conf/中使用export-JVMFLAGS=“-xms300m-xmx300m”文件创建了java.env
当我ps-aux | grep java时,我可以看到-Xmx1000m-xms300m-xmx300m。但是当我检查free-m时,我只看到200M已使用和3.3G免费
我注意到默认值是不考虑的。这会影响它吗
Xms不应该填满用过的RAM吗
如果使用/usr/bin/zooke
在apache策展人框架中,LeaderLatch和LeaderSelector之间有什么区别
它们是相同行为的不同抽象。首先写的是《领袖选举》(注:我是《策展人》的主要作者)。它使用回调机制。一些策展人用户想要更像JDK CountDownLatch的东西,所以我根据这些请求编写了LeaderLatch。他们都完成了同样的任务:领导人选举。使用任何适合您需要的工具。LeaderLatch使用起来更简单,但LeaderSelector提供了更多的控制。这取决于你需要多少控制
检查我所做的,以及它
我对使用Zookeeper还不熟悉,并试图用书本来学习。现在,要以独立模式启动服务器,书中给出了使用命令bin/zkServer.sh start
我正在使用Windows,因此我以bin/zkServer.cmd start的形式运行命令,现在我得到一个奇怪的错误,如下所示:
D:\zoo\zookeeper-3.4.6>bin\zkServer.cmd start
D:\zoo\zookeeper-3.4.6>java "-Dzookeeper.log.dir=D:\zoo\z
我已在zoo.cfg中设置:clientPort=2181
cloudera@cloudera-vm://$sudo/usr/lib/zookeeper/bin/zkServer.sh start
我得到以下回应:
JMX enabled by default
Using config: /usr/lib/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
cloudera@cloudera-vm://$sudo/usr/l
我无法在zookeeper中找到有关永久节点自动过期的信息。永久节点是否仅在zookeeper服务器关闭时过期,或者在此之前可以过期?。如果是,可能的原因是什么。这里我询问的是自动过期,而不是手动删除节点。持久性ZK节点保存在磁盘上,并在服务重新启动时保留,仅通过请求删除。临时节点会在客户端断开连接时自动删除。假设我在独立的zookeeper服务器上创建了持久节点。我重新启动了服务器,是否仍然可以在zk服务器上访问该持久节点。这是正确的。有关详细信息,请参阅
我使用的是Kafka0.8.1。我需要在实例化Producer时设置zookeeper.connect属性。我将属性设置为:
Properties props = new Properties();
props.put("zookeeper.connect","zookeeper2:2181,zookeeper3:2181,zookeeper1:2181/kafka");
但是,卡夫卡一直在抱怨:
[main]utils.Logging$class(83):属性zookeeper.conne
我一直在关注——但似乎这些都是卡夫卡的消费品。我想连接到ZookeKeeper(zookeperhost:2181)并获取相关的卡夫卡经纪人列表。有没有办法用HLC做到这一点
另外,有没有一种方法可以使用SimpleConsumer查找kafka代理的列表,给定zk?正如您在给出的链接中看到的,您不会将代理列表传递给HLC,但是
props.put("zookeeper.connect", a_zookeeper);
所以它已经链接到zookeeper,从那里它将发现卡夫卡经纪人
对于第二个问
我对索尔克劳德不熟悉。在solrcloud模式下运行时,我想将solr home目录设置为solr-7.6.0/home。但是当我运行./solr start-e cloud时,主目录是在示例目录中创建的。当我运行./solr start-c-s../home时,同样会在示例文件夹中创建home目录。在启动solrcloud之前,我必须将任何内容(如配置文件)放入主目录中。您正在运行示例
我建议您设置一个更现实的设置:
下载zookeeper并启动它
将Solr作为服务安装
通过在“Solr.i
我想列出我所有的子节点,比如:ls/mynode
不幸的是,当我们有大量的子节点时,上面的命令不起作用。原因是缓冲区限制。即使我们增加它的jute.maxbuffer,我们也可以达到这个极限
那么,如果要列出所有节点,我们该怎么办?
1.Zk是否支持分页?否。
2.Zk是否支持通配符?否。
3.Zk是否支持过滤?否。
解决方案是什么?提交了一个修补程序,用于向getChildren()调用添加分页,但从未合并。我知道这不是一个真正的解决方案,但您可以添加另一个目录级别(例如,按znode名称的第
我已经在谷歌上搜索了这些信息,但没有发现任何决定性的东西。我想清除我的zookeeper,如果我在所有根节点上运行rmr可以吗
谢谢请随意删除系统未使用的每个节点。
此外,您可能希望使用节点,当与zookeeper服务器的连接断开时,这些节点会自动删除
我正在制作AuthenticationProvider,在验证过程中连接到Zookeeper(与它运行的相同),并在节点中检查该用户是否提供了正确的密码
基本上,流程看起来是这样的:
@Override
public KeeperException.Code handleAuthentication(ServerCnxn cnxn, byte[] authData) {
final String usernameColonPassword = new String(authDat
对不起,这是个很蹩脚的问题。我在ZK网站上搜索了很长一段时间才最终选择在这里提问
启动ZooKeeper的zkCli.sh并键入help时,create命令会显示:
create [-s] [-e] path data acl
s和e是什么意思
虽然这确实是我需要知道的,但我也想知道这些信息是在哪里定义、记录和/或描述的,因为正如我所说的,我搜索了很长时间,却找不到它
谢谢你的帮助 s和-e选项用于指定顺序节点或临时节点
不幸的是,我不确定这是否在任何地方都有记录。幸运的是,Zookeeper
Zookeeper文档说,一个节点允许的最大数据数组大小是1MB。我可以在父节点下存储1MB数据,在其所有子节点中存储1MB数据吗
例:
是的,你可以。但建议实际数据大小远小于此限制。请记住,1MB是键和值大小的组合
请注意,zookeeper的设计不是为了存储大量数据,因为在这种情况下,它的性能会严重下降
/parent_node
{
1MB
}
/parent_node/child_node_1
{
1MB
我一直在寻找这个问题的答案,本常见问题解答中也提到了这个问题:
有人能证实这里给出的答案吗
谢谢
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 14 页