Mongodb mongo_connector.py通常需要多长时间?

Mongodb mongo_connector.py通常需要多长时间?,mongodb,solr,pymongo,Mongodb,Solr,Pymongo,我正在尝试从MongoDB更新Solr索引。问题是,它似乎要花很长时间才能运行,我无法确定它是否超时。我一次最多可以离开6个小时,却看不到任何事情发生。我开始怀疑我做错了什么。数据约为2Gb。因此,我想知道是否有人对在类似或更大数据量上使用mongo_connector.py有类似的经验,那么任何方向正确的点都会很好 我正在使用的服务器是Ubuntu 12.04 我用来调用mongo_connector.py的行是: python /usr/local/lib/python2.7/dist-pa

我正在尝试从MongoDB更新Solr索引。问题是,它似乎要花很长时间才能运行,我无法确定它是否超时。我一次最多可以离开6个小时,却看不到任何事情发生。我开始怀疑我做错了什么。数据约为2Gb。因此,我想知道是否有人对在类似或更大数据量上使用mongo_connector.py有类似的经验,那么任何方向正确的点都会很好

我正在使用的服务器是Ubuntu 12.04

我用来调用mongo_connector.py的行是:

python /usr/local/lib/python2.7/dist-packages/mongo-connector/mongo_connector.py --oplog-ts /var/log/oplog.log -m 127.0.0.1:27017 -t http://localhost:8080/solr4
结果如下:

2012-08-19 19:24:57,950 - INFO - Beginning Mongo Connector
2012-08-19 19:24:57,951 - INFO - No doc manager specified, using simulator.
2012-08-19 19:24:58,956 - INFO - OplogManager: Initializing oplog thread
2012-08-19 19:24:58,958 - INFO - MongoConnector: Starting connection thread Connection('127.0.0.1', 27017)

成功使用mongo_connector.py的人提供的任何见解或帮助都会很有帮助,即使你认为你只是在告诉我一些琐碎的事情。

你需要指定一个文档管理器,它还没有做任何事情。连接似乎正在工作,因此您应该查看以下附加选项,以设置对
-d
--docManager
的特别关注,因为当前配置中缺少输出说明。这可能行得通(为了方便起见,我删除了反斜杠,并简单地在多行上显示)

Mongo连接器选项 要启动系统,只需运行“PythonMongo_connector.py”。但是,您可能需要指定一些命令行选项才能使用设置。它们的描述如下:

-m
-mongos
用于指定主地址,即主机:端口对。对于分片集群,这应该是mongos地址。对于单个副本集,请提供主副本的地址。例如,
-m localhost:27217
将是-m的有效参数。不要在地址周围使用引号

-t
-目标url
用于指定所用目标系统的url。例如,如果您使用的是开箱即用的Solr,那么可以使用
-thttp://localhost:8080/solr
使用SolrDocManager建立正确的连接。不要在地址周围使用引号。如果目标系统不需要URL,请不要指定

-o
-oplog ts
用于指定存储oplog进度时间戳的文件名。系统使用此文件存储在特定oplog上读取的最后一个时间戳。这允许从故障中快速恢复。默认情况下,这是config.txt,它以空开头。一个空文件会导致系统遍历所有mongo oplog并同步所有文档。每当集群重新启动时,必须清空oplog timestamp config文件,否则连接器将丢失一些文档并表现不正确

<代码> -N/COD>或 >命名空间集合用于指定我们要考虑的命名空间。例如,如果我们希望存储test.test和alpha.foo名称空间中的所有文档,我们可以使用-n test.test,alpha.foo。默认值是考虑所有的命名空间,不包括系统和配置数据库,也忽略任何数据库中的“Stury.Cudio”集合。

-u
--unique key
用于指定将用作目标系统唯一键的mongoDB字段。默认值为“\u id”,可用“-u\u id”表示

-f
用于指定包含身份验证密码的文件。mongos使用该文件来验证与碎片的连接,我们将在oplog线程中使用它。此选项的主要用途是指定密码,而无需在命令行上以明文形式输入密码

-p
用于指定用于身份验证的密码。如果此选项与-f一起指定,则无论密码文件的内容如何,都将使用此处指定的密码。对于分片集群,管理用户名/密码必须存在于每个分片的管理数据库中,否则系统将无法进行身份验证。这是因为连接器如何针对碎片进行身份验证,这将在下面的系统内部部分中详细描述

-a
--admin username
用于指定管理员用户的用户名以进行身份验证。要对系统使用身份验证,用户必须同时指定此选项和存储用户密码的密码或密码文件选项。默认用户名为“\uuu system”,不建议在生产中使用。如果在分片环境中使用此选项和其中一个密码选项,则必须在集群中每个分片的管理数据库中存在用户名/密码。否则,身份验证将失败

-d
--docManager
用于指定要使用的doc manager文件。您应该发送要使用的文件的路径。默认情况下,它将使用doc_manager_simulator.py文件。建议将所有doc manager文件保存在mongo connector的doc_manager文件夹中。有关创建自己的文档管理器的更多信息,请参阅文档管理器部分

附加信息 由于连接器进行实时同步,因此有必要让MongoDB运行副本集设置。我假设情况就是这样,你只需要一个文档管理员,就像上面说的那样


有关更多信息,请参见url

谢谢您的解释。这很有效。然而,现在我得到了下一个错误:“2012-08-20 03:46:02981-error-[Reason:/solr4/update/]”。。。目前正在尝试解决这个问题。我可以设置一个副本集,但只有一个主副本(没有辅助副本,或者,换句话说,只有一个实例的副本集)?使用mongo连接器有意义吗?
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