О Big Data сегодня не слышал только человек, совсем далёкий от IT. Тем не менее, молодым IT-шникам не всегда понятно, с чего нужно начать изучение этой темы, какими навыками нужно обладать и какими инструментами стоит пользоваться.
Прежде всего, чтобы избежать путаницы, надо определится, идёт ли речь о Big Datа или о Data Science. К сожалению, многие часто смешивают эти два понятия. Big Data — это набор в значительной степени инженерных технологий и продуктов для сбора, хранения и «преобразования» больших объёмов данных. В то время как Data Science — это методики и алгоритмы извлечения знаний из данных, не обязательно больших.
Что учить?
Основой Big Data является Hadoop. При первом знакомстве с Big Data лучше всего воспользоваться готовыми дистрибутивами от Cloudera или Hortonworks и изучить продукты, входящие в эти дистрибутивы:
HDFS и форматы файлов ( avro, parquet, …);
HBASE;
MapReduce;
Spark;
Flume;
Kafka;
Hive и, может быть, Impala;
Hue;
Pig;
Big Data — это не два компьютера в компании, которые потребляют немного электричества, и, допустим, простой которых некритичен. Это большой согласованный кластер со сложным ПО и высокими затратами на эксплуатацию, обслуживание. И, как правило, эти большие данные и анализ для кого-то предназначены. Если они пропадают, неэффективно обрабатываются, то проект обречён на провал… Важно не только правильно проанализировать данные, но и успеть это сделать за определённый конечный интервал времени, успеть дать ответ к конкретной дате.
Чтобы стать разработчиком Big Data, нужно обладать большим кругозором, а также попасть в команду, которая уже эффективно занимается Big Data.
Но, как правило, в эти команды зовут опытных людей из других, смежных областей, а не начинающих разработчиков.
Сразу стать программистом, связанным с Big Data, — это очень сложно. Даже захотеть сложно. То есть надо понимать, почему ты туда попал, почему ты хочешь с этим работать. А это значит, что нужен опыт. А опыт есть у опытных программистов. Игра слов, но всё-таки.
Начинающему разработчику требуется для себя понять, с чем он справится, что ему, прежде всего, интересно: осваивать фреймворки, писать всевозможные модули по сбору данных, начать работать с таким инструментарием как Kafka, Spark, Elastic Stack, Hadoop и другими похожими технологиями в контексте именно сбора и накопления данных. Либо ему, как математику, интересно прежде всего постепенно учиться строить простые модели, простую выборку данных, и дальше всё углубляться и углубляться в процесс, применяя тот или иной язык, специфический для анализа данных.
Очень часто данные анализируются с помощью языка Python, либо R, также используются более специализированные языки. Некоторые делают анализ данных на функциональных языках типа Scala, Haskell. А вот собираются данные часто с использованием Java, и вообще тем, что там было придумано на JVM-машине и применимо для сбора, анализа, обработки данных. Netty, Akka, Kafka, Spark и прочее, и прочее.
С чего начинающему программисту нужно начать изучение темы Big Data, какими навыками нужно обладать?
Для ответа на этот вопрос нужно в первую очередь разграничить, с какой точки зрения мы подходим к изучению Big Data.
Это может быть:
Сбор и хранение данных.
Анализ данных.
Анализ данных — это о-о-очень много математики. Это знание алгоритмов и математических методов, причём порою весьма специфических. Это интуиция, в том числе математическая интуиция, если можно так сказать. Например, как посмотреть на те же самые цифры по-другому.
С другой стороны, вся область Big Data была бы не востребована, если бы не были собраны, обработаны и сохранены миллиарды записей. Поэтому важно эффективно данные записывать, хранить и обрабатывать.
6 комментариев
Добавить комментарий