ES-MongoDB学习错误1_Could not import mongo_connector.doc_managers.elastic_doc_manager

本文介绍了一次使用mongo-connector将MongoDB数据同步至Elasticsearch过程中遇到的配置错误,并详细记录了排查及解决问题的具体步骤。

安装前面几篇文章,安装好mongo_connector后,进行文件从MongoDB到ES的备份,使用下面的命令操作:

<span style="font-size:14px;">mongo-connector -m localhost:27017 -t localhost:9200 -d elastic_doc_manager</span>

出现错误:

<span style="font-size:14px;"><pre name="code" class="html">No handlers could be found for logger "mongo_connector.util"
Traceback (most recent call last):
  File "/usr/local/bin/mongo-connector", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/site-packages/mongo_connector/util.py", line 85, in wrapped
    func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mongo_connector/connector.py", line 1041, in main
    conf.parse_args()
  File "/usr/local/lib/python2.7/site-packages/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/site-packages/mongo_connector/connector.py", line 824, in apply_doc_managers
    module = import_dm_by_name(dm['docManager'])
  File "/usr/local/lib/python2.7/site-packages/mongo_connector/connector.py", line 814, in import_dm_by_name
    "vailable doc managers." % full_name)
mongo_connector.errors.InvalidConfiguration: Could not import mongo_connector.doc_managers.elastic_doc_manager. </span>
<span style="font-size:14px;">It could be that this doc manager has been moved out of this project and is maintained elsewhere. </span>
<span style="font-size:14px;">Make sure that you have the doc manager installed alongside mongo-connector. Check the README for a list of available doc managers.
[iienet@slave1 site-packages]$</span>


根据说明,可能是elastic_doc_manager的问题,继续深入寻找原因

mongo_connector的安装位置是

<span style="font-size:14px;">[iienet@slave1 site-packages]$ ls
bson                                 pysolr-3.4.0.dist-info
easy-install.pth                     pysolr.py
elastic_doc_manager-0.1.0.dist-info  pysolr.pyc
elasticsearch                        README
elasticsearch-1.9.0.dist-info        requests
gridfs                               requests-2.9.1.dist-info
mongo_connector                      setuptools-20.6.7-py2.7.egg
mongo_connector-2.3.dist-info        setuptools.pth
pip-8.1.1-py2.7.egg                  urllib3
pymongo                              urllib3-1.15.dist-info
pymongo-3.2.2-py2.7.egg-info
[iienet@slave1 site-packages]$ pwd
/usr/local/lib/python2.7/site-packages
[iienet@slave1 site-packages]$ </span>

这是改正错误后的结果,出现错误前,里面并没有es的信息

继续查找elastic_doc_manager的相关信息

地址是

https://pypi.python.org/pypi/elastic-doc-manager#downloads

发现它需要安装

<span style="font-size:14px;">pip install elastic-doc-manager</span>


安装后,重新操作,问题解决。

<think>好的,用户现在问的是关于从mongo_connector导入的一些模块和方法的版本问题。首先,我需要确定用户提到的这些模块和方法的来源。用户提供的代码段导入了MongoConnector、AutomationTest,以及来自queries.flag_detection和queries.service_logs的两个方法:percentage_imu_correction_filter_true和RunModes。 首先,我回忆一下是否听说过mongo_connector这个库。Mongo ConnectorMongoDB的一个官方工具,用于同步数据到其他系统,比如Elasticsearch。但用户提到的模块结构似乎不太一样,比如queries.flag_detection和queries.service_logs,这可能不是官方的Mongo Connector。这可能是一个自定义或公司内部的库,或者可能是一个第三方扩展。 接下来,用户想知道这些方法在哪个版本中存在。由于无法确定库的来源,我需要帮助用户理清如何确定版本。首先,建议用户检查他们使用的库的来源,是内部开发的还是公开的。如果是公开的,查看官方文档或变更日志。如果是内部的,可能需要联系维护团队。 另外,用户可能在使用过程中遇到了导入错误,比如模块或方法不存在,这可能是因为他们安装的版本不包含这些方法。或者,他们可能在文档或示例代码中看到了这些导入,但不确定如何正确使用。需要建议用户确认他们的安装版本,并检查对应版本的文档或源代码,以确定这些方法是否存在。 可能用户没有意识到这些模块是特定版本添加的,或者他们使用的版本较旧,缺少这些功能。因此,建议用户升级到最新版本,或者查看库的发布说明,确认这些方法引入的版本。如果用户无法找到相关信息,可能需要直接查看库的源代码或联系支持团队。 总结来说,用户需要明确库的来源和版本,然后通过文档、变更日志或维护团队来确定这些方法的存在版本。同时,用户可能遇到导入错误,需要确认安装正确版本。</think>根据您提供的导入语句,这些模块和方法似乎属于自定义或企业内部的`mongo_connector`库(并非MongoDB官方工具)。以下是分步解析和应对建议: --- ### **1. 模块来源判断** - **官方库排除** MongoDB官方提供的工具中,存在一个名为`mongo-connector`的库(用于同步MongoDB数据到其他系统如Elasticsearch),但其模块结构与您提到的`mongo_connector.queries.flag_detection`或`AutomationTest`类并不匹配。 **结论**:您使用的可能是**企业内部封装库**或**第三方定制化工具**。 --- ### **2. 版本确认方法** #### **若为内部库**: - **查阅内部文档** 联系开发团队或查阅该库的`CHANGELOG.md`、`README.md`,查找新增`percentage_imu_correction_filter_true`或`RunModes`的版本记录。 - **代码历史追溯** 若库托管在GitLab/GitHub等平台,可通过以下命令直接检索方法定义: ```bash git log -S 'def percentage_imu_correction_filter_true' -- path/to/file.py ``` #### **若为第三方公开库**: - **PyPI检索** 通过`pip show mongo_connector`查看当前安装版本,对比[PyPI页面](https://pypi.org/project/mongo-connector/)的发布历史。 - **源码比对** 直接访问项目仓库(如GitHub),检查`queries/flag_detection.py`和`queries/service_logs.py`的提交记录。 --- ### **3. 常见问题排查** #### **场景**:若运行时抛出`ImportError` - **依赖版本过低** 升级到最新版本: ```bash pip install mongo_connector --upgrade ``` - **命名冲突** 确认环境中没有其他同名库干扰: ```bash pip list | grep mongo_connector ``` #### **场景**:若方法不存在 - **版本回退测试** 尝试安装历史版本,例如: ```bash pip install mongo_connector==2.5.0 # 假设目标版本号 ``` --- ### **4. 替代方案(若无版本信息)** 若无法获取版本历史,可通过以下方式实现兼容性: ```python try: from mongo_connector.queries.flag_detection import percentage_imu_correction_filter_true from mongo_connector.queries.service_logs import RunModes except ImportError: # 回退到自定义实现或旧版API def percentage_imu_correction_filter_true(...): ... ``` --- ### **总结** - **关键点**:需明确`mongo_connector`的来源(企业私有库/第三方库)。 - **行动建议**: 1. 联系库维护者获取版本变更记录 2. 通过`pip`或源码管理工具验证版本兼容性 3. 必要时自行实现缺失方法或适配接口 如需进一步分析,请提供该库的更多上下文(如文档链接或代码片段)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值