2014-12-08 114 views
2

兩天前安裝程序正常運行。從那以後,我關閉了mongo連接器,mongo-db在後臺運行。但我沒有在mongo上運行任何查詢。mongo-connector無法啓動,出現以下錯誤:

現在我試着今天早上開始mongo連接器,它無法啓動。

[email protected]:~/Documents/elasticSearch$ mongo-connector -m localhost:27017 -t localhost:9200 -d /usr/local/lib/python2.7/dist-packages/mongo_connector/doc_managers/elastic_doc_manager.py 
2014-12-08 11:43:49,870 - INFO - Beginning Mongo Connector 
Exception in thread Thread-1: 
Traceback (most recent call last): 
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner 
self.run() 
File "/usr/local/lib/python2.7/dist-packages/mongo_connector/connector.py", line 284, in run 
self.read_oplog_progress() 
File "/usr/local/lib/python2.7/dist-packages/mongo_connector/connector.py", line 271, in read_oplog_progress 
if not isinstance(data[0], list): 
IndexError: list index out of range 

我想連接mongo和彈性搜索。而且2天前它工作正常。

回答

6

解決它通過分配不同OPLOG狀態文件,同時啓動蒙戈連接器

mongo-connector -m localhost:27017 -t localhost:9200 -d /usr/local/lib/python2.7/dist-packages/mongo_connector/doc_managers/elastic_doc_manager.py --oplog-ts oplogstatus.txt 

更新: 你也可以刪除現有oplogstatus文件並重新啓動蒙戈連接器,也將正常工作。但是,如果ES索引被破壞,那麼這不會解決問題。 在這種情況下,我刪除索引並刪除oplogstatus文件,然後重新創建索引。

+0

它解決了我的問題,但您能否請詳述爲什麼我們需要分配不同的oplog狀態文件 – Ranjeet 2015-10-21 12:57:51

+0

我發現當我們發佈錯誤的結構或文檔到ES並且其中一個文檔導致問題時,會發生這種情況。我想(我不確定),這會導致ES上的最新索引ID被損壞。下一次我們嘗試重新運行mongo連接器,並嘗試更新該索引時失敗。這繼續發生。我還沒有嘗試其他解決方案,例如將oplog計數拉回1或將計數增加1.我將在下一次遇到此問題時嘗試使用這些解決方案。 – 2015-10-22 15:06:04

+0

非常感謝Vikash這麼好的解釋。 – Ranjeet 2015-10-23 09:12:14