Может ли каскадирование переписать / заменить Apache Spark

#scala #apache-spark #hadoop #mapreduce #cascading

#scala #apache-spark #hadoop #mapreduce #каскадирование

Вопрос:

Я должен заменить map, максимально сократить код, написанный на pig и java, на Apache Spark amp; Scala, и повторно использовать или найти альтернативу там, где это невозможно. Я могу найти большинство преобразований pig в spark. Теперь я столкнулся с каскадным кодом Java, о котором у меня минимальные знания. Я исследовал каскадирование и понял, как работает сантехника, но я не могу прийти к выводу, следует ли заменить его на spark. Вот мои несколько основных сомнений.

  1. Можно ли полностью переписать каскадный java-код в Apache Spark?
  2. Если возможно, следует ли заменить каскадный код на Apache Spark? Это более оптимально и быстро?(Учитывая, что RAM не является проблемой для RDD)
  3. Scalding — это библиотека Scala, построенная поверх каскадирования. Следует ли это использовать для преобразования кода Java в код Scala, который удалит зависимость от исходного кода Java? Будет ли это более оптимальным?
  4. Каскадирование работает на mapreduce, который считывает поток ввода-вывода, тогда как Spark считывает данные из памяти. Это единственное отличие, или существуют какие-либо ограничения или специальные функции, которые могут выполняться только одним из них?

Я очень новичок в сегменте больших данных и очень незрел в концепциях / сравнениях всех терминологий, связанных с большими данными, Hadoop, Spark, Map-Reduce, Hive, Flink и т. Д. Я получил ответственность за эти большие данные с моим новым профилем работы и минимальными знаниями / опытом старшего. Пожалуйста, предоставьте пояснительный ответ, если это возможно. Спасибо

Комментарии:

1. Да, Spark должен быть намного быстрее, чем каскадирование, поддерживаемое Hadoop. Вообще говоря, большинство вариантов использования, решаемых с помощью каскадирования, также должны быть разрешимы с помощью Spark, но возможность строго зависит от вашего варианта использования. Еще одно предложение — не предлагайте вносить изменения в вашу экосистему заданий, фактически не имея глубокого понимания.

2. Преобразование Java в Scala в большинстве случаев не является более оптимальным для времени выполнения, учитывая, что Scala вызывает базовые методы Java. Если вы работаете в основном с потоками, то Flink или Beam могут быть лучше