Есть много ситуаций, когда я пишу программу обработки данных, а новые ошибки обнаруживаются только на больших наборах данных. Например, рассмотрим скрипт, который дает сбой в 1 из 100 миллионов записей (из-за неожиданного ввода или чего-то еще); если я разрабатываю его на небольшой выборке данных, я не увижу эту ошибку. Все, что я могу сделать, это посмотреть на журналы ошибок Hadoop, настроить сценарий, а затем перезапустить всю работу. Это ужасно неэффективно как с точки зрения вычислений, так и времени разработки.
Что мне нужно, так это способ загрузить сегмент данных, который скрипт обрабатывал при сбое.
Есть ли простой способ получить это из Hadoop? (И в идеале, Hadoop Streaming?)
Несколько лет назад я научился какому-то ужасному трюку с копанием временных каталогов, которые создает сам Hadoop... хотя это не кажется хорошим решением, и я надеялся, что к настоящему времени есть что-то получше.