Guruguha Marur Sreenivasa
01/30/2023, 6:28 PMJeremy DeGroot
01/30/2023, 6:35 PMGuruguha Marur Sreenivasa
01/30/2023, 9:18 PMJeremy DeGroot
01/31/2023, 2:07 PMJeremy DeGroot
01/31/2023, 2:08 PMRupesh More
02/03/2023, 11:18 PMclient.rack=use1-az1 and flink consumer knows to consume from topic replicas in az1? we are still using flink 1.14.Jeremy DeGroot
02/03/2023, 11:35 PMJeremy DeGroot
02/03/2023, 11:39 PMRupesh More
02/03/2023, 11:58 PMclient.rack=use1-az1 would that help ?Jeremy DeGroot
02/04/2023, 12:15 AMGuruguha Marur Sreenivasa
05/11/2023, 2:32 AMJeremy DeGroot
05/11/2023, 1:17 PMGuruguha Marur Sreenivasa
05/11/2023, 1:58 PMJeremy DeGroot
05/11/2023, 2:11 PMGuruguha Marur Sreenivasa
05/11/2023, 2:14 PMKafkaSource and when I tried to get the AZ of TM at runtime, it basically was the job submitter's AZ that we got.
2. The Kafka consumer's client.rack should still be passed though, right? Or will it be taken care by the KafkaPartitionSplitReaderJeremy DeGroot
05/11/2023, 2:15 PMJeremy DeGroot
05/11/2023, 2:17 PMclient.rack is set to the value returned by the Supplier.Guruguha Marur Sreenivasa
05/11/2023, 2:19 PMSupplier is something I need help with. I have tried the following:
1. Tried to pass in AZ info as part of Flink operator definition. This didn't work for some reason - although I expected it to work.
2. Tried the above route to get AZ info at runtime - this was expected as the AZ we get is for the current pod and not TMJeremy DeGroot
05/11/2023, 2:39 PMGuruguha Marur Sreenivasa
05/11/2023, 3:33 PMJeremy DeGroot
05/11/2023, 3:44 PMGuruguha Marur Sreenivasa
05/11/2023, 3:45 PMJeremy DeGroot
05/11/2023, 3:51 PMnodeSelector which is an EKS thing as I understand:
nodeSelector:
"<http://topology.kubernetes.io/zone|topology.kubernetes.io/zone>": {{ quote $label }}
...
env:
- name: TM_NODE_AZ
value: {{ quote $zone }}
We have in our config a mapping of $label to $zone that takes the availability zones EKS is aware of ( us-east-1[a-e] ) and maps them to the zones MSK uses ( use1-az[1-6] ). If your Kafka install is different, you may not need that.
https://archive.eksworkshop.com/beginner/140_assigning_pods/node_selector/
https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.htmlGuruguha Marur Sreenivasa
05/11/2023, 3:54 PMtaskManager:
nodeSelector:
<http://topology.kubernetes.io/zone|topology.kubernetes.io/zone>: us-east-1b
In yours, its a variable, $zone - how is this populated?Guruguha Marur Sreenivasa
05/11/2023, 3:55 PMvalue: {{ quote $zone }}Jeremy DeGroot
05/11/2023, 3:55 PMJeremy DeGroot
05/11/2023, 3:56 PMGuruguha Marur Sreenivasa
05/11/2023, 4:00 PMSupplier<> way you have is a callback and will run on the task manager than on the job submitter, your approach works.
The way I was trying before is to set the client.rack during the KafkaSource init. I found a way to get the AZ a pod is running on at runtime and tried to set it to the client.rack variable.
The problem with this is, the KafkaSource init happens in the job submitter and the AZ I got at runtime was of the job submitter and not the TaskManager. πJeremy DeGroot
05/11/2023, 4:01 PMGuruguha Marur Sreenivasa
05/11/2023, 4:01 PMGuruguha Marur Sreenivasa
05/30/2023, 8:59 PM