zookeeper不运行?

时间:2013-06-07 11:22:26

标签: solr ubuntu-12.04 apache-zookeeper

我想用solr 4.3.0运行solr云。

(我正在使用aws ubuntu-12.04-lts micro实例)

所以我跟着this toturial

基本上说,启动zookeeper并将solr实例连接到它。

以下是我如何启动动物园管理员。

  • 首先,我按照教程

    中所述复制了配置
    sudo cp zookeeper-3.4.5/conf/zoo_sample.cfg zookeeper-3.4.5/conf/zoo.cfg
    
  • 然后我开始了动物园管理员

    ubuntu@ip-10-48-159-36:/opt$ sudo zookeeper-3.4.5/bin/zkServer.sh start
    JMX enabled by default
    Using config: /opt/zookeeper-3.4.5/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    

    到目前为止看起来很好。

  • 我检查了状态:

    ubuntu@ip-10-48-159-36:/opt$ sudo zookeeper-3.4.5/bin/zkServer.sh status
    JMX enabled by default
    Using config: /opt/zookeeper-3.4.5/bin/../conf/zoo.cfg
    Error contacting service. It is probably not running.
    

    这似乎有点奇怪。

  • 如果我尝试连接客户端(远程和本地),它似乎工作

    ubuntu@ip-10-234-223-69:/opt$ zookeeper-3.4.5/bin/zkCli.sh -server ec2-54-247-144-120.eu-west-1.compute.amazonaws.com:2181
    Connecting to ec2-54-247-144-120.eu-west-1.compute.amazonaws.com:2181
    2013-06-07 11:07:01,996 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT
    2013-06-07 11:07:02,000 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=ip-10-234-223-69.eu-west-1.compute.internal
    2013-06-07 11:07:02,000 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.6.0_27
    2013-06-07 11:07:02,002 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Sun Microsystems Inc.
    2013-06-07 11:07:02,003 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/lib/jvm/java-6-openjdk-amd64/jre
    2013-06-07 11:07:02,003 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/opt/zookeeper-3.4.5/bin/../build/classes:/opt/zookeeper-3.4.5/bin/../build/lib/*.jar:/opt/zookeeper-3.4.5/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper-3.4.5/bin/../lib/slf4j-api-1.6.1.jar:/opt/zookeeper-3.4.5/bin/../lib/netty-3.2.2.Final.jar:/opt/zookeeper-3.4.5/bin/../lib/log4j-1.2.15.jar:/opt/zookeeper-3.4.5/bin/../lib/jline-0.9.94.jar:/opt/zookeeper-3.4.5/bin/../zookeeper-3.4.5.jar:/opt/zookeeper-3.4.5/bin/../src/java/lib/*.jar:/opt/zookeeper-3.4.5/bin/../conf:
    2013-06-07 11:07:02,004 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk-amd64/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
    2013-06-07 11:07:02,008 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
    2013-06-07 11:07:02,009 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
    2013-06-07 11:07:02,018 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
    2013-06-07 11:07:02,019 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
    2013-06-07 11:07:02,019 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=3.2.0-40-virtual
    2013-06-07 11:07:02,020 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=ubuntu
    2013-06-07 11:07:02,020 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/home/ubuntu
    2013-06-07 11:07:02,021 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/opt
    2013-06-07 11:07:02,029 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=ec2-54-247-144-120.eu-west-1.compute.amazonaws.com:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@182d9c06
    Welcome to ZooKeeper!
    2013-06-07 11:07:02,074 [myid:] - INFO  [main-SendThread(ip-10-48-159-36.eu-west-1.compute.internal:2181):ClientCnxn$SendThread@966] - Opening socket connection to server ip-10-48-159-36.eu-west-1.compute.internal/10.48.159.36:2181. Will not attempt to authenticate using SASL (unknown error)
    JLine support is enabled
    [zk: ec2-54-247-144-120.eu-west-1.compute.amazonaws.com:2181(CONNECTING) 0] 2013-06-07 11:07:32,100 [myid:] - INFO  [main-SendThread(ip-10-48-159-36.eu-west-1.compute.internal:2181):ClientCnxn$SendThread@1083] - Client session timed out, have not heard from server in 30038ms for sessionid 0x0, closing socket connection and attempting reconnect
    2013-06-07 11:07:33,204 [myid:] - INFO  [main-SendThread(ip-10-48-159-36.eu-west-1.compute.internal:2181):ClientCnxn$SendThread@966] - Opening socket connection to server ip-10-48-159-36.eu-west-1.compute.internal/10.48.159.36:2181. Will not attempt to authenticate using SASL (unknown error)
    
  • 现在我尝试将solr实例连接到它。在tomcat7的web界面中,它只告诉我“503 - 服务器正在关闭”,所以我检查了solr日志

    2013-06-07 11:16:36,065 [pool-2-thread-1] INFO  org.apache.solr.servlet.SolrDispatchFilter . SolrDispatchFilter.init()
    2013-06-07 11:16:36,100 [pool-2-thread-1] INFO  org.apache.solr.core.SolrResourceLoader . Using JNDI solr.home: /opt/solr-4.3.0/example/solr
    2013-06-07 11:16:36,132 [pool-2-thread-1] INFO  org.apache.solr.core.CoreContainer . looking for solr config file: /opt/solr-4.3.0/example/solr/solr.xml
    2013-06-07 11:16:36,138 [pool-2-thread-1] INFO  org.apache.solr.core.CoreContainer . New CoreContainer 1285984216
    2013-06-07 11:16:36,146 [pool-2-thread-1] INFO  org.apache.solr.core.CoreContainer . Loading CoreContainer using Solr Home: '/opt/solr-4.3.0/example/solr/'
    2013-06-07 11:16:36,152 [pool-2-thread-1] INFO  org.apache.solr.core.SolrResourceLoader . new SolrResourceLoader for directory: '/opt/solr-4.3.0/example/solr/'
    2013-06-07 11:16:36,567 [pool-2-thread-1] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory . Setting socketTimeout to: 0
    2013-06-07 11:16:36,568 [pool-2-thread-1] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory . Setting urlScheme to: http://
    2013-06-07 11:16:36,568 [pool-2-thread-1] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory . Setting connTimeout to: 0
    2013-06-07 11:16:36,568 [pool-2-thread-1] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory . Setting maxConnectionsPerHost to: 20
    2013-06-07 11:16:36,568 [pool-2-thread-1] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory . Setting corePoolSize to: 0
    2013-06-07 11:16:36,568 [pool-2-thread-1] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory . Setting maximumPoolSize to: 2147483647
    2013-06-07 11:16:36,568 [pool-2-thread-1] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory . Setting maxThreadIdleTime to: 5
    2013-06-07 11:16:36,569 [pool-2-thread-1] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory . Setting sizeOfQueue to: -1
    2013-06-07 11:16:36,569 [pool-2-thread-1] INFO  org.apache.solr.handler.component.HttpShardHandlerFactory . Setting fairnessPolicy to: false
    2013-06-07 11:16:36,578 [pool-2-thread-1] INFO  org.apache.solr.client.solrj.impl.HttpClientUtil . Creating new http client, config:maxConnectionsPerHost=20&maxConnections=10000&socketTimeout=0&connTimeout=0&retry=false
    2013-06-07 11:16:36,879 [pool-2-thread-1] INFO  org.apache.solr.core.CoreContainer . Registering Log Listener
    2013-06-07 11:16:36,881 [pool-2-thread-1] INFO  org.apache.solr.core.CoreContainer . Zookeeper client=ec2-54-247-144-120.eu-west-1.compute.amazonaws.com:2181
    2013-06-07 11:16:36,888 [pool-2-thread-1] INFO  org.apache.solr.client.solrj.impl.HttpClientUtil . Creating new http client, config:maxConnections=500&maxConnectionsPerHost=16&socketTimeout=0&connTimeout=0
    2013-06-07 11:16:37,040 [pool-2-thread-1] INFO  org.apache.solr.common.cloud.ConnectionManager . Waiting for client to connect to ZooKeeper
    2013-06-07 11:16:52,046 [pool-2-thread-1] ERROR org.apache.solr.servlet.SolrDispatchFilter . Could not start Solr. Check solr/home property and the logs
    2013-06-07 11:16:52,103 [pool-2-thread-1] ERROR org.apache.solr.core.SolrCore . null:java.lang.RuntimeException: java.util.concurrent.TimeoutException: Could not connect to ZooKeeper ec2-54-247-144-120.eu-west-1.compute.amazonaws.com:2181 within 15000 ms
        at org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:130)
        at org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:88)
        at org.apache.solr.cloud.ZkController.<init>(ZkController.java:170)
        at org.apache.solr.core.CoreContainer.initZooKeeper(CoreContainer.java:242)
        at org.apache.solr.core.CoreContainer.load(CoreContainer.java:495)
        at org.apache.solr.core.CoreContainer.load(CoreContainer.java:358)
        at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:326)
        at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:124)
        at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
        at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4638)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5294)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:649)
        at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1581)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:679)
    Caused by: java.util.concurrent.TimeoutException: Could not connect to ZooKeeper ec2-54-247-144-120.eu-west-1.compute.amazonaws.com:2181 within 15000 ms
        at org.apache.solr.common.cloud.ConnectionManager.waitForConnected(ConnectionManager.java:173)
        at org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:127)
        ... 25 more
    
    2013-06-07 11:16:52,104 [pool-2-thread-1] INFO  org.apache.solr.servlet.SolrDispatchFilter . SolrDispatchFilter.init() done
    

它告诉我什么? 在同一个实例上,我刚刚与客户端成功连接...... :(

问题出在哪里?

[编辑:] 而不是使用amazons ec * * .amazon。*地址我使用网络地址10.X.X.X告诉solr动物园管理员在哪里。 它似乎有效。

4 个答案:

答案 0 :(得分:1)

你有答案 - 你的ZooKeeper无法进入! 检查防火墙配置。

您也可以使用

进行检查
zkCli.sh -server localhost:2181

答案 1 :(得分:1)

一定存在某种连接问题。 我发现你现在已经解决了。 下次遇到这种情况时,您应该登录连接有问题的盒子并使用telnet查看是否可以连接。

例如:来自你的solr盒子:

telnet ec2-54-247-144-120.eu-west-1.compute.amazonaws.com 2181

然后从zk框中尝试。它应该开始阐明你的问题所在。

这可以消除任何应用程序层问题,并且可以非常可靠地告诉您是否可以连接。它你无法连接,那么它几乎总是某种安全问题 - 运行某个地方的防火墙(尝试 - $ service iptables stop)或者这将是亚马逊安全组配置的问题。

最后一个潜在的问题是网络可用性。尽管人们认为,网络不可靠,不应该被认为是这样。在SOA /分布式系统中工作的任何人都会很清楚:) http://aphyr.com/posts/288-the-network-is-reliable

“多伦多大学和微软研究院的一个团队研究了微软数据中心的网络故障行为。他们发现平均每天有5.2台设备失败,每天有40.8个链路,维修时间中位数约为五分钟(最多一周)。“

答案 2 :(得分:0)

在设置SolrCloud和ZooKeeper时,我也遇到了错误联系服务。它可能没有运行。&#34;问题。原因是ZooKeeper需要的文件名中的拼写错误。正确的文件名是&#34; myid&#34;。我写了#34; myip&#34;因为失误。重命名文件并重新启动ZooKeeper(./zkServer.sh restart)后,我的问题得到了解决。

答案 3 :(得分:0)

尝试停止solr实例solr.shutdown(),以便为每个线程创建新的CloudSolrServer实例