你需要指定一个文档管理器,它还没有做任何事情。看起来连接正在工作,所以你应该看看下面的附加选项,以便特别注意-d
或--docManager
,因为这是输出所说的从当前配置中丢失的。这可能会实现(我已经去除了反斜杠,只是表示这在多行为了方便)
python mongo_connector.py
--oplog-ts /var/log/oplog.log
-m 127.0.0.1:27017
-d /doc_managers/solr_doc_manager.py
-t http://localhost:8080/solr4
蒙戈连接器选项
启动系统,只需运行“蟒蛇mongo_connector.py”。但是,您可能需要指定一些命令行选项才能使用您的设置。它们描述如下:
-m
或--mongos
是指定主机地址,它是主机:端口对。对于分片群集,这应该是mongos地址。对于单个副本集,提供主要地址。例如,-m localhost:27217
将是-m的有效参数。不要在地址周围使用引号。
-t
或--target-url
是指定要使用的目标系统的URL。例如,如果您开箱即用Solr,则可以使用SolrDocManager的-t http://localhost:8080/solr
来建立正确的连接。不要在地址附近使用引号。如果目标系统不需要URL,则不要指定。
-o
或--oplog-ts
用于指定存储oplog进度时间戳的文件的名称。系统使用此文件来存储在特定oplog上读取的上次时间戳。这允许从故障中快速恢复。默认情况下,这是config.txt,它从空白处开始。一个空文件导致系统遍历所有mongo oplog并同步所有文档。每当集群重新启动时,oplog-timestamp配置文件必须清空 - 否则连接器将错过一些文档并且行为不正确。
-n
或--namespace-set
用于指定我们想要考虑的名称空间。例如,如果我们希望存储来自test.test和alpha.foo命名空间的所有文档,我们可以使用-n test.test,alpha.foo。缺省情况是考虑所有命名空间,不包括系统和配置数据库,也忽略任何数据库中的“system.indexes”集合。
-u
或--unique-key
用于指定将用作目标系统的唯一键的mongoDB字段。缺省值是“_id”,可以用“-u _id”来注明
-f
是指定一个包含认证密码的文件。这个文件被mongos用来验证与分片的连接,我们将在oplog线程中使用它。此选项的主要用途是指定密码,而不在命令行中将其作为明文输入。
-p
是指定用于认证的密码。如果此选项与-f一起指定,则无论密码文件的内容如何,都将使用此处指定的密码。对于分片群集,管理员用户名/密码必须存在于每个分片的管理数据库中,否则系统将无法进行身份验证。这是因为连接器如何对碎片进行验证,这在下面的“系统内部”部分有详细描述。
-a
或--admin-username
用于指定要认证的管理员用户的用户名。要使用系统认证,用户必须指定此选项和密码或密码文件选项,该选项存储用户的密码。默认的用户名是'__system',不建议用于生产。如果在分片环境中使用此密码选项和其中一个密码选项,则必须在群集中每个分片的admin数据库中存在用户名/密码。否则,认证将失败。
-d
或--docManager
用于指定将要使用的文档管理器文件。你应该发送你想要使用的文件的路径。默认情况下,它将使用doc_manager_simulator.py文件。建议将所有文档管理器文件保存在mongo-connector中的doc_managers文件夹中。有关制作自己的文档管理器的更多信息,请参阅文档管理器部分。
附加信息
由于连接器做实时同步,就必须有运行的MongoDB副本集的设置。我会假设情况是这样的,你只需要一个文档管理器就可以了。
请参阅this url的详细信息
感谢您的解释。这样可行。但是,现在我得到了下一个错误:“2012-08-20 03:46:02,981 - 错误 - [原因:/ solr4/update /]”...目前正试图弄清楚。 – markashworth
我可以设置一个副本集,但只有一个主节点(没有副本,换句话说,只有一个副本集的副本集)?使用mongo连接器有意义吗? –