canal icon indicating copy to clipboard operation
canal copied to clipboard

canal-adapter 无法找到索引(Not found the mapping info of index)索引已经存在,无子文档

Open JacksonCda opened this issue 5 years ago • 14 comments

  • [x] I have searched the issues#1851 of this repository and believe that this is not a useful.

environment

  • canal version 1.1.5
  • canal-adapter version 1.1.5
  • mysql version 5.6
  • elasticsearch version 7.X

Issue Description

The Mapping is exists!! image image

config of canal-adapter es/test_keyword_db.yml image ERROR c.a.otter.canal.client.adapter.es.service.ESSyncService - sync error, es index: test_keyword_db, DML : Dml{destination='test', database='canal_manager', table='test', type='UPDATE', es=1608236866000, ts=1608236866208, sql='', data=[{id=8, title=54841289qqqasdasd, product_description=}], old=[{title=54841289qqq}]} 2020-12-18 04:27:46.233 [pool-3-thread-1] ERROR c.a.o.canal.adapter.launcher.loader.CanalAdapterWorker - java.lang.IllegalArgumentException: Not found the mapping info of index: test_keyword_db java.lang.RuntimeException: java.lang.IllegalArgumentException: Not found the mapping info of index: test_keyword_db at com.alibaba.otter.canal.client.adapter.es.service.ESSyncService.sync(ESSyncService.java:110) at com.alibaba.otter.canal.client.adapter.es.service.ESSyncService.sync(ESSyncService.java:58) at com.alibaba.otter.canal.client.adapter.es.ESAdapter.sync(ESAdapter.java:169) at com.alibaba.otter.canal.client.adapter.es.ESAdapter.sync(ESAdapter.java:148) at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.batchSync(AbstractCanalAdapterWorker.java:201) at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.lambda$null$1(AbstractCanalAdapterWorker.java:62) at java.util.ArrayList.forEach(ArrayList.java:1259) at com.alibaba.otter.canal.adapter.launcher.loader.AbstractCanalAdapterWorker.lambda$null$2(AbstractCanalAdapterWorker.java:58) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.IllegalArgumentException: Not found the mapping info of index: test_keyword_db at com.alibaba.otter.canal.client.adapter.es.support.ESTemplate.getEsType(ESTemplate.java:497) at com.alibaba.otter.canal.client.adapter.es.support.ESTemplate.getValFromData(ESTemplate.java:345) at com.alibaba.otter.canal.client.adapter.es.support.ESTemplate.getESDataFromDmlData(ESTemplate.java:410) at com.alibaba.otter.canal.client.adapter.es.service.ESSyncService.singleTableSimpleFiledUpdate(ESSyncService.java:793) at com.alibaba.otter.canal.client.adapter.es.service.ESSyncService.update(ESSyncService.java:206) at com.alibaba.otter.canal.client.adapter.es.service.ESSyncService.sync(ESSyncService.java:95) ... 11 common frames omitted

Steps to reproduce

MYSQL Binlog file successfully read

Expected behaviour

successful SyncES

Actual behaviour

image

If there is an exception, please attach the exception trace:

JacksonCda avatar Dec 18 '20 01:12 JacksonCda

这个问题解决了吗?

itfeiyue avatar Jan 05 '21 06:01 itfeiyue

使用索引别名时会出现这个问题。 例如: PUT tyredb-s_garage_v1 { "aliases": { "tyredb-s_garage": { "is_write_index": true } } ...

clannad2000 avatar Jan 05 '21 08:01 clannad2000

还没解决,我并没有使用别名

JacksonCda avatar Jan 06 '21 06:01 JacksonCda

这个问题解决了吗?

还没有解决

JacksonCda avatar Jan 06 '21 06:01 JacksonCda

使用索引别名时会出现这个问题。 例如: PUT tyredb-s_garage_v1 { "aliases": { "tyredb-s_garage": { "is_write_index": true } } ...

我并没有使用别名

JacksonCda avatar Jan 06 '21 06:01 JacksonCda

image 现在没报错了,但是也没更新数据

JacksonCda avatar Jan 06 '21 12:01 JacksonCda

之前看到1.1.4支持ES 6.X.X版本以上,以为也支持ES 7,昨天看到一篇文章说只有1.1.5才支持,想着会不会是版本问题,于是昨天又换了canal-deployer为1.1.5版本,但是依然不行,没报错,但是也没更新ES数据

JacksonCda avatar Jan 07 '21 02:01 JacksonCda

碰到和你一样的问题,显先是报索引不存在,后来把字段改成大写,不报错了,日志也展示能读到新增数据,但是es中没数据

GumpDing avatar Jan 22 '21 07:01 GumpDing

问题1:es7 报错druid类无法转化 修复:下载原码修改client-adapter.escore中的pom.xml,重新打包替换canal release(1.1.5)下adapter/plugins下的client-adapter.es7x-1.1.5-jar-with-dependencies.jar <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <scope>provided</scope> </dependency> 问题2:1.1.5 adapter 配置es7报错找不到适配器,换成1.1.4的adapter配置为出现一样的现象。 elasticsearch-7.13.3-1.x86_64 java version "1.8.0_211

--Fixed 不更新的原因:es7 安全级别提高需要设置密码,数据同步正常。 warn log [299 Elasticsearch-7.13.3-5d21bea28db1e89ecc1f66311ebdec9dc3aa7d64 "Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.13/security-minimal-setup.html to enable security."]

adapter中配置 - name: es7 hosts: http://127.0.0.1:9200 # 127.0.0.1:9300 for transport 127.0.0.1:9200 for rest mode #key: exampleKey properties: mode: rest #transport # or rest security.auth: elastic:btqZ4jgUDoEK3P28ZZBn # only used for rest mode cluster.name: elasticsearch 正常log: Affected indexes: xxxxx

之前看到1.1.4支持ES 6.X.X版本以上,以为也支持ES 7,昨天看到一篇文章说只有1.1.5才支持,想着会不会是版本问题,于是昨天又换了canal-deployer为1.1.5版本,但是依然不行,没报错,但是也没更新ES数据

Jenfong avatar Aug 15 '21 19:08 Jenfong

问题解决了吗?我也遇到了这个问题,调了一天了一直提示这个错误...

pruidong avatar Mar 01 '22 13:03 pruidong

我这是遇到了Not found the mapping info of index: XXX这个问题 canal版本:1.1.4 es版本:7.15.2

把ESConnection类的第137行注释调的代码放开 源代码 // try { // response = restHighLevelClient // .indices() // .getMapping(request, RequestOptions.DEFAULT); // // 6.4以下版本直接使用该接口会报错 // } catch (Exception e) { // logger.warn("Low ElasticSearch version for getMapping"); response = RestHighLevelClientExt.getMapping(restHighLevelClient, request, RequestOptions.DEFAULT); 更改后 try { response = restHighLevelClient .indices() .getMapping(request, RequestOptions.DEFAULT); // 6.4以下版本直接使用该接口会报错 } catch (Exception e) { logger.warn("Low ElasticSearch version for getMapping"); // response = RestHighLevelClientExt.getMapping(restHighLevelClient, request, RequestOptions.DEFAULT);

同时下面147行IOException改为Exception

以上操作完后再次install,重新运行,问题得以解决

zsdxhwzn avatar Apr 06 '22 16:04 zsdxhwzn

问题解决了吗?我也遇到了这个问题,调了一天一直提示这个错误...

可以试一下我的解决方案

zsdxhwzn avatar Apr 06 '22 16:04 zsdxhwzn

问题解决了吗?我也遇到了这个问题,调了一天一直提示这个错误...

可以试一下我的解决方案

解决了,我遇到的是连接ES失败,所以一直提示索引不存在.处理了连接问题之后就可以了.

pruidong avatar Apr 07 '22 00:04 pruidong

问题解决了吗?我也遇到了这个问题,调了一天一直提示这个错误...

可以试一下我的解决方案

解决了,我遇到的是连接ES失败,所以一直提示索引不存在.处理了连接问题之后就可以了.

怎么解决的连接问题?

Pupupuuuu avatar Jan 25 '25 07:01 Pupupuuuu