开发者社区> 问答> 正文

1.1.2 es adapter 有个线程一直在报错,但是功能正常

2019-01-15 14:44:32.137 ERROR 7036 --- [pool-4-thread-1] c.a.o.c.a.l.loader.CanalAdapterWorker : Outer adapter write failed 2019-01-15 14:44:32.138 ERROR 7036 --- [pool-4-thread-1] c.a.o.c.a.l.loader.CanalAdapterWorker : Outer adapter write failed 2019-01-15 14:45:16.690 ERROR 7036 --- [pool-4-thread-1] c.a.o.c.a.l.loader.CanalAdapterWorker : Outer adapter write failed

es adapter 配置完成后,ETL和增量同步功能都没问题,但是日志里面会一直打印error,请问这是什么原因呢?

conf 如下:

dataSourceKey: defaultDS destination: dev esMapping: _index: device_info _type: _doc _id: _id

pk: id

sql: "select a.id as _id,a.id as deviceId,a.create_at as createAt,a.device_name as deviceName,a.product_id as productId,a.sn as sn ,a.device_type as deviceType from device_info a"

objFields:

_labels: array:;

etlCondition: "" commitBatch: 3000

application.yml 如下:

server: port: 8081 logging: level: org.springframework: TRACE com.alibaba.otter.canal.client.adapter.hbase: DEBUG com.alibaba.otter.canal.client.adapter.es: DEBUG com.alibaba.otter.canal.client.adapter.rdb: DEBUG spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 default-property-inclusion: non_null

canal.conf:

canalServerHost: localhost:11111

zookeeperHosts: 172.16.20.62:32609

mqServers: slave1:6667 #or rocketmq

flatMessage: true

batchSize: 500 syncBatchSize: 1000 retries: 0 timeout: accessKey: secretKey: mode: tcp # kafka rocketMQ srcDataSources: defaultDS: url: jdbc:mysql://172.16.20.63:3306/ioternet?useUnicode=true username: root password: root canalAdapters: - instance: dev groups: - groupId: g1 outerAdapters: - name: es hosts: 172.16.20.64:39300 properties: cluster.name: elasticsearch

- name: rdb

key: oracle1

properties:

jdbc.driverClassName: oracle.jdbc.OracleDriver

jdbc.url: jdbc:oracle:thin:@localhost:49161:XE

jdbc.username: mytest

jdbc.password: m121212

- name: rdb

key: postgres1

properties:

jdbc.driverClassName: org.postgresql.Driver

jdbc.url: jdbc:postgresql://localhost:5432/postgres

jdbc.username: postgres

jdbc.password: 121212

threads: 1

commitSize: 3000

- name: hbase

properties:

hbase.zookeeper.quorum: 127.0.0.1

hbase.zookeeper.property.clientPort: 2181

zookeeper.znode.parent: /hbase

- name: es

hosts: 127.0.0.1:9300

properties:

cluster.name: elasticsearch

原提问者GitHub用户JunRzz

展开
收起
古拉古拉 2023-05-08 15:10:51 121 0
2 条回答
写回答
取消 提交回答
  • 可以更新最新代码试一下

    原回答者GitHub用户rewerma

    2023-05-09 18:06:53
    赞同 展开评论 打赏
  • 根据您提供的信息,您使用的是 Canal 1.1.2 版本和 ES Adapter,配置中包含了 dataSourceKey、destination 和 esMapping。而在 ES Adapter 启动后,存在一个线程一直在报错,但是功能正常。

    首先,请注意查看具体的错误信息,判断是哪一个步骤出现异常。通过报错信息可以发现,错误信息中包含了 "Outer adapter write failed",说明是在写入外部适配器时所出现的问题。这种情况可能是由于外部适配器返回的操作结果与 Canal 不匹配导致的,具体原因还需进一步排查。

    建议您参考以下步骤进行排查:

    检查 ES 集群的运行状态,确保集群正常运行。可以使用 Elasticsearch Head 等工具来查询 ES 集群状态。

    检查 Canal 日志,查看是否有其他错误信息或警告信息。如果有其他的错误信息或警告信息,需要先排除这些问题。

    检查外部适配器的配置文件,确保配置文件中的参数正确配置,并遵循外部适配器的规范。

    检查数据同步的情况,确保数据同步正常。可以尝试手动执行数据同步操作,查看同步是否出现异常。

    如果仍无法解决问题,可以在 Canal 官方论坛或 GitHub 仓库中提出 issue,向开发者和其他用户寻求帮助。

    另外,从您提供的信息来看,您在配置文件中设置了 dataSourceKey、destination 和 esMapping 等参数。建议您仔细阅读 Canal 和 ES Adapter 的官方文档,确保配置参数正确,并按照相关的规范进行配置。如果存在一些特殊的情况需要配置,可以通过参考文档或向社区寻求帮助解决问题。

    2023-05-08 15:59:40
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
多IO线程优化版 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载