Мы используем Spark 2.4.3 для потоковой обработки. Это на AWS EMR. В EMR существует вероятность сбоя кластера, поэтому мы решили регулярно выполнять резервное копирование данных на S3.
Ссылка: https://cm.engineering/using-hdfs-to-store-spark-streaming-application-checkpoints-2146c1960d30
Теперь, когда мы пытаемся восстановить контрольные точки, созданные в одном кластере в другом кластере, мы получаем эту ошибку:
User class threw exception: java.net.NoRouteToHostException: No Route to Host from ip-xx-xx-xx-215/xx.xx.xx.215 to ip-xx-xx-xx-42.YYYYYYYY-Y.YYYYY.internal:8020 failed on socket timeout exception: java.net.NoRouteToHostException: No route to host; For more details see: http://wiki.apache.org/hadoop/NoRouteToHost
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
В этом ip-xx-xx-xx-42.YYYYYYYY-Y.YYYYY.internal: 8020 - это более старый кластер. Мы открыли файлы контрольных точек в текстовом редакторе. Мы смогли найти там IP-адрес.
Есть ли способ избежать этого?