【发布时间】:2020-05-17 22:06:03
【问题描述】:
我开始以独立模式连接 Kafka,如下所示
/usr/local/confluent/bin/connect-standalone /usr/local/confluent/etc/kafka/connect-standalone.properties /usr/local/confluent/etc/kafka-connect-elasticsearch/quickstart-elasticsearch.properties
之后,我使用 rest API 创建了一个包含所有详细信息的连接器。 像这样
curl -X POST -H "Content-Type: application/json" --data '{"name":"elastic-search-sink-audit","config":{"connector.class":"io.confluent.connect.elasticsearch.ElasticsearchSinkConnector","tasks.max":"5","topics":"fsp-AUDIT_EVENT_DEMO","key.ignore":"true","connection.url":"https://**.amazonaws.com","type.name":"kafka-connect-distributed","name":"elastic-search-sink-audit","errors.tolerance":"all","errors.deadletterqueue.topic.name":"fsp-dlq-audit-event"}}' http://localhost:8083/connectors | jq
之后,当我检查状态时,我可以看到 5 个任务正在运行
curl localhost:8083/connectors/elastic-search-sink-audit/tasks | jq
问题 1:
这是否意味着我正在以分布式模式或仅在独立模式下运行我的 kafka 连接连接器?
问题 2:
我是否必须修改 connect-distributed.properties 文件并像独立一样开始?
问题 3:
目前我只在一个 EC2 中运行我的所有设置,现在如果我必须再添加 5 个 EC2 以使连接器更加并行并加快我如何做到这一点 kafka 连接如何理解又添加了 5 个 EC2 并且它必须分担工作量?
问题 4: 我是否必须在所有 ec2 中运行并启动并创建 kafka 连接并开始?我如何确认所有 5 个 EC2 都使用相同的连接器正常运行。
最后我给出了尝试以分布式模式启动连接器。 首先我是这样开始的
/usr/local/confluent/bin/connect-distributed /usr/local/confluent/etc/kafka/connect-distributed.properties /usr/local/confluent/etc/kafka-connect-elasticsearch/quickstart-elasticsearch.properties
然后在另一个会话中使用我这样提交的 REST API
curl -X POST -H "Content-Type: application/json" --data '{"name":"elastic-search-sink-audit","config":{"connector.class":"io.confluent.connect.elasticsearch.ElasticsearchSinkConnector","tasks.max":"5","topics":"fsp-AUDIT_EVENT_DEMO","key.ignore":"true","connection.url":"https://**.amazonaws.com","type.name":"kafka-connect-distributed","name":"elastic-search-sink-audit","errors.tolerance":"all","errors.deadletterqueue.topic.name":"fsp-dlq-audit-event"}}' http://localhost:8083/connectors | jq
但是一旦点击这个我就开始出现这样的错误
rror: NOT_ENOUGH_REPLICAS (org.apache.kafka.clients.producer.internals.Sender:598)
[2020-02-01 13:48:15,551] WARN [Producer clientId=producer-3] Got error produce response with correlation id 159 on topic-partition connect-configs-0, retrying (2147483496 attempts left). Error: NOT_ENOUGH_REPLICAS (org.apache.kafka.clients.producer.internals.Sender:598)
[2020-02-01 13:48:15,652] WARN [Producer clientId=producer-3] Got error produce response with correlation id 160 on topic-partition connect-configs-0, retrying (2147483495 attempts left). Error: NOT_ENOUGH_REPLICAS (org.apache.kafka.clients.producer.internals.Sender:598)
[2020-02-01 13:48:15,753] WARN [Producer clientId=producer-3] Got error produce response with correlation id 161 on topic-partition connect-configs-0, retrying (2147483494 attempts left). Error: NOT_ENOUGH_REPLICAS (org.apache.kafka.clients.producer.internals.Sender:598)
[2020-02-01 13:48:15,854] WARN [Producer clientId=producer-3] Got error produce response with correlation id 162 on topic-partition connect-configs-0, retrying (2147483493 attempts left). Error: NOT_ENOUGH_REPLICAS (org.apache.kafka.clients.producer.internals.Sender:598)
[2020-02-01 13:48:15,956] WARN [Producer clientId=producer-3] Got error produce response with correlation id 163 on topic-partition connect-configs-0, retrying (2147483492 attempts left). Error: NOT_ENOUGH_REPLICAS (org.apache.kafka.clients.producer.internals.Sender:598)
当我尝试使用 curl 创建连接器时终于请求超时
{ "error_code": 500, "message": "Request timed out" }
请帮助我理解这一点。
【问题讨论】:
-
顺便说一下,你可能想看看使用 Landoop Kafka Connect UI
-
@cricket_007 是的,这很好,但我在 AWS 中的 EC2 Linux 上运行,我没有足够的权限...Landdop 我可以看到我的本地但在 EC2 AWS 中看不到
-
权限做什么?您显然可以下载 Kafka,那么为什么不能下载其他东西呢? EC2 没关系,你可以在自己的机器上运行 UI
-
@cricket_007 我没有从我的本地机器连接 EC2 ..我在 AWS 中做所有事情。所以基本上我无法从本地到 EC2 ping 或 telnet
-
那你是如何使用 ssh 的呢?这只是一个 VPC 配置......或者您可以通过 SSH 隧道访问任何 HTTP 端口
标签: apache-kafka apache-kafka-connect