#scala #apache-spark #hadoop #mapreduce #cascading
#scala #apache-spark #hadoop #mapreduce #каскадирование
Вопрос:
Я должен заменить map, максимально сократить код, написанный на pig и java, на Apache Spark amp; Scala, и повторно использовать или найти альтернативу там, где это невозможно. Я могу найти большинство преобразований pig в spark. Теперь я столкнулся с каскадным кодом Java, о котором у меня минимальные знания. Я исследовал каскадирование и понял, как работает сантехника, но я не могу прийти к выводу, следует ли заменить его на spark. Вот мои несколько основных сомнений.
- Можно ли полностью переписать каскадный java-код в Apache Spark?
- Если возможно, следует ли заменить каскадный код на Apache Spark? Это более оптимально и быстро?(Учитывая, что RAM не является проблемой для RDD)
- Scalding — это библиотека Scala, построенная поверх каскадирования. Следует ли это использовать для преобразования кода Java в код Scala, который удалит зависимость от исходного кода Java? Будет ли это более оптимальным?
- Каскадирование работает на mapreduce, который считывает поток ввода-вывода, тогда как Spark считывает данные из памяти. Это единственное отличие, или существуют какие-либо ограничения или специальные функции, которые могут выполняться только одним из них?
Я очень новичок в сегменте больших данных и очень незрел в концепциях / сравнениях всех терминологий, связанных с большими данными, Hadoop, Spark, Map-Reduce, Hive, Flink и т. Д. Я получил ответственность за эти большие данные с моим новым профилем работы и минимальными знаниями / опытом старшего. Пожалуйста, предоставьте пояснительный ответ, если это возможно. Спасибо
Комментарии:
1. Да, Spark должен быть намного быстрее, чем каскадирование, поддерживаемое Hadoop. Вообще говоря, большинство вариантов использования, решаемых с помощью каскадирования, также должны быть разрешимы с помощью Spark, но возможность строго зависит от вашего варианта использования. Еще одно предложение — не предлагайте вносить изменения в вашу экосистему заданий, фактически не имея глубокого понимания.
2. Преобразование Java в Scala в большинстве случаев не является более оптимальным для времени выполнения, учитывая, что Scala вызывает базовые методы Java. Если вы работаете в основном с потоками, то Flink или Beam могут быть лучше