Apache Hudi
Apache Hudi (произносится как «Худи») расшифровывается как Hadoop Upserts Deletes and Incrementals. Hudi управляет хранением больших аналитических наборов данных в DFS (облачные хранилища, HDFS или любое хранилище, совместимое с файловой системой Hadoop).
Особенности
Hudi поддерживает три типа запросов:
Узнайте больше о Hudi на сайте https://hudi.apache.org.
Сборка Apache Hudi из исходного кода
Необходимые условия для сборки Apache Hudi:
# 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:
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, используйте следующую команду:
mvn clean package -DskipTests -Dspark3.5 -Dscala-2.13 -pl packaging/hudi-spark-bundle,packaging/hudi-utilities-bundle,packaging/hudi-utilities-slim-bundle -am
Например:
mvn clean package -DskipTests
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 |
Например:
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 )