Solr Map reduce 索引器工具无法通过 zk 获取别名
Solr Map reduce indexer tool not able to fetch aliases through zk
您好,在使用 Solr 4.10 云的 MapReduceIndexerTool 时,代码能够成功连接到 Zookeeper,但是在获取 aliases.json 时,它无法获取数据。下面是命令和堆栈跟踪:
命令:
hadoop --config /etc/hadoop/conf jar target/search-mr-*-job.jar org.apache.solr.hadoop.MapReduceIndexerTool -D 'mapred.child.java.opts=-Xmx500m' --log4j src/test/resources/log4j.properties --morphline-file /home/impadmin/app_quotes_morphline.conf --output-dir hdfs://impetus-i0056.impetus.co.in:8020/user/impadmin/MapReduceIndexerTool/output2 --zk-host 172.26.45.69:9983/solr --collection app.quotes hdfs://impetus-i0056.impetus.co.in:8020/apps/hive/warehouse/kst
堆栈跟踪:
警告:使用 "yarn jar" 启动 YARN 应用程序。
1 [main] INFO org.apache.solr.common.cloud.SolrZkClient - 使用默认的 ZkCredentialsProvider
87 [main] INFO org.apache.solr.common.cloud.ConnectionManager - 等待客户端连接到 ZooKeeper
114 [main-EventThread] INFO org.apache.solr.common.cloud.ConnectionManager - Watcher org.apache.solr.common.cloud.ConnectionManager@1568159 name:ZooKeeperConnection Watcher:172.26.45.69:9983/solr 得到事件 WatchedEvent state:SyncConnected type:None path:null path:null type:None
115 [main] INFO org.apache.solr.common.cloud.ConnectionManager - 客户端已连接到 ZooKeeper
115 [main] INFO org.apache.solr.common.cloud.SolrZkClient - 使用默认 ZkACLProvider
线程 "main" net.sourceforge.argparse4j.inf.ArgumentParserException 中的异常:java.lang.IllegalArgumentException:在 ZooKeeper 中找不到 SolrCloud 的预期信息:172.26.45.69:9983/solr
在 org.apache.solr.hadoop.MapReduceIndexerTool.verifyZKStructure(MapReduceIndexerTool.java:1418)
在 org.apache.solr.hadoop.MapReduceIndexerTool.run(MapReduceIndexerTool.java:716)
在 org.apache.solr.hadoop.MapReduceIndexerTool.run(MapReduceIndexerTool.java:681)
在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
在 org.apache.solr.hadoop.MapReduceIndexerTool.main(MapReduceIndexerTool.java:668)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498)
在 org.apache.hadoop.util.RunJar.run(RunJar.java:221)
在 org.apache.hadoop.util.RunJar.main(RunJar.java:136)
原因:java.lang.IllegalArgumentException:在 ZooKeeper 中找不到 SolrCloud 的预期信息:172.26.45.69:9983/solr
在 org.apache.solr.hadoop.ZooKeeperInspector.extractDocCollection(ZooKeeperInspector.java:88)
在 org.apache.solr.hadoop.ZooKeeperInspector.extractShardUrls(ZooKeeperInspector.java:56)
在 org.apache.solr.hadoop.MapReduceIndexerTool.verifyZKStructure(MapReduceIndexerTool.java:1415)
... 还有 10 个
由以下原因引起:org.apache.zookeeper.KeeperException$NoNodeException:KeeperErrorCode = NoNode for /aliases.json
在 org.apache.zookeeper.KeeperException.create(KeeperException.java:111)
在 org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
在 org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1155)
在 org.apache.solr.common.cloud.SolrZkClient$7.execute(SolrZkClient.java:351)
在 org.apache.solr.common.cloud.SolrZkClient$7.execute(SolrZkClient.java:348)
在 org.apache.solr.common.cloud.ZkCmdExecutor.retryOperation(ZkCmdExecutor.java:61)
在 org.apache.solr.common.cloud.SolrZkClient.getData(SolrZkClient.java:348)
在 org.apache.solr.hadoop.ZooKeeperInspector.checkForAlias(ZooKeeperInspector.java:164)
在 org.apache.solr.hadoop.ZooKeeperInspector.extractDocCollection(ZooKeeperInspector.java:85)
... 还有 12 个
请帮我找出根本原因。
问题出在访问 zk solr 配置的 URL 上。因此更正 URL 解决了这个问题。在嵌入式 solr 实例的情况下,URL 没有可用的应用程序 solr,而是将其直接放在 zk root 下。
您好,在使用 Solr 4.10 云的 MapReduceIndexerTool 时,代码能够成功连接到 Zookeeper,但是在获取 aliases.json 时,它无法获取数据。下面是命令和堆栈跟踪:
命令:
hadoop --config /etc/hadoop/conf jar target/search-mr-*-job.jar org.apache.solr.hadoop.MapReduceIndexerTool -D 'mapred.child.java.opts=-Xmx500m' --log4j src/test/resources/log4j.properties --morphline-file /home/impadmin/app_quotes_morphline.conf --output-dir hdfs://impetus-i0056.impetus.co.in:8020/user/impadmin/MapReduceIndexerTool/output2 --zk-host 172.26.45.69:9983/solr --collection app.quotes hdfs://impetus-i0056.impetus.co.in:8020/apps/hive/warehouse/kst
堆栈跟踪:
警告:使用 "yarn jar" 启动 YARN 应用程序。 1 [main] INFO org.apache.solr.common.cloud.SolrZkClient - 使用默认的 ZkCredentialsProvider 87 [main] INFO org.apache.solr.common.cloud.ConnectionManager - 等待客户端连接到 ZooKeeper 114 [main-EventThread] INFO org.apache.solr.common.cloud.ConnectionManager - Watcher org.apache.solr.common.cloud.ConnectionManager@1568159 name:ZooKeeperConnection Watcher:172.26.45.69:9983/solr 得到事件 WatchedEvent state:SyncConnected type:None path:null path:null type:None 115 [main] INFO org.apache.solr.common.cloud.ConnectionManager - 客户端已连接到 ZooKeeper 115 [main] INFO org.apache.solr.common.cloud.SolrZkClient - 使用默认 ZkACLProvider 线程 "main" net.sourceforge.argparse4j.inf.ArgumentParserException 中的异常:java.lang.IllegalArgumentException:在 ZooKeeper 中找不到 SolrCloud 的预期信息:172.26.45.69:9983/solr 在 org.apache.solr.hadoop.MapReduceIndexerTool.verifyZKStructure(MapReduceIndexerTool.java:1418) 在 org.apache.solr.hadoop.MapReduceIndexerTool.run(MapReduceIndexerTool.java:716) 在 org.apache.solr.hadoop.MapReduceIndexerTool.run(MapReduceIndexerTool.java:681) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76) 在 org.apache.solr.hadoop.MapReduceIndexerTool.main(MapReduceIndexerTool.java:668) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.apache.hadoop.util.RunJar.run(RunJar.java:221) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:136) 原因:java.lang.IllegalArgumentException:在 ZooKeeper 中找不到 SolrCloud 的预期信息:172.26.45.69:9983/solr 在 org.apache.solr.hadoop.ZooKeeperInspector.extractDocCollection(ZooKeeperInspector.java:88) 在 org.apache.solr.hadoop.ZooKeeperInspector.extractShardUrls(ZooKeeperInspector.java:56) 在 org.apache.solr.hadoop.MapReduceIndexerTool.verifyZKStructure(MapReduceIndexerTool.java:1415) ... 还有 10 个 由以下原因引起:org.apache.zookeeper.KeeperException$NoNodeException:KeeperErrorCode = NoNode for /aliases.json 在 org.apache.zookeeper.KeeperException.create(KeeperException.java:111) 在 org.apache.zookeeper.KeeperException.create(KeeperException.java:51) 在 org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1155) 在 org.apache.solr.common.cloud.SolrZkClient$7.execute(SolrZkClient.java:351) 在 org.apache.solr.common.cloud.SolrZkClient$7.execute(SolrZkClient.java:348) 在 org.apache.solr.common.cloud.ZkCmdExecutor.retryOperation(ZkCmdExecutor.java:61) 在 org.apache.solr.common.cloud.SolrZkClient.getData(SolrZkClient.java:348) 在 org.apache.solr.hadoop.ZooKeeperInspector.checkForAlias(ZooKeeperInspector.java:164) 在 org.apache.solr.hadoop.ZooKeeperInspector.extractDocCollection(ZooKeeperInspector.java:85) ... 还有 12 个
请帮我找出根本原因。
问题出在访问 zk solr 配置的 URL 上。因此更正 URL 解决了这个问题。在嵌入式 solr 实例的情况下,URL 没有可用的应用程序 solr,而是将其直接放在 zk root 下。