在elasticsearch 没有设密码的时候,canal adapt是可以正常抽数据。 后来elasticsearch设置了密码,改了canal adapt配置文件
name: es
hosts: 192.168.9.85:9200,192.168.9.86:9200,192.168.9.87:9200 # 127.0.0.1:9200 for rest mode properties: mode: rest security.auth: elastic:123456 cluster.name: my-es64
这里配置了密码,首先在es中创建了索引mytest,但是一直报Not found the mapping info of index: mytest。 如果YML配置文件中的index 改为ES没有设置密码前的索引mytest_user,就没问题。
YML文件如下: cat mytest_user2.yml dataSourceKey: defaultDS destination: example groupId: g1 esMapping: _index: mytest _type: _doc _id: _id upsert: true
pk: id sql: "select a.id as _id, a.id, a.name, a.role_id, a.c_time from user2 a"
版为 canal.adapter-1.1.4
原提问者GitHub用户hjpsss333
原因找到了,要有keyword的字段放在建es mapping中的第一个,要不就会报Not found the mapping info of index。 我是全量用logstash, logstash建的索引,es mapping中第一个字段不一定是keyword这种类型,这算是一个坑啊 "name": { "type": "text", "fields": { "keyword": { "type": "keyword" } } }
原回答者GitHub用户hjpsss333
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。