Pull to refresh

Comments 5

Как человеку с не очень устойчивой психикой, мне достаточно одного взгляда на картинку, подобную этой, для начала панической атаки. Но я решил, что страдать буду только сам. Цель статьи — сделать так, чтобы Hadoop выглядел не таким страшным.

Hadoop может быть совсем не страшным, если к нему зайти с правильной стороны.
Во-первых, не стоит даже пытаться ставить его из апачевского дистрибутива. CDH от Cloudera или HDP от Hortonworks превратят знакомство с Hadoop-ом из жёсткого садомазо в лёгкие романтические отношения.
Во-вторых, MapReduce медленный (большое время старта, многократная запись на диск и пр.) и очень не гибкий (одна параллельная стадия map и одна централизовання reduce — совсем не густо). Альтернативный рантайм, который обрабатывает данные в памяти — Apache Spark (сейчас на него переходит больше половины проектов из инфраструктуры Хадупа). Если набор данных не помещается в суммарную память кластера, то лучше уж использовать обёртку вокруг MapReduce в виде Scalding/Cascading. Но голый MapReduce — нет, нет и ещё раз нет.
В-третьих, для SQL на Hadoop есть не только Hive, но ещё и Impala, и Shark (а теперь и Spark SQL). А если уж хочется Hive, то лучше сразу версию 0.13, которая в среднем в 50-100 раз быстрее предыдущих версий (новый рантайм, все дела).
В-четвёртых, не используйте Oozie. Он был спроектирован для организации конвееров из MR джобов в примесью Hive запросов. В современных условиях при наличии Spark (или даже Scalding) и Impala с друзьями, Oozie становится бесполезным.
В-пятых, Pig вообще не понятно, кому может быть интересен.
В-шестых, Sqoop 1 неэффективен, Sqoop 2 ещё недавно был сильно недопилен.
В-седьмых, Flume негибкий и требует постоянного расширения средствами Java.

В целом, я бы рекоммендовал начинать знакомство с Hadoop со связки HDFS + Spark + Impala + Kafka. HDFS была, есть и будет основой для обработки «больших данных». Spark вместе со связанными проектами — отличный рантайм, который уже включён в CDH5. Impala была пионером среди real-time альтернатив Hive и до сих пор среди лидеров. Kafka — относительно новый и пока не очень стабильный проект, но он практически идеально подходит для «всасывания» больших данных в HDFS.
А разве Scalding/Cascading как-то ускоряет всю стадию map\reduce? Мне казалось, что это просто обертка над традиционной фазой map\reduce, которая не ускоряет обработку данных, но ускоряет (наверное) написание этих самих обработчиков.
Так и есть:
Если набор данных не помещается в суммарную память кластера, то лучше уж использовать обёртку вокруг MapReduce в виде Scalding/Cascading.
UFO just landed and posted this here
Для некомпонуемых задач — например, для задач рекуррентных.

расшифруйте пожалуйста на простой русский язык.
Sign up to leave a comment.