Hadoop — основополагающая технология хранения и обработки больших данных, свободно распространяемый набор утилит, библиотек и фреймворк для разработки и выполнения распределённых программ. Мы применяем Hadoop при создании следующих категорий программных решений:
- Big data системы Hive для аналитических операций, в сочетании с HBase или непосредственно поверх Hadoop.
- Мощные поисковые системы на основе сочетания Lucene/SOLR и Hadoop, с использованием Lucene для морфологического анализа, обработки сложных слов и т.д.).
- Системы интеллектуального анализа данных и хранения информации, с использованием открытых программных инструментов, таких как Pentaho или JasperReports.
- Решения на основе транзакционной базы данных Titan для обработки больших объемов графических данных с HBase в качестве сервера хранилища данных.
Spark представляет собой кластерную вычислительную платформу с открытым исходным кодом, аналогичную Hadoop, но с некоторыми полезными особенностями, которые делают ее превосходным инструментом для решения некоторых видов задач. Помимо интерактивных запросов Spark поддерживает распределенные наборы данных в оперативной памяти, оптимизируя решение итеративных задач.
Spark реализован на языке Scala и использует его в качестве среды разработки приложений. В отличие от Hadoop, Spark и Scala образуют тесную интеграцию, при которой Scala может легко манипулировать распределенными наборами данных как локальными коллективными объектами.
Хотя Spark предназначен для решения итеративных задач с распределенными данными, он фактически дополняет Hadoop и может работать вместе с файловой системой Hadoop. В частности, это может происходить в среде кластеризации Mesos. Spark разработан в лаборатории "Алгоритмы, машины и люди" Калифорнийского университета в Беркли для построения крупномасштабных и быстродействующих приложений анализа данных.