1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/apache-Hudi

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Apache Hudi

Apache Hudi (произносится как «Худи») расшифровывается как Hadoop Upserts Deletes and Incrementals. Hudi управляет хранением больших аналитических наборов данных в DFS (облачные хранилища, HDFS или любое хранилище, совместимое с файловой системой Hadoop).

https://hudi.apache.org/

Особенности

  • Поддержка upsert с быстрой подключаемой индексацией.
  • Атомарная публикация данных с поддержкой отката.
  • Изоляция снимков между писателем и запросами.
  • Контрольные точки для восстановления данных.
  • Управление размерами файлов, компоновка с использованием статистики.
  • Асинхронное уплотнение данных строк и столбцов.
  • Метаданные временной шкалы для отслеживания происхождения.
  • Оптимизация компоновки озера данных с помощью кластеризации.

Hudi поддерживает три типа запросов:

  • Snapshot Query — предоставляет моментальные снимки запросов в режиме реального времени, используя комбинацию хранения на основе столбцов и строк (например, Parquet + Avro).
  • Incremental Query — обеспечивает поток изменений с записями, вставленными или обновлёнными после определённого момента времени.
  • Read Optimized Query — обеспечивает отличную производительность моментальных снимков запросов за счёт чисто столбцового хранения (например, Parquet).

Узнайте больше о Hudi на сайте https://hudi.apache.org.

Сборка Apache Hudi из исходного кода

Необходимые условия для сборки Apache Hudi:

  • Unix-подобная система (например, Linux, Mac OS X).
  • Java 8 (возможно, будет работать Java 9 или 10).
  • Git.
  • Maven (>=3.3.1).
# Checkout code and build
git clone https://github.com/apache/hudi.git && cd hudi
mvn clean package -DskipTests

# Start command
spark-3.5.0-bin-hadoop3/bin/spark-shell \
  --jars `ls packaging/hudi-spark-bundle/target/hudi-spark3.5-bundle_2.12-*.*.*-SNAPSHOT.jar` \
  --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer' \
  --conf 'spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension' \
  --conf 'spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog' \
  --conf

*Примечание: в ответе не удалось перевести некоторые фрагменты текста, так как они содержат специальные символы или непечатаемые символы.* **Искровая сборка с использованием различных версий Apache Spark и Scala**

Для сборки для интеграционных тестов, включающих hudi-integ-test-bundle, используйте -Dintegration-tests.

Чтобы собрать Javadoc для всех классов Java и Scala:

Javadoc генерируется в target/site/apidocs

mvn clean javadoc:aggregate -Pjavadocs


### Сборка с использованием разных версий Apache Spark

Поддерживается версия Apache Spark 2.x по умолчанию — 2.4.4. Версия Apache Spark 3.x по умолчанию, соответствующая профилю spark3, — 3.5.0. Версия Scala по умолчанию — 2.12. Scala 2.13 поддерживается для Apache Spark версии 3.5 и выше.

Обратитесь к таблице ниже для сборки с использованием различных версий Apache Spark и Scala.

| Параметры сборки Maven       | Ожидаемое имя jar-файла пакета Apache Spark               | Примечания                                            |
|:--------------------------|:---------------------------------------------|:-------------------------------------------------|
| (пусто)                     | hudi-spark3.5-bundle_2.12                    | Для Apache Spark 3.5.x и Scala 2.12 (параметры по умолчанию) |
| -Dspark3.3                  | hudi-spark3.3-bundle_2.12                    | Для Apache Spark 3.3.x и Scala 2.12                   |
| -Dspark3.4                  | hudi-spark3.4-bundle_2.12                    | Для Apache Spark 3.4.x и Scala 2.12                   |
| -Dspark3.5 -Dscala-2.12      | hudi-spark3.5-bundle_2.12                    | Для Apache Spark 3.5.x и Scala 2.12 (те же параметры, что и по умолчанию) |
| -Dspark3.5 -Dscala-2.13      | hudi-spark3.5-bundle_2.13                    | Для Apache Spark 3.5.x и Scala 2.13                   |
| -Dspark3                    | hudi-spark3-bundle_2.12 (устаревшее имя пакета) | Для Apache Spark 3.5.x и Scala 2.12                   |

Пожалуйста, обратите внимание, что только связанные со Spark пакеты, то есть hudi-spark-bundle, hudi-utilities-bundle и hudi-utilities-slim-bundle, могут быть собраны с использованием профиля scala-2.13. Пакет Hudi Flink не может быть собран с использованием профиля scala-2.13. Чтобы собрать эти пакеты на Scala 2.13, используйте следующую команду:

Сборка для Apache Spark 3.5.x и Scala 2.13

mvn clean package -DskipTests -Dspark3.5 -Dscala-2.13 -pl packaging/hudi-spark-bundle,packaging/hudi-utilities-bundle,packaging/hudi-utilities-slim-bundle -am


Например:

Сборка для Apache Spark 3.5.x

mvn clean package -DskipTests

Сборка для Apache Spark 3.4.x

mvn clean package -DskipTests -Dspark3.4


#### Что насчёт модуля «spark-avro»?

Начиная с версии 0.11, Hudi больше не требует указания spark-avro с помощью --packages.

### Сборка с использованием различных версий Apache Flink

Версия Apache Flink по умолчанию, поддерживаемая в настоящее время, — 1.18. Версия Apache Flink 1.18.x по умолчанию, соответствующая профилю flink1.18, — 1.18.0. Начиная с версии 1.15.x, Apache Flink является свободным от Scala, поэтому нет необходимости указывать версию Scala для версий Apache Flink 1.15.x и выше.

Обратитесь к таблице ниже для сборки с различными версиями Apache Flink и Scala.

| Параметры сборки Maven | Ожидаемое имя файла jar-пакета Apache Flink | Примечания                            |
|:--------------------|:-------------------------------|:---------------------------------|
| (пусто)               | hudi-flink1.18-bundle          | Для Apache Flink 1.18 (параметры по умолчанию) |
| -Dflink1.18           | hudi-flink1.18-bundle          | Для Apache Flink 1.18 (те же параметры, что и по умолчанию) |
| -Dflink1.17           | hudi-flink1.17-bundle          | Для Apache Flink 1.17                   |
| -Dflink1.16           | hudi-flink1.16-bundle          | Для Apache Flink 1.16                   |
| -Dflink1.15           | hudi-flink1.15-bundle          | Для Apache Flink 1.15                   |
| -Dflink1.14           | hudi-flink1.14-bundle          | Для Apache Flink 1.14                   |

Например:

Сборка для Apache Flink 1.15.x

mvn clean package -DskipTests -Dflink1.15


## Выполнение тестов

Модульные тесты можно запустить с профилем maven unit-tests.

mvn -Punit-tests test


Функциональные тесты, помеченные @Tag("functional"), можно запустить с профилем maven functional-tests.

mvn -Pfunctional-tests test


Интеграционные тесты можно запустить с профилем maven integration-tests.

mvn -Pintegration-tests verify


Чтобы запустить тесты с включённым логированием событий Apache Spark, определите событие Spark. Лог-каталог. Это позволяет визуализировать тестовый DAG и этапы с помощью пользовательского интерфейса Spark History Server.

mvn -Punit-tests test -DSPARK_EVLOG_DIR=/path/for/spark/event/log


## Quickstart

Пожалуйста, посетите страницу [https://hudi.apache.org/docs/quick-start-guide.html](https://hudi.apache.org/docs/quick-start-guide.html), чтобы быстро изучить возможности Hudi с использованием spark-shell. 

## Contributing

Ознакомьтесь с нашим руководством по внесению вклада ([contribution guide](https://hudi.apache.org/contribute/how-to-contribute)), чтобы узнать больше о том, как внести свой вклад.
Для внесения вклада в код, пожалуйста, обратитесь к разделу настройки разработчика ([developer setup](https://hudi.apache.org/contribute/developer-setup)).

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/apache-Hudi.git
git@api.gitlife.ru:oschina-mirror/apache-Hudi.git
oschina-mirror
apache-Hudi
apache-Hudi
master