Введение в технологию больших данных

задняя часть Большие данные

История больших данных

30 сентября 2018 года Лю Чипин, президент китайского интернет-гиганта Tencent, направил всем сотрудникам письмо, в котором официально объявил о начале третьей крупной организационной реструктуризации в истории компании.Облачные вычисления были переведены на более важную стратегическую позицию. не только Tencent, но и интернет-гиганты, такие как Google, Amazon, Alibaba, Baidu, Xiaomi и т. д., в последние годы скорректировали свои организационные структуры, и все они должны адаптироваться к наступлению эпохи ABC, которой невозможно избежать. так называемыйABCОн относится к промышленным тенденциям и технологическим изменениям, представленным A (ИИ, искусственный интеллект), B (большие данные, большие данные) и C (облако, облачные вычисления). В отрасли обычно считают, что это будет еще одна промышленная революция после эры ПК и эры мобильного Интернета, знаменующая наступление новой эры. Среди них облачные вычисления (C) будут подобны воде и электричеству в нашей повседневной жизни, предоставляя услуги в качестве базовой инфраструктуры всего Интернета, обеспечивая хранение, места доступа и каналы для активов корпоративных данных. С инфраструктурой только данные являются действительно ценным активом для предприятия.Упомянутые здесь данные включают бизнес-информацию внутри предприятия, информацию о товарах в Интернете, информацию о общении между людьми в программном обеспечении для чатов, информацию о местоположении и т. д., количество этих данных будет намного превышать пропускную способность существующей ИТ-архитектуры и инфраструктуры предприятия, а требования корпоративных приложений в режиме реального времени также значительно превысят существующие вычислительные мощности. Как оживить и использовать эти ценные активы данных, чтобы они могли служить государственному управлению, принятию корпоративных решений и личной жизни, именноОбработка больших данныхЯдро облачных вычислений также является внутренней душой и неизбежным направлением обновления облачных вычислений.

Следуя этой тенденции, в последние годыБольшие данныеЭтот термин также все чаще упоминается на многочисленных технических конференциях. Люди используют его для описания и определения массивов данных, созданных информационным веком, а также для обозначения технологических разработок и инноваций, связанных с ними. Всемирно известная консалтинговая фирма McKinsey была первой, кто предложил эру больших данных.На самом деле, большие данные уже некоторое время существуют в областях физики, биологии, экологии окружающей среды, а также в армии, финансах, коммуникациях и другие отрасли.Развитие отрасли привлекло внимание людей. Согласно исследованиям и расчетам Китайской академии информационных и коммуникационных технологий в сочетании с предприятиями, связанными с большими данными, масштаб индустрии больших данных в моей стране в 2017 году составил 470 миллиардов юаней, что на 30% больше, чем в прошлом году. Ожидается, что к 2020 году масштаб отрасли достигнет 1 трлн. (Источник: Китайская академия информационных и коммуникационных технологий, «Белая книга по большим данным» (2018 г.)).

大数据产品规模

Что такое большие данные? Согласно определению, данному исследовательским институтом Gartner: «Большие данные — это потребность в новых моделях обработки, чтобы иметь более сильные возможности для принятия решений, обнаружения и оптимизации процессов для адаптации к массивным, высоким темпам роста и диверсифицированным информационным активам». Стратегическое значение технологии больших данных заключается не в том, чтобы овладеть огромным объемом данных, а в том, чтобы профессионально обрабатывать эти значимые данные. Другими словами, если большие данные сравнивать с отраслью, ключом к тому, чтобы сделать эту отрасль прибыльной, является улучшение «способностей обработки» данных и реализация «добавленной стоимости» данных за счет «обработки». (Источник: Sogou Encyclopedia) Определение, данное Глобальным институтом McKinsey, таково: сбор данных, который настолько велик, что его сбор, хранение, управление и анализ намного превосходят возможности традиционных инструментов программного обеспечения баз данных Быстрый поток данных, разнообразные типы данных и низкая плотность значений - четыре характеристики. Среди многих определений ввод больших данных в энциклопедию Sogou мне больше по душе: большие данные — это совокупность данных, которые не могут быть собраны, управляемы и обработаны с помощью обычных программных инструментов в течение определенного периода времени. Для этого требуется новая модель обработки. для более эффективного принятия решений.Огромный, быстрорастущий и разнообразный информационный ресурс с мощными, аналитическими возможностями и возможностями оптимизации процессов.

Виктор Майер Шенберг, известный как «первый человек в коммерческом применении больших данных», считает, что большие данные относятся к использованию методов, которые анализируют и обрабатывают все данные без использования сокращений, таких как методы случайного анализа (такие как выборочные опросы). Ядром больших данных является предсказание, которое создаст беспрецедентные количественные измерения человеческой жизни. Он считает, что самым большим изменением в эпоху больших данных является отказ от стремления к причинно-следственным связям и вместо этого сосредоточение внимания на корреляции. То есть вам нужно знать только «что», а не «почему». Это разрушило рутинное мышление человека на тысячи лет и поставило новый вызов человеческому познанию и способу общения с миром. Это обобщенные IBM характеристики 5V: Volume (много), Velocity (высокая скорость), Variety (разнообразие), Value (низкая плотность значений), Veracity (подлинность). Стратегическое значение технологии больших данных заключается не в том, чтобы овладеть огромным объемом данных, а в том, чтобы профессионально обрабатывать эти значимые данные. Другими словами, если большие данные сравнивать с отраслью, ключом к тому, чтобы сделать эту отрасль прибыльной, является улучшение «способностей обработки» данных и реализация «добавленной стоимости» данных за счет «обработки».

С точки зрения истории развития технологий, большая обработка данных может быть разделена на три этапа: предшественник, генерация и приложение. С 1990-х годов прошлого века до начала этого столетия можно сказать, что предшественник большой обработки данных. В то время основной порядок хранения данных и обработки данных все еще был в базе данных. С погашением технологии базы данных И теория добычи данных, хранилище данных и технологии добычи данных и добычи данных стали постепенно развиваться, начал применяться различные инструменты бизнес-аналитики, такие как хранилище данных, экспертная система, система управления знаниями и так далее.

С появлением различных новых сервисов в Интернете в больших количествах появляются различные типы неструктурированных данных, что затрудняет работу с традиционными технологиями баз данных. Например, популярность Facebook привела к большому объему неструктурированных данных, генерируемых социальными приложениями, а бизнес поисковой системы известной компании Google, естественно, сталкивается с хранением и обработкой все более больших объемов данных, каждый из которых имеет привел развитие технологии больших данных в экспресс. В отрасли обычно используются три статьи, опубликованные Google в период с 2003 по 2006 год, в качестве отправной точки для создания технологий обработки больших данных: GFS, MapReduce и Bigtable. GFS (2003 г.) — масштабируемая распределенная файловая система для доступа к большому объему распределенных данных, работающая на недорогом стандартном оборудовании и обеспечивающая отказоустойчивость. MapReduce (2004 г.) – это модель параллельного программирования для обработки массивных данных. Она используется для параллельных вычислений крупномасштабных наборов данных. Она может в полной мере использовать большое количество процессоров, предоставляемых всеми недорогими серверами в кластере GFS. Его можно рассматривать как дополнение к GFS с точки зрения архитектуры, и вместе с GFS он формирует ядро ​​обработки массивных данных. GFS подходит для хранения небольшого количества очень больших файлов, но не подходит для хранения тысяч маленьких файлов.Для обработки большого количества форматированных и полуформатных данных создана распределенная система хранения данных для управления нереляционными данных, BigTable (2006 г.), он предназначен для быстрой и надежной обработки петабайт данных и может быть развернут на тысячах машин. Эти три документа можно рассматривать как источник технологии обработки больших данных.

В развитии технологии обработки больших данных нельзя не упомянуть Hadoop.Этот проект был создан Дугом Каттингом, председателем Apache Software Foundation, в Yahoo в 2005 г. Этот проект представляет собой распределенную вычислительную платформу с открытым исходным кодом для анализа больших данных, которая позволяет масштабировать безопасность приложений для обработки тысяч узлов и петабайт данных. Создавая платформу с открытым исходным кодом на MapReduce, Hadoop непреднамеренно создал процветающую экосистему, которая выходит далеко за рамки исходного Hadoop. В сообществе Hadoop инженеры могут улучшить и расширить эти идеи из более ранних документов GFS и MapReduce, которые привели к появлению множества полезных инструментов, таких как Pig, Hive, HBase, Crunch и других. Эта открытость является ключом к разнообразию существующих идей во всей отрасли, а открытая экология Hadoop также напрямую способствует развитию систем потоковых вычислений. С быстрым развитием интернет-индустрии скорость, с которой данные производятся, используются, обрабатываются и анализируются, также быстро растет невероятными темпами, которые все больше обрабатываются такими вертикалями, как социальные сети, IoT, реклама и игры. с большими наборами данных. С точки зрения бизнеса эти отрасли требуют обработки и анализа данных в режиме, близком к реальному времени, поэтому традиционные платформы, такие как Hadoop, для пакетной обработки больших данных больше не подходят для этих случаев. С 2007 года был последовательно запущен ряд проектов с открытым исходным кодом для работы с непрерывными записями данных из более чем одного источника данных с новыми идеями.Среди них многие проекты Apache являются наиболее известными, и эти проекты в настоящее время находятся на разных стадиях. развития.

大数据项目时间表

В настоящее время, с широким применением таких технологий, как интеллектуальные мобильные устройства и Интернет вещей, характеристики фрагментации, распределения и потокового мультимедиа данных становятся более очевидными для баз данных и вычислений в памяти. Концепция больших данных все больше и больше принимается вертикальными отраслями и широкой общественностью.Вызывая новые бизнес-модели, граница между большими данными и традиционными отраслями становится все более и более размытой.Все стали уделять больше внимания бизнес-инновациям, а не чем сама технология.Большие данные Тема индустрии также обратилась к преобразующему влиянию приложений на отрасль и подошла к этапу реальных приложений.

Направление развития больших данных

Технология больших данных — это новая технология и архитектура, предназначенные для сбора, обработки и анализа различных сверхкрупномасштабных данных с меньшими затратами и быстрее, а также для извлечения из них ценной информации для предприятий. По мере того, как технология процветает, нам становится проще, дешевле и быстрее обрабатывать огромные объемы данных, она становится хорошим помощником для использования данных и даже меняет бизнес-модель многих отраслей. С помощью искусственного интеллекта, облачных вычислений и Интернета вещей даже сложные большие данные могут обрабатываться обычными специалистами по данным с использованием соответствующих инструментов анализа данных. Анализ больших данных снят с ярлыка горячих ИТ-трендов и теперь является необходимой частью бизнеса компании. Вскоре он заменит золото как один из самых ценных активов человечества. В «Краткой истории будущего»: «Кто владеет данными?» Тот, кто имеет право интерпретировать данные, может иметь преимущество в будущем соревновании». Чтобы держать читателей в курсе самой последней информации о больших данных, вот список некоторых из самых горячих тенденций в области больших данных, которые определяют будущее отрасли. Ниже приведен отрывок из перевода сообщества Alibaba Yunqi о больших данных.10 трендов данных, о которых стоит знать

Быстрорастущая сеть IoT

Благодаря технологии Интернета вещей (IOT) она становится все более распространенной для смартфонов, чтобы контролировать бытовую технику. Благодаря популярности интеллектуальных устройств, таких как Xiaomi и Alibaba, автоматизируя специфические задачи в доме, Boom IOT также привлекает многих компаний в инвестировании в исследование и развитие технологий.

Все больше организаций воспользуются возможностью предоставить лучшие решения IoT, что неизбежно приведет к появлению большего количества способов сбора больших объемов данных, а также способов управления ими и их анализа. Тенденция исследований в отрасли заключается в разработке новых устройств, которые могут собирать, анализировать и обрабатывать данные, таких как браслеты, умные колонки, очки и т. д.

широко распространенная технология искусственного интеллекта

В настоящее время ИИ все чаще используется, чтобы помочь крупным и малым компаниям улучшить свои бизнес-процессы. ИИ теперь может выполнять задачи быстрее и точнее, чем люди, уменьшая количество ошибок, допущенных человеком, и улучшая общие процессы, позволяя людям лучше сосредоточиться на более важных задачах и повышая качество обслуживания.

Стремительное развитие искусственного интеллекта и высокая заработная плата привлекли многих разработчиков к работе в этой области.К счастью, на рынке доступны зрелые наборы инструментов для разработки искусственного интеллекта, и каждый может построить соответствующие алгоритмы в соответствии с реальными задачами, чтобы удовлетворить потребности растущего спроса. Если отдельные организации смогут найти наиболее эффективный способ их интеграции в бизнес-процессы, они могут получить большее преимущество.

Рост прогнозной аналитики

Аналитика больших данных была одной из ключевых стратегий компаний для получения конкурентного преимущества и достижения своих целей, и исследователи используют необходимые аналитические инструменты для обработки больших данных и определения причин возникновения определенных событий. Теперь прогнозная аналитика с помощью больших данных может помочь лучше предсказать, что может произойти в будущем.

Без сомнения, эта стратегия очень эффективна, помогая проанализировать информацию, собранную для прогнозирования поведения потребителей, что позволяет компаниям понять следующий шаг заказчика, прежде чем делать соответствующее разработка, чтобы определить шаги, которые они должны взять. Анализ данных также может предоставить больше контекста данных, чтобы помочь понять реальную причину.

Перенос темных данных в облако

Информация, которая не была преобразована в цифровой формат, называется «темными данными», и это огромная база данных, которая в настоящее время не используется. Ожидается, что эти аналоговые базы данных будут оцифрованы и перенесены в облако для прогнозной аналитики, которая принесет пользу бизнесу.

Директор по данным будет играть более важную роль

Теперь, когда большие данные все чаще становятся неотъемлемой частью бизнес-стратегий, директора по данным также играют более важную роль в своих организациях. Ожидается, что директора по данным будут направлять компании в правильном направлении и применять более активный подход, что открывает двери для специалистов по маркетингу данных, стремящихся продвинуться по карьерной лестнице.

квантовые вычисления

В настоящее время анализ и интерпретация больших объемов данных с использованием наших существующих технологий может занять значительное количество времени, если миллиарды данных можно обрабатывать одновременно всего за несколько минут, мы можем значительно сократить время обработки и дать компаниям возможность принимать своевременные решения. - сделать так, чтобы добиться лучших результатов.

Эта сложная задача может быть решена только с помощью квантовых вычислений, и хотя исследования квантовых компьютеров находятся в зачаточном состоянии, некоторые компании уже используют квантовые компьютеры для проведения связанных экспериментов, помогающих практическим и теоретическим исследованиям в различных отраслях. Вскоре после этого крупные технологические компании, такие как Google, IBM и Microsoft, начнут тестировать квантовые компьютеры, чтобы интегрировать их в бизнес-процессы.

Решения с открытым исходным кодом

В настоящее время существует множество общедоступных решений для данных, таких как программное обеспечение с открытым исходным кодом, которые добились значительного прогресса в ускорении обработки данных, а также имеют возможность доступа и реагирования на данные в режиме реального времени. По этой причине ожидается, что они будут быстро расти и пользоваться большим спросом в будущем. Хотя программное обеспечение с открытым исходным кодом дешево, и вы можете использовать программное обеспечение с открытым исходным кодом для снижения операционных расходов вашего бизнеса, у использования программного обеспечения с открытым исходным кодом есть некоторые недостатки, и вот некоторые из недостатков, которые вам нужно знать.

граничные вычисления

Из-за тенденции развития Интернета вещей многие компании обращаются к исследованиям подключенных устройств для сбора большего количества данных или обработки данных клиентов, что создает потребность в технологических инновациях. Новые технологии направлены на сокращение времени задержки от сбора данных до облака, их анализа и необходимости действий.

В ответ на эту проблему граничные вычисления могут обеспечить более высокую производительность, поскольку в сеть и из сети передается меньше данных, а стоимость облачных вычислений ниже. Компании также могут извлечь выгоду из более низких затрат на хранение и инфраструктуру, если они решат удалить ненужные данные, ранее собранные из IoT. Кроме того, периферийные вычисления могут ускорить анализ данных, предоставляя компаниям достаточно времени, чтобы правильно отреагировать.

Умные чат-боты

Из-за быстрого развития искусственного интеллекта многие компании в настоящее время развертывают чат-роботов для обработки сценариев приложений, таких как запросы клиентов, чтобы обеспечить более персонализированный режим взаимодействия, устраняя при этом искусственные потребности.

Иметь хорошие отношения между большими данными и обеспечивать более приятное обслуживание клиентов, потому что робот обрабатывает большие объемы данных, а затем предоставляет ответы на основе ключевых слов, введенных клиентом в запросе. Во время взаимодействия они могут собирать из разговора и анализировать информацию о клиентах, что помогает маркетологам разрабатывать более рациональную стратегию для достижения более высоких коэффициентов конверсии.

Суммировать

Все эти технологические скачки в разных отраслях базируются на прочном фундаменте, заложенном развитием больших данных. Достижения в области технологий будут и впредь помогать нам создавать лучшее общество с помощью более интеллектуальных процессов. Чтобы в конечном итоге извлечь выгоду из этих тенденций, мы должны полностью понимать, как эта технология используется, а также для достижения конкретных бизнес-целей. Это только начало, и большие данные будут продолжать служить катализатором изменений, происходящих в бизнесе и технологиях. Что мы можем сделать, так это подумать о том, как эффективно адаптироваться к этим изменениям и использовать эту технологию для процветания бизнеса.

Другие включают People's Daily Online и прошлогоднийВ 2018 году мировая индустрия больших данных продемонстрирует семь основных тенденций развития

Введение в большую структуру обработки данных

С технической точки зрения обычно считается, что три классические статьи, опубликованные Google с 2003 по 2006 год, — это три классические статьи, опубликованные Google: GFS, BigTable и MapReduce, которые также известны как тройка распределенных вычислений Google. , родился Hadoop, первый фреймворк для обработки больших данных, получивший большое внимание в сообществе открытого исходного кода. Влияние этого стека технологий, основанного на HDFS, HBase и MapReduce, продолжается и по сей день.

Вначале большая часть обработки больших данных принимаетАвтономная обработкаЕго основной логикой обработки является MapReduce. Так называемый MapReduce состоит в том, чтобы разделить все операции на две категории: map и reduce. map используется для разделения данных на несколько частей и их обработки по отдельности. сокращение объединяет обработанные результаты, чтобы получить окончательный результат. Хотя концепция MapReduce хороша, ее производительность в практических приложениях оставляет желать лучшего. Позже платформа Spark постепенно заменила MapReduce в качестве основного направления обработки больших данных благодаря своей мощной и высокопроизводительной технологии пакетной обработки.

С развитием времени многие предприятия больше не удовлетворяются пакетной обработкой в ​​автономном режиме, и все больше и больше сценариев необходимо обрабатывать в режиме реального времени. Чтобы удовлетворить такие требования, Spark представила Spark Streaming дляМикропакетная обработкаимитироватьВ реальном времениэффект, но эффект обработки по-прежнему неудовлетворителен. Отмеченная системой потоковых вычислений Storm, запущенной Twitter в 2011 году, она открыла решение для потоковой обработки с меньшей задержкой. После этого режим потоковой обработки был перенесен Flink.Flink не ограничивается простым механизмом потоковых вычислений, но предоставляет более общую структуру потоковой обработки, которая может обрабатывать пакетные задачи, таким образом, начав бросать вызов статусу Spark.

В обсуждениях технологий обработки больших данных часто можно услышать два слова:кадр обработкиипроцессор обработкиСогласно моему личному пониманиюдвигательиРамкаНа самом деле разницы нет, и то, и другое относится к расчету данных в системе, но чаще всего движком называется компонент, который фактически отвечает за операцию обработки данных, а компонент, играющий аналогичную роль называется двигателем.ряд компонентовЭто называется кадр. Например, Hadoop можно рассматривать какMapReduceПлатформа обработки в качестве механизма обработки по умолчанию и другая платформа обработки Spark могут быть включены в Hadoop для замены роли MapReduce. Эта функциональная совместимость между компонентами и компонентами также является одной из причин, почему системы больших данных настолько гибки, поэтому, говоря о больших данных, вы обычно можете сказатьдвигательиРамкавзаимозаменяемы или используются одновременно.

Если структуру обработки больших данных классифицировать в соответствии с состоянием обработки данных, то некоторые системы обрабатывают данные в пакетном режиме, некоторые системы обрабатывают данные, непрерывно поступающие в систему, в потоковом режиме, а некоторые системы поддерживают оба способа. Таким образом, мы можем разделить фреймворки для обработки больших данных на три типа:пакетная обработка,Потоковая обработкаисмешанная обработка.

пакетная обработка

так называемыйпакетная обработкаЭто относится к декомпозиции задачи обработки данных на более мелкие задачи, распределению этих задач по каждому экземпляру в кластере для расчета, а затем пересчету и объединению результатов расчета на каждом экземпляре в окончательный результат. Пакетные системы обычно работают с большим объемом статических данных и ждут, пока все данные будут обработаны, чтобы получить возвращенные результаты. Этот шаблон подходит для работы, требующей доступа к полному набору записей, например, при расчете итогов и средних значений набор данных необходимо рассматривать как единое целое, а не как набор записей. Поскольку пакетная обработка отлично подходит для обработки больших объемов постоянных данных, она обычно используется для обработки исторических данных.Основной вычислительной структурой многих онлайн-систем аналитической обработки является пакетная обработка. Наборы данных, используемые в пакетном режиме, обычно имеют следующие характеристики:

  • Ограниченный: пакетные наборы данных представляют собой конечный набор данных.
  • Постоянный: данные обычно всегда хранятся в каком-либо постоянном хранилище.
  • Массовая обработка: пакетные операции часто являются единственным способом обработки очень больших наборов данных.

Представителем среды пакетной обработки является Hadoop, первая среда обработки больших данных, получившая большое внимание в сообществе с открытым исходным кодом и долгое время являющаяся почти синонимом технологии больших данных. Hadoop — это инфраструктура для распределенных вычислений.На данный момент Hadoop сформировал обширную экосистему и реализовал внутри большое количество алгоритмов и компонентов.Есть два ядра: HDFS и MapReduce. HDFS (распределенная файловая система Hadoop) — это распределенная файловая система, которую можно построить на недорогих кластерах. MapReduce — это архитектура для распределенной обработки задач, и именно эти две части составляют краеугольный камень Hadoop. Основным механизмом Hadoop является эффективное использование и управление хранилищем данных, памятью и программами через HDFS и MapReduce. Благодаря Hadoop кластер распределенных вычислений и хранения состоит из нескольких обычных недорогих серверов, что обеспечивает возможности хранения и обработки больших данных.

Hadoop на самом деле является общим термином для большого проекта, который содержит множество подпроектов:

  • HDFS: распределенная файловая система Hadoop. Это реализация GFS с открытым исходным кодом для хранения файлов на всех узлах хранения в кластере Hadoop. Он может обеспечить надежное хранение файлов на обычных кластерах ПК и выполнять многократное резервное копирование блоков данных для решения проблемы простоя сервера или повреждения жесткого диска.
  • MapReduce: платформа параллельных распределенных вычислений на основе Java, которая является собственным механизмом пакетной обработки Hadoop и реализацией документа Google MapReduce с открытым исходным кодом.
  • HBase: распределенная база данных NoSQL с открытым исходным кодом, созданная по образцу Google BigTable.
  • Hive: инструмент хранилища данных.
  • Pig: Платформа для анализа больших данных.
  • Mahout: коллекция библиотек Java для машинного обучения для широкого круга задач, таких как классификация, оценочная кластеризация и анализ шаблонов. Он предоставляет некоторые классические алгоритмы машинного обучения внутри.
  • Zookeeper: служба распределенной координации с открытым исходным кодом, созданная Yahoo, и реализация Google Chubby с открытым исходным кодом. В Hadoop он в основном используется для управления данными в кластере, например, для управления NameNode в кластере Hadoop, Master Election в Hbase, синхронизации состояния между серверами и т. д.
  • Sqoop: для передачи данных между Hadoop и традиционными базами данных.
  • Ambari: инструмент управления Hadoop, который может быстро отслеживать, развертывать и управлять кластерами.
    Hadoop 生态圈

Hadoop и его механизмы обработки MapReduce обеспечивают модель долгосрочного тестирования, позволяющую людям удобно обрабатывать большие объемы данных благодаря их надежным, эффективным и масштабируемым характеристикам. Позвольте пользователям создать полнофункциональный кластер Hadoop по очень низкой цене, так что эта недорогая и эффективная технология обработки может быть гибкой во многих случаях. Благодаря совместимости с другими платформами и механизмами, а также возможностям интеграции, Hadoop может стать базовой основой для различных платформ обработки рабочих нагрузок, использующих различные технологии. Однако, поскольку этот режим обработки должен полагаться на длительное хранилище, задача вычисления должна выполнять многократное чтение и запись несколько раз на узле кластера, поэтому скорость будет немного недостатком, но его пропускная способность также является другой структурой. , это также характеристики пакетного шаблона.

потоковая обработка

потоковая обработкаВ этом режиме необходимо выполнять операции не над всем набором данных, а над каждым элементом данных, передаваемым через систему. Набор данных в потоковой обработкебез границ, что имеет несколько важных следствий:

  • Полный набор данных может представлять только общий объем данных, которые уже поступили в систему.
  • Рабочий набор данных может быть более актуальным, поскольку он может представлять только один элемент данных в определенное время.
  • Работа обработки основана на событиях и не имеет «конца», если только она не остановлена ​​явным образом. Результаты обработки доступны немедленно и будут обновляться по мере поступления новых данных.

Когда мы учились в начальной школе, мы все решали такую ​​математическую задачу: в бассейне есть впускная труба и выпускная труба, открывайте впускную трубу только на x часов, чтобы наполнить ее водой, и открывайте выпускную трубу только на y часов, чтобы наполнить ее водой. слейте воду, затем одновременно откройте впускную и выпускную трубы. , сколько времени требуется, чтобы бассейн наполнился водой? Система обработки потока эквивалентна этому бассейну, обрабатывая поступающую воду (данные), а затем выпуская обработанную воду (данные) из выпускной трубы. Таким образом, данные никогда не останавливаются, как поток воды, и обрабатываются в бассейне. Такие системы, которые обрабатывают бесконечные входящие данные, называются системами потоковой обработки. Системы потоковой обработки работают не с существующими наборами данных, а с данными, доступ к которым осуществляется из внешних систем. Системы потоковой обработки можно разделить на две категории:

  • детализированный: обработка одного фрагмента данных за раз представляет собой настоящую потоковую обработку.
  • Микропакетная обработка: этот метод обработки обрабатывает данные за короткий период времени как микропакет и обрабатывает данные в этом микропакете.

Поскольку массивные данные требуют много времени, они не подходят для пакетной обработки, что приводит к более высоким требованиям к задержке сцены. И будь то детализированная или микропакетная обработка, производительность в реальном времени будет намного лучше, чем в пакетном режиме, поэтому потоковая обработка применима к требованиям обработки сценариев миссии в режиме, близком к реальному времени, таким как анализ журнала, мониторинг оборудования, в режиме реального времени. трафик меняется на сайте. Поскольку эти области для внесения изменений в данные, своевременная обратная связь является очень распространенным требованием, подходящие для потоковой обработки должны реагировать на изменения или пики и фокусироваться на тенденциях данных за определенный период времени.

Хорошо известные фреймворки в области систем потоковой обработки включают Storm с открытым исходным кодом от Twitter, Samza с открытым исходным кодом от LinkedIn, JStrom от Alibaba, Spark Streaming от Spark и т. д. Все они имеют преимущества низкой задержки, масштабируемости и отказоустойчивости, что позволяет При выполнении кода потока данных задачи распределяются между несколькими отказоустойчивыми компьютерами для параллельного выполнения. Они также предоставляют простые API для упрощения базовой реализации. Термины, используемые в этих платформах, могут не совпадать, но концепции, которые они содержат, на самом деле похожи. Здесь мы возьмем Storm в качестве примера, чтобы представить их.

В Storm есть графоподобная структура для вычислений в реальном времени, называемая топологией. Эта топология будет отправлена ​​в кластер, код будет распространен мастер-узлом в кластере, а задачи будут распределены на рабочие узлы для выполнения. В топологии есть две роли носика и болта, где носик отправляет сообщения и отвечает за отправку потоков данных в виде кортежей. Болт отвечает за преобразование этих потоков данных.В болте могут выполняться такие операции, как расчет и фильтрация.Также сам болт может случайным образом отправлять данные другим болтам. Кортеж, выдаваемый носиком, представляет собой неизменяемый массив, соответствующий фиксированной паре ключ-значение.

Storm

Если Hadoop — это ведро, которое можно нести в колодец только по одному, то Storm — это кран, пока он включен, вода может вытекать непрерывно. Storm поддерживает множество языков, таких как Java, Ruby, Python и т. д. Storm позволяет легко писать и масштабировать сложные вычисления в реальном времени в кластере Storm гарантирует, что каждое сообщение будет обработано очень быстро, миллионы сообщений в секунду могут быть обработаны в небольшом кластере.

Storm — это платформа обработки потоков, ориентированная на очень низкую задержку. Она может обрабатывать очень большие объемы данных, предоставляя результаты с меньшей задержкой, чем другие решения. Storm подходит для работы с чистой потоковой обработкой с высокими требованиями к задержке.Он может гарантировать обработку каждого сообщения, а также может использоваться с несколькими языками программирования.

смешанная обработка

В жанре технологии обработки больших данных, в дополнение к простому режиму пакетной и потоковой обработки, есть некоторые кадры обработки, которые могут быть пакетной или потоковой обработкой, и мы называем это кадром гибридной обработки. В то время как фокусировка на методе обработки идеально подходит для конкретных сценариев, смешанная структура обеспечивает общее решение для обработки данных. Эти платформы могут использовать одни и те же или связанные компоненты и API для обработки двух типов данных, тем самым упрощая различные требования к обработке. В настоящее время относительно известными являются Spark и Flink в кадре процесса микширования.

Spark — это фреймворк, который содержит возможности пакетной обработки потоков, он поставляется как с инструментом обработки потоков в реальном времени, так и вместо них может быть интегрирован Hadoop, MapReduce. Spark также может предложить развертывание с одним кластером, но с небольшой помощью HDFS и других распределенных систем хранения. Сила Spark заключается в его скорости работы, аналогичной Storm Spark, также основанной на памяти, и когда память полностью загружена, производительность жесткого диска вычисляется. Первоначально предполагалось, что дизайн Spark вдохновлен MapReduce, но, в отличие от Spark, MapReduce использует память и вычислительные модели для оптимизации реализации, что значительно увеличивает производительность обработки данных. В дополнение к пакету, изначально разработанному для Spark Core и Spark Streaming для потоковой передачи, он также обеспечивает поддержку других расчетов диаграмм моделей программирования (GraphX), интерактивных запросов (Spark SQL) и машинного обучения (MLlib).

Flink — это платформа потоковой обработки, которая может обрабатывать пакетные задачи. В начале разработки Финк сосредоточился на обработке потоковых данных, что прямо противоположно первоначальному замыслу Spark. Spark разбивает поток на несколько небольших пакетов для обработки, в то время как Flink обрабатывает пакетные задачи как ограниченные потоки. Во Flink пакетные данные рассматриваются как поток данных с ограниченными границами, поэтому пакетные задачи обрабатываются как подмножество потоковой обработки. В дополнение к возможностям потоковой обработки (DataStream API) и пакетной обработки (DataSet API), Flink также предоставляет SQL-подобные запросы (Table API), графовые вычисления (Gelly) и библиотеки машинного обучения (Flink ML). Flink также совместим с собственными программами Storm и Hadoop и может работать на кластерах, управляемых YARN. Хотя Spark также предоставляет возможности пакетной и потоковой обработки, микропакетная архитектура Spark Streaming немного увеличивает время отклика. Подход Flink, основанный на потоковой обработке, обеспечивает низкую задержку, высокую пропускную способность и настоящую поэлементную обработку. Хотя эти две платформы часто используются для сравнения, что обусловлено рыночным спросом, на самом деле обе они развиваются в направлении большей совместимости.

Офлайн и в реальном времени

Если разделить технологию больших данных в зависимости от своевременности обработки данных, то можно выделить два типа автономных вычислений и вычислений в реальном времени.

Офлайн-расчет — расчет, выполняемый исходя из того, что все исходные данные известны до начала расчета, исходные данные не изменятся, а результат будет получен сразу после решения задачи. Вообще говоря, автономные вычисления характеризуются огромным объемом данных и длительным временем хранения; сложные пакетные операции выполняются над большим объемом данных; данные полностью находятся на месте до расчета и не изменятся; результаты пакетных вычислений могут быть легко запрошены.

Вычисления в реальном времени — один из важнейших аспектов информатики.ограничения в реальном времениИсследования, в режиме реального времени ограничения компьютерного оборудования и систем компьютерного программного обеспечения, чтобы ограничить максимальное время между событиями из системы, чтобы ответить. Программа реального времени должна гарантировать ответ в строгие сроки. Обычно требуемое время отклика в реальном времени рассчитывается в миллисекундах, иногда в микросекундах. Напротив, система не в реальном времени гарантирует, что она не может ни при каких обстоятельствах реагировать на временные ограничения системы соответствия в реальном времени. Скорее всего, в случае нереального времени системы могут соответствовать ограничениям реального времени или даже быстрее, но не могут гарантировать, что какое-либо из условий соответствия ограничениям. Вычисляет соответствующий автономный расчет в режиме реального времени, сразу после реального процесса генерации данных, этот метод расчета имеет тенденцию рассматриваться как потоки данных. Расчеты в реальном времени, как правило, проводятся для огромных объемов данных, общие требования ко второму этапу. Вычисления в реальном времени делятся на две части: хранение данных в реальном времени, расчетные данные в реальном времени.

Вычисления в реальном времени, представленные Storm, и автономные вычисления, представленные MapReduce. Вычисления в реальном времени предъявляют высокие требования к времени обработки данных, единого стандарта порога задержки в мире больших данных никогда не существовало, по умолчанию используется второй уровень (строго говоря, система реального времени должна гарантировать ответ в течение определенную временную границу, обычно в миллисекундах или долях секунды). Автономные вычисления менее чувствительны к времени обработки данных и обычно требуют только N+1 времени, чтобы увидеть результаты.

Из-за разных сценариев применения два вычислительных движка по-разному принимают данные: источник данных для вычислений в реальном времени обычно является потоковым, то есть обрабатывается один фрагмент данных, поэтому его еще называют потоковым вычислением. Источник данных автономного расчета обычно статичен, полные данные одного цикла расчета, а время расчета также устанавливается после получения всех данных одного цикла (обычно данные дня перед расчетом ранним утром), поэтому также называется пакетными данными.Обработка расчетов. Иногда эти два разных метода получения данных и их результирующее различное время выполнения (вычислительные задачи в реальном времени должны выполняться все время, автономные задачи выполняются регулярно) используются некоторыми инженерами, чтобы отличить вычислительные механизмы в реальном времени от автономных вычислительных механизмов.

Суммировать

Хотя различия между потоковой обработкой и пакетной обработкой (особенно микропакетной обработкой) могут показаться небольшими временными различиями, на самом деле они имеют фундаментальное значение как для архитектуры систем обработки данных, так и для приложений, которые их используют. Системы потоковой обработки предназначены для реагирования на данные по мере их поступления. Это требует от них реализации архитектуры, управляемой событиями, в которой внутренний рабочий процесс системы предназначен для постоянного отслеживания новых данных и планирования обработки по мере их получения. С другой стороны, внутренние рабочие процессы в пакетных системах только периодически проверяют наличие новых данных и обрабатывают эти данные только при появлении следующего пакетного окна.

Разница между потоковой и пакетной обработкой также очень важна для приложений. Приложения, созданные для пакетной обработки, по определению обрабатывают данные с задержкой. В конвейерах данных с несколькими шагами эти задержки накапливаются. Кроме того, задержка между поступлением новых данных и обработкой этих данных будет зависеть от времени до начала следующего пакетного окна — от полного отсутствия времени в некоторых случаях до полного времени между пакетными окнами, которое партия началась. Следовательно, пакетные приложения (и их пользователи) не могут полагаться на постоянное время отклика и должны соответствующим образом корректироваться, чтобы приспособиться к этому несоответствию и большей задержке.

Пакетная обработка, как правило, подходит для случаев использования, когда наличие актуальных данных не является критически важным и где допустимо более медленное время отклика. А потоковая обработка необходима для случаев использования, требующих взаимодействия в реальном времени и ответа в реальном времени.

Системы больших данных могут использовать различные методы обработки. Для пакетных рабочих нагрузок, не чувствительных ко времени, хорошим выбором будет Hadoop, реализация которого дешевле, чем другие решения. Для рабочих нагрузок, требующих только потоковой обработки, Storm поддерживает более широкий спектр языков и обеспечивает обработку с чрезвычайно низкой задержкой, но конфигурация по умолчанию может привести к дублированию результатов, и порядок не гарантируется. Тесная интеграция Samza с YARN и Kafka обеспечивает большую гибкость, более простое использование несколькими группами, а также более простую репликацию и управление состоянием. Для смешанных рабочих нагрузок Spark предлагает потоковую обработку в высокоскоростном пакетном и микропакетном режимах. Технология лучше поддерживается различными библиотеками интеграции и инструментами для гибкой интеграции. Flink обеспечивает настоящую потоковую обработку и имеет возможности пакетной обработки.Он может выполнять задачи, написанные для других платформ, путем глубокой оптимизации, обеспечивая обработку с малой задержкой, но для практического применения еще слишком рано.

Наиболее подходящее решение зависит главным образом от состояния обрабатываемых данных, времени, необходимого для обработки, и желаемого результата. Следует тщательно взвесить, следует ли использовать полнофункциональное решение или решение, которое в первую очередь ориентировано на определенный проект. По мере того, как он совершенствуется и получает широкое признание, при оценке любого появляющегося инновационного решения необходимо учитывать аналогичные вопросы.