Apache ZooKeeper是一种用于小型对象的高可用数据存储.ZooKeeper集群由一些节点组成,这些节点都将整个数据集保存在其内存中.数据集称为"始终一致",因此每个节点每次都有相同的数据.
根据文档和博客文章,群集中的每个节点都可以回答读取和接受写入.
问题:为什么领导者等待一半的节点回复呢?如果有人连接到没有收到更新的其中一个节点,他会得到一个过时的结果(只有本地读取到本地值).
我刚刚升级到Kafka 1.0和zookeeper 3.4.10.首先,一切都开始了.独立的生产者和消费者按预期工作.在我运行代码大约10分钟后,Kafka失败并出现此错误:
[2017-11-07 16:48:01,304] INFO在目录C:\ Kafka\kafka_2.12-1.0.0\kafka-logs(kafka.log.LogManager)中停止提供日志
[2017-11-07 16:48:01,320]致命关闭代理,因为C:\ Kafka\kafka_2.12-1.0.0\kafka-logs中的所有日志都失败了(kafka.log.LogManager)
我重新安装并重新配置了Kafka 1.0,同样的事情发生了.如果我尝试重新启动,则会发生相同的错误.
删除日志文件有助于启动Kafka,但在短期运行后它会再次失败.
我已经运行了0.10.2版本很长一段时间,从来没有遇到过这样的事情,它在很长一段时间内非常稳定.
这还不是一个生产环境,它是一个相当简单的设置,一个生产者,一个消费者从一个主题阅读.
我不确定这是否与zookeeper有任何关系.
**更新:**问题已在已发布的Apache JIRA板 的共识到目前为止似乎是,这是一个Windows的问题.
我从这个链接学习如何使用kafka (除了我在zookeeper中使用端口2182),
但它显示:
zookeeper不是公认的选择
执行后:
sudo ./bin/kafka-console-consumer.sh --topic test --zookeeper localhost:2182
我做了一些搜索,似乎有一个未答复的重复问题,但它已被删除.
有人知道怎么解决吗?
ENV:
kafka_2.11-2.1.0
zookeeper-3.4.10
Run Code Online (Sandbox Code Playgroud) hbase-site.xml中的zookeeper仲裁设置究竟是什么?
我目前处于开发的早期阶段,将Zookeeper的东西集成到我的应用程序中.我正在使用Netflix的Curator作为处理Zookeeper的API.我得到了大部分的要点(比如添加ZNodes和诸如此类的东西).
但是你怎么检查ZNode是否存在?看起来像它的代码是:
client.checkExists().forPath(path);
Run Code Online (Sandbox Code Playgroud)
... ... client的实例在哪里com.netflix.curator.framework.CuratorFramework
但是,此调用返回一个org.apache.zookeeper.data.Stat对象.
使用此对象,如何判断路径是否存在?
谢谢
我试图在本文之后以独立模式部署Hbase:http://hbase.apache.org/book.html#quickstart .版本是0.92.1-cdh4.1.2
但是在尝试创建表时我遇到了这些错误:
错误信息:
13/04/01 14:07:10 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries
13/04/01 14:07:10 WARN zookeeper.ZKUtil: hconnection Unable to set watcher on znode /hbase/master
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1021)
at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:154)
at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:226)
at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:82)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:580)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:569)
Run Code Online (Sandbox Code Playgroud)
输出日志:
13/04/01 14:06:39 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=localhost:2181 sessionTimeout=180000 watcher=hconnection
13/04/01 14:06:39 INFO zookeeper.RecoverableZooKeeper: The identifier of this process is 10231@localhost
13/04/01 14:06:39 INFO zookeeper.ClientCnxn: Opening socket connection to …Run Code Online (Sandbox Code Playgroud) 我在我的locahost运行Zookeeper和Kafka(每个1个实例).
我从kafka成功创建了一个主题:
./bin/kafka-topics.sh --zookeeper localhost:2181 --create --replication-factor 1 --partitions 1 --topic Hello-Nicola
Created topic "Hello-Nicola".
Run Code Online (Sandbox Code Playgroud)
卡夫卡原木显示:
[2017-12-06 16:00:17,753] INFO [KafkaServer id=0] started (kafka.server.KafkaServer)
[2017-12-06 16:03:19,347] INFO [ReplicaFetcherManager on broker 0] Removed fetcher for partitions Hello-Nicola-0 (kafka.server.ReplicaFetcherManager)
[2017-12-06 16:03:19,393] INFO Loading producer state from offset 0 for partition Hello-Nicola-0 with message format version 2 (kafka.log.Log)
[2017-12-06 16:03:19,406] INFO Completed load of log Hello-Nicola-0 with 1 log segments, log start offset 0 and log end offset 0 in 35 ms (kafka.log.Log)
[2017-12-06 …Run Code Online (Sandbox Code Playgroud) 我有三个zookeeper节点.所有港口都是开放的.IP地址是正确的.下面是我的配置文件.由chef引导的所有节点都具有相同的安装和配置文件.
# The number of milliseconds of each tick
tickTime=3000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/var/lib/zookeeper
# Place the dataLogDir to a separate physical disc for better performance
# dataLogDir=/disk2/zookeeper
# the port at which the clients will connect
clientPort=2181
server.1=111.111.111:2888:3888
server.2=111.111.112:2888:3888
server.3=111.111.113:2888:3888
Run Code Online (Sandbox Code Playgroud)
这是其中一个节点的错误.所以...我对如何得到错误感到困惑,因为配置相当香草.所有三个节点都在做同样的事情.
2012-07-16 …Run Code Online (Sandbox Code Playgroud) 在阅读ZooKeeper的锁定配方时,我感到困惑.似乎这个分布式锁定的配方无法保证"任何两个客户端认为它们持有相同锁定的任何快照".但是由于ZooKeeper被如此广泛采用,如果参考文档中存在这样的错误,有人应该在很久以前就指出它,那么我误解了什么呢?
引用分布式锁的配方:
锁
完全分布式锁,全局同步,意味着在任何快照时,没有两个客户端认为它们拥有相同的锁.这些可以使用ZooKeeeper实现.与优先级队列一样,首先定义一个锁定节点.
- 使用路径名" locknode/guid-lock-" 调用create(),并设置序列和短暂标志.
- 在锁定节点上调用getChildren()而不设置监视标志(这对于避免群体效应很重要).
- 如果在步骤1中创建的路径名具有最低序列号后缀,则客户端具有锁,并且客户端退出协议.
- 客户端调用exists(),并在lock目录中的路径上设置watch标志,并使用下一个最低序列号.
- 如果exists()返回false,则转到步骤2.否则,在转到步骤2之前,等待上一步中路径名的通知.
考虑以下情况:
但是,ZooKeeper可能会认为Client1的会话超时了
这是一个有效的场景吗?
我知道之前有人问过这个问题,所以请原谅我再问一次,但是那个帖子指出的解决方案都没有对我有用.
我正在尝试0.10.20按照文档设置Kafka .当我启动ZooKeeper时,我得到以下日志:
$ bin/zookeeper-server-start.sh config/zookeeper.properties
[2017-04-22 12:25:15,810] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2017-04-22 12:25:15,814] INFO autopurge.snapRetainCount set to 3 (org.apache.zookeeper.server.DatadirCleanupManager)
[2017-04-22 12:25:15,815] INFO autopurge.purgeInterval set to 0 (org.apache.zookeeper.server.DatadirCleanupManager)
[2017-04-22 12:25:15,815] INFO Purge task is not scheduled. (org.apache.zookeeper.server.DatadirCleanupManager)
[2017-04-22 12:25:15,815] WARN Either no config or no quorum defined in config, running in standalone mode (org.apache.zookeeper.server.quorum.QuorumPeerMain)
[2017-04-22 12:25:15,837] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2017-04-22 12:25:15,837] INFO Starting server (org.apache.zookeeper.server.ZooKeeperServerMain)
[2017-04-22 12:25:15,855] …Run Code Online (Sandbox Code Playgroud)