【发布时间】:2016-06-10 05:06:42
【问题描述】:
我已经在 mongodb 服务器中安装了 mongo-connector。
我是通过给出命令来执行的
mongo-connector -m [remote mongo server IP]:[remote mongo server port] -t [elastic search server IP]:[elastic search server Port] -d elastic_doc_manager.py
我也尝试过,因为 mongo 使用默认端口在同一台服务器上运行。
mongo-connector -t [elastic search server IP]:[elastic search server Port] -d elastic_doc_manager.py
我遇到错误
Traceback (most recent call last):
File "/usr/local/bin/mongo-connector", line 9, in <module>
load_entry_point('mongo-connector==2.3.dev0', 'console_scripts', 'mongo-connector')()
File "/usr/local/lib/python2.7/dist-packages/mongo_connector-2.3.dev0-py2.7.egg/mongo_connector/util.py", line 85, in wrapped
func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/mongo_connector-2.3.dev0-py2.7.egg/mongo_connector/connector.py", line 1037, in main
conf.parse_args()
File "/usr/local/lib/python2.7/dist-packages/mongo_connector-2.3.dev0-py2.7.egg/mongo_connector/config.py", line 118, in parse_args
option, dict((k, values.get(k)) for k in option.cli_names))
File "/usr/local/lib/python2.7/dist-packages/mongo_connector-2.3.dev0-py2.7.egg/mongo_connector/connector.py", line 820, in apply_doc_managers
module = import_dm_by_name(dm['docManager'])
File "/usr/local/lib/python2.7/dist-packages/mongo_connector-2.3.dev0-py2.7.egg/mongo_connector/connector.py", line 810, in import_dm_by_name
"Could not import %s." % full_name)
**mongo_connector.errors.InvalidConfiguration: Could not import mongo_connector.doc_managers.elastic_doc_manager.py.**
注意:我使用的是 python2.7 和 mongo-connector 2.3
弹性搜索服务器是2.2
有什么建议吗?
[编辑]
应用Val的建议后:
2016-02-29 19:56:59,519 [关键] mongo_connector.oplog_manager:549 - 收集转储期间的异常
Traceback(最近一次调用最后一次):
文件 "/usr/local/lib/python2.7/dist-packages/mongo_connector-2.3.dev0-py2.7.egg/mongo_connector/oplog_manager.py", 第 501 行,在 do_dump 中
upsert_all(dm)
文件 "/usr/local/lib/python2.7/dist-packages/mongo_connector-2.3.dev0-py2.7.egg/mongo_connector/oplog_manager.py", 第 485 行,在 upsert_all dm.bulk_upsert(docs_to_dump(namespace), mapped_ns, long_ts)
文件 “/usr/local/lib/python2.7/dist-packages/mongo_connector-2.3.dev0-py2.7.egg/mongo_connector/util.py”,第 32 行,已包装
返回 f(*args, **kwargs)
文件 “/usr/local/lib/python2.7/dist-packages/mongo_connector-2.3.dev0-py2.7.egg/mongo_connector/doc_managers/elastic_doc_manager.py”,第 190 行,在 bulk_upsert 中
好的,回复:
文件 "/usr/local/lib/python2.7/dist-packages/elasticsearch-1.9.0-py2.7.egg/elasticsearch/helpers/init.py", 第 160 行,在 streaming_bulk 中
对于_process_bulk_chunk(client, bulk_actions, raise_on_exception, raise_on_error, **kwargs):
文件 "/usr/local/lib/python2.7/dist-packages/elasticsearch-1.9.0-py2.7.egg/elasticsearch/helpers/init.py", 第 132 行,在 _process_bulk_chunk 中
raise BulkIndexError('%i 个文档索引失败。' % len(errors), 错误)
BulkIndexError: (u'2 个文档未能 index.',..document_class=dict, tz_aware=False, connect=True, replicaset=u'mss'), u'local'), u'oplog.rs')
2016-02-29 19:56:59,835 [错误] mongo_connector.connector:302 - MongoConnector:OplogThread 意外停止!关机
嗨,瓦尔,
我连接了另一个 mongodb 实例,该实例只有一个数据库,有一个包含 30,000 多条记录的集合,并且我能够成功执行它。以前的 mongodb 集合有多个数据库(大约 7 个),内部有多个集合(每个数据库大约 5 到 15 个),并且所有集合中的文档数量都很大(从 500 到 50,000 不等)。
Mongo-connector 是否因为 mongo 数据库中存在大量数据而失败?
我还有其他疑问
一个。是否可以仅对位于不同数据库中的 mongodb 中的特定集合进行索引?我想只索引特定的集合(而不是整个数据库)。我怎样才能做到这一点?
b.在弹性搜索中,我可以看到一个集合的重复索引。第一个是数据库名称(如预期的那样),另一个是名称 mongodb_meta,它们都具有相同的数据,如果我要更改集合,则两个集合中都会发生更新。
c。是否可以配置输出索引名称或任何其他参数?
【问题讨论】:
-
找到答案)参考:github.com/mongodb-labs/mongo-connector/wiki/FAQ Elasticsearch 中的 mongodb_meta 索引是什么? Mongo 连接器在 Elasticsearch 中创建一个 mongodb_meta 索引,以跟踪文档的最后修改时间。这用于在发生副本集回滚事件时解决冲突,但保存在单独的索引中,以便在必要时可以轻松删除。
标签: mongodb elasticsearch