This is an automated email from the ASF dual-hosted git repository.
jshao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/main by this push:
new 5020d9a56 [#4098] doc(iceberg-rest-server): update Iceberg REST server
documents (#4113)
5020d9a56 is described below
commit 5020d9a5621a6e316c23b31ca172d09e9f55ec05
Author: FANNG <[email protected]>
AuthorDate: Fri Aug 2 22:58:58 2024 +0800
[#4098] doc(iceberg-rest-server): update Iceberg REST server documents
(#4113)
### What changes were proposed in this pull request?
after split Iceberg REST service, add corresponding context.
### Why are the changes needed?
Fix: #4098
### Does this PR introduce _any_ user-facing change?
no
### How was this patch tested?
just document
---
docs/how-to-build.md | 8 +++
docs/how-to-install.md | 42 +++++++++----
docs/iceberg-rest-service.md | 142 ++++++++++++++++++++++++++-----------------
3 files changed, 123 insertions(+), 69 deletions(-)
diff --git a/docs/how-to-build.md b/docs/how-to-build.md
index 4a1f12b87..3bd514270 100644
--- a/docs/how-to-build.md
+++ b/docs/how-to-build.md
@@ -165,6 +165,14 @@ license: "This software is licensed under the Apache
License version 2."
`gravitino-trino-connector-{version}.tar.gz.sha256` under the
`distribution` directory. You
can uncompress and deploy it to Trino to use the Gravitino Trino connector.
+6. Assemble the Gravitino Iceberg REST server package
+
+ ```shell
+ ./gradlew assembleIcebergRESTServer
+ ```
+
+ This creates `gravitino-iceberg-rest-server-{version}.tar.gz` and
`gravitino-iceberg-rest-server-{version}.tar.gz.sha256` under the
`distribution` directory. You can uncompress and deploy it to use the Gravitino
Iceberg REST server.
+
## How to Build Apache Gravitino on Windows (Using WSL)
### Download WSL (Ubuntu)
diff --git a/docs/how-to-install.md b/docs/how-to-install.md
index 5d9d82228..66d655e8f 100644
--- a/docs/how-to-install.md
+++ b/docs/how-to-install.md
@@ -12,6 +12,8 @@ Apache Gravitino supports running on Java 8, 11, and 17. Make
sure you have Java
`${JAVA_HOME}/bin/java -version` command.
:::
+Gravitino package comprises both the Gravitino server and the Gravitino
Iceberg REST server. You have the option to manage these servers independently
or run them concurrently on a single server.
+
### Get the Apache Gravitino binary distribution package
Before installing Gravitino, make sure you have the Gravitino binary
distribution package. You can
@@ -30,20 +32,28 @@ The Gravitino binary distribution package contains the
following files:
```text
|── ...
└── distribution/package
- |── bin/gravitino.sh # Gravitino server Launching scripts.
+ |── bin/
+ | ├── gravitino.sh # Gravitino server Launching
scripts.
+ | └── gravitino-iceberg-rest-server.sh # Gravitino Iceberg REST
server Launching scripts.
|── catalogs
- | └── hive/ # Hive catalog dependencies and
configurations.
- | └── lakehouse-iceberg/ # Apache Iceberg catalog dependencies and
configurations.
- | └── jdbc-mysql/ # JDBC MySQL catalog dependencies and
configurations.
- | └── jdbc-postgresql/ # JDBC PostgreSQL catalog dependencies and
configurations.
- |── conf/ # All configurations for Gravitino.
- | ├── gravitino.conf # Gravitino server configuration.
- | ├── gravitino-env.sh # Environment variables, etc., JAVA_HOME,
GRAVITINO_HOME, and more.
- | └── log4j2.properties # log4j configuration for the Gravitino
server.
- |── libs/ # Gravitino server dependencies libraries.
- |── logs/ # Gravitino server logs. Automatically
created after the Gravitino server starts.
- |── data/ # Default directory for the Gravitino
server to store data.
- └── scripts/ # Extra scripts for Gravitino.
+ | └── hadoop/ # Apache Hadoop catalog
dependencies and configurations.
+ | └── hive/ # Apache Hive catalog
dependencies and configurations.
+ | └── jdbc-doris/ # JDBC doris catalog
dependencies and configurations.
+ | └── jdbc-mysql/ # JDBC MySQL catalog
dependencies and configurations.
+ | └── jdbc-postgresql/ # JDBC PostgreSQL catalog
dependencies and configurations.
+ | └── kafka/ # Apache Kafka PostgreSQL
catalog dependencies and configurations.
+ | └── lakehouse-iceberg/ # Apache Iceberg catalog
dependencies and configurations.
+ | └── lakehouse-paimon/ # Apache Paimon catalog
dependencies and configurations.
+ |── conf/ # All configurations for
Gravitino.
+ | ├── gravitino.conf # Gravitino server and
Gravitino Iceberg REST server configuration.
+ | ├── gravitino-iceberg-rest-server.conf # Gravitino server
configuration.
+ | ├── gravitino-env.sh # Environment variables, etc.,
JAVA_HOME, GRAVITINO_HOME, and more.
+ | └── log4j2.properties # log4j configuration for the
Gravitino server and Gravitino Iceberg REST server.
+ |── libs/ # Gravitino server
dependencies libraries.
+ |── logs/ # Gravitino server and
Gravitino Iceberg REST server logs. Automatically created after the server
starts.
+ |── data/ # Default directory for the
Gravitino server to store data.
+ |── iceberg-rest-server/ # Gravitino Iceberg REST
server package and dependencies libraries.
+ └── scripts/ # Extra scripts for Gravitino.
```
#### Initialize the RDBMS (Optional)
@@ -125,6 +135,12 @@ variable in the `conf/gravitino-env.sh` file. Then create
a `Remote JVM Debug`
configuration in `IntelliJ IDEA` and debug `gravitino.server.main`.
:::
+#### Manage Gravitino Iceberg REST server in Gravitino package
+
+You can run the Iceberg REST server as either a standalone server or as an
auxiliary service embedded in the Gravitino server. To start it as a standalone
server, use the command `./bin/gravitino-iceberg-rest-server.sh start` with
configurations specified in `./conf/gravitino-iceberg-rest-server.conf`.
Alternatively, use `./bin/gravitino.sh start` to launch a Gravitino server that
integrates both the Iceberg REST service and the Gravitino service, with all
configurations centralized in ` [...]
+
+For more detailed information about the Gravitino Iceberg REST server, please
refer to [Iceberg REST server document](./iceberg-rest-service.md).
+
## Install Apache Gravitino using Docker
### Get the Apache Gravitino Docker image
diff --git a/docs/iceberg-rest-service.md b/docs/iceberg-rest-service.md
index c027bbd35..47cd6e719 100644
--- a/docs/iceberg-rest-service.md
+++ b/docs/iceberg-rest-service.md
@@ -12,62 +12,86 @@ The Apache Gravitino Iceberg REST Server follows the
[Apache Iceberg REST API sp
### Capabilities
-- Supports the Apache Iceberg REST API defined in Iceberg 1.3.1, and supports
all namespace and table interfaces. `Token`, and `Config` interfaces aren't
supported yet.
+- Supports the Apache Iceberg REST API defined in Iceberg 1.5, and supports
all namespace and table interfaces. The following interfaces are not
implemented yet:
+ - token
+ - view
+ - multi table transaction
+ - pagination
- Works as a catalog proxy, supporting `Hive` and `JDBC` as catalog backend.
- Provides a pluggable metrics store interface to store and delete Iceberg
metrics.
-- When writing to HDFS, the Gravitino Iceberg REST catalog service can only
operate as the specified HDFS user and
- doesn't support proxying to other HDFS users. See [How to access Apache
Hadoop](gravitino-server-config.md#how-to-access-apache-hadoop) for more
details.
+- Supports HDFS and S3 storage.
:::info
-Builds with Apache Iceberg `1.3.1`. The Apache Iceberg table format version is
`1` by default.
Builds with Hadoop 2.10.x. There may be compatibility issues when accessing
Hadoop 3.x clusters.
:::
-## Apache Gravitino Iceberg REST catalog service configuration
+## Server management
+
+There are three deployment scenarios for Gravitino Iceberg REST server:
+- A standalone server with a standalone Gravitino Iceberg REST server package.
+- A standalone server in the Gravitino server package.
+- An auxiliary service embedded in the Gravitino server.
+
+For detailed instructions on how to build and install the Gravitino server
package, please refer to [How to build](./how-to-build.md) and [How to
install](./how-to-install.md). To build the Gravitino Iceberg REST server
package, use the command `./gradlew compileIcebergRESTServer -x test`.
Alternatively, to create the corresponding compressed package in the
distribution directory, use `./gradlew assembleIcebergRESTServer -x test`. The
Gravitino Iceberg REST server package includes the fo [...]
+
+```text
+|── ...
+└── distribution/gravitino-iceberg-rest-server
+ |── bin/
+ | └── gravitino-iceberg-rest-server.sh # Gravitino Iceberg REST
server Launching scripts.
+ |── conf/ # All configurations for
Gravitino Iceberg REST server.
+ | ├── gravitino-iceberg-rest-server.conf # Gravitino Iceberg REST
server configuration.
+ | ├── gravitino-env.sh # Environment variables, etc.,
JAVA_HOME, GRAVITINO_HOME, and more.
+ | └── log4j2.properties # log4j configuration for the
Gravitino Iceberg REST server.
+ | └── hdfs-site.xml & core-site.xml # HDFS configuration files.
+ |── libs/ # Gravitino Iceberg REST
server dependencies libraries.
+ |── logs/ # Gravitino Iceberg REST
server logs. Automatically created after the server starts.
+```
-Assuming the Gravitino server is deployed in the `GRAVITINO_HOME` directory,
you can locate the configuration options in
[`$GRAVITINO_HOME/conf/gravitino.conf`](gravitino-server-config.md). There are
four configuration properties for the Iceberg REST catalog service:
+## Apache Gravitino Iceberg REST catalog server configuration
-1. [**REST Catalog Server
Configuration**](#rest-catalog-server-configuration): you can specify the HTTP
server properties like host and port.
+There are distinct configuration files for standalone and auxiliary server:
`gravitino-iceberg-rest-server.conf` is used for the standalone server, while
`gravitino.conf` is for the auxiliary server. Although the configuration files
differ, the configuration items remain the same.
-2. [**Gravitino Iceberg metrics store
Configuration**](#iceberg-metrics-store-configuration): you could implement a
custom Iceberg metrics store and set corresponding configuration.
+Starting with version `0.6.0`, the prefix `gravitino.auxService.iceberg-rest.`
for auxiliary server configurations has been deprecated. If both
`gravitino.auxService.iceberg-rest.key` and `gravitino.iceberg-rest.key` are
present, the latter will take precedence. The configurations listed below use
the `gravitino.iceberg-rest.` prefix.
-3. [**Gravitino Iceberg Catalog backend
Configuration**](#gravitino-iceberg-catalog-backend-configuration): you have
the option to set the specified catalog-backend to either `jdbc` or `hive`.
+### Configuration to enable Iceberg REST service in Gravitino server.
-4. [**Other Iceberg Catalog Properties Defined by Apache
Iceberg**](#other-apache-iceberg-catalog-properties): allows you to configure
additional properties defined by Apache Iceberg.
+| Configuration item | Description
| Default value | Required | Since Version |
+|------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|----------|---------------|
+| `gravitino.auxService.names` | The auxiliary service name of the
Gravitino Iceberg REST catalog service. Use **`iceberg-rest`**.
| (none) | Yes | 0.2.0
|
+| `gravitino.iceberg-rest.classpath` | The classpath of the Gravitino Iceberg
REST catalog service; includes the directory containing jars and configuration.
It supports both absolute and relative paths, for example,
`iceberg-rest-server/libs, iceberg-rest-server/conf` | (none) | Yes
| 0.2.0 |
-Please refer to the following sections for details.
+Please note that, it only takes affect in `gravitino.conf`, you don't need to
specify the above configurations if start as a standalone server.
### REST catalog server configuration
-| Configuration item | Description
| Default
value | Required
| Since Version |
-|-------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|----------|---------------|
-| `gravitino.auxService.names` | The auxiliary
service name of the Gravitino Iceberg REST catalog service. Use
**`iceberg-rest`**.
| (none)
| Yes | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.classpath` | The classpath
of the Gravitino Iceberg REST catalog service; includes the directory
containing jars and configuration. It supports both absolute and relative
paths, for example, `catalogs/lakehouse-iceberg/libs,
catalogs/lakehouse-iceberg/conf` | (none)
| Yes | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.host` | The host of
the Gravitino Iceberg REST catalog service.
|
`0.0.0.0` |
No | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.httpPort` | The port of
the Gravitino Iceberg REST catalog service.
|
`9001` |
No | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.minThreads` | The minimum
number of threads in the thread pool used by the Jetty web server. `minThreads`
is 8 if the value is less than 8.
|
`Math.max(Math.min(Runtime.getRuntime().availableProcessors() * 2, 100), 8)` |
No | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.maxThreads` | The maximum
number of threads in the thread pool used by the Jetty web server. `maxThreads`
is 8 if the value is less than 8, and `maxThreads` must be greater than or
equal to `minThreads`. |
`Math.max(Runtime.getRuntime().availableProcessors() * 4, 400)` |
No | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.threadPoolWorkQueueSize` | The size of
the queue in the thread pool used by Gravitino Iceberg REST catalog service.
|
`100` |
No | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.stopTimeout` | The amount of
time in ms for the Gravitino Iceberg REST catalog service to stop gracefully.
For more information, see `org.eclipse.jetty.server.Server#setStopTimeout`.
|
`30000` |
No | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.idleTimeout` | The timeout in
ms of idle connections.
| `30000`
| No
| 0.2.0 |
-| `gravitino.auxService.iceberg-rest.requestHeaderSize` | The maximum
size of an HTTP request.
|
`131072` |
No | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.responseHeaderSize` | The maximum
size of an HTTP response.
|
`131072` |
No | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.customFilters` |
Comma-separated list of filter class names to apply to the APIs.
| (none)
| No | 0.4.0 |
+| Configuration item | Description
| Default value
| Required | Since
Version |
+|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|----------|---------------|
+| `gravitino.iceberg-rest.host` | The host of the Gravitino
Iceberg REST catalog service.
| `0.0.0.0`
| No | 0.2.0
|
+| `gravitino.iceberg-rest.httpPort` | The port of the Gravitino
Iceberg REST catalog service.
| `9001`
| No | 0.2.0
|
+| `gravitino.iceberg-rest.minThreads` | The minimum number of
threads in the thread pool used by the Jetty web server. `minThreads` is 8 if
the value is less than 8.
|
`Math.max(Math.min(Runtime.getRuntime().availableProcessors() * 2, 100), 8)` |
No | 0.2.0 |
+| `gravitino.iceberg-rest.maxThreads` | The maximum number of
threads in the thread pool used by the Jetty web server. `maxThreads` is 8 if
the value is less than 8, and `maxThreads` must be greater than or equal to
`minThreads`. |
`Math.max(Runtime.getRuntime().availableProcessors() * 4, 400)` |
No | 0.2.0 |
+| `gravitino.iceberg-rest.threadPoolWorkQueueSize` | The size of the queue in
the thread pool used by Gravitino Iceberg REST catalog service.
| `100`
| No | 0.2.0
|
+| `gravitino.iceberg-rest.stopTimeout` | The amount of time in ms
for the Gravitino Iceberg REST catalog service to stop gracefully. For more
information, see `org.eclipse.jetty.server.Server#setStopTimeout`.
| `30000`
| No |
0.2.0 |
+| `gravitino.iceberg-rest.idleTimeout` | The timeout in ms of idle
connections.
| `30000`
| No | 0.2.0
|
+| `gravitino.iceberg-rest.requestHeaderSize` | The maximum size of an
HTTP request.
| `131072`
| No | 0.2.0
|
+| `gravitino.iceberg-rest.responseHeaderSize` | The maximum size of an
HTTP response.
| `131072`
| No | 0.2.0
|
+| `gravitino.iceberg-rest.customFilters` | Comma-separated list of
filter class names to apply to the APIs.
| (none)
| No | 0.4.0
|
The filter in `customFilters` should be a standard javax servlet filter.
-You can also specify filter parameters by setting configuration entries in the
style `gravitino.auxService.iceberg-rest.<class name of filter>.param.<param
name>=<value>`.
+You can also specify filter parameters by setting configuration entries in the
style `gravitino.iceberg-rest.<class name of filter>.param.<param
name>=<value>`.
### Apache Iceberg metrics store configuration
Gravitino provides a pluggable metrics store interface to store and delete
Iceberg metrics. You can develop a class that implements
`org.apache.gravitino.catalog.lakehouse.iceberg.web.metrics` and add the
corresponding jar file to the Iceberg REST service classpath directory.
-| Configuration item | Description
| Default value | Required | Since Version |
-|------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|---------------|----------|---------------|
-| `gravitino.auxService.iceberg-rest.metricsStore` | The Iceberg
metrics storage class name.
| (none) | No | 0.4.0
|
-| `gravitino.auxService.iceberg-rest.metricsStoreRetainDays` | The days to
retain Iceberg metrics in store, the value not greater than 0 means retain
forever. | -1 | No | 0.4.0
|
-| `gravitino.auxService.iceberg-rest.metricsQueueCapacity` | The size of
queue to store metrics temporally before storing to the persistent storage.
Metrics will be dropped when queue is full. | 1000 | No | 0.4.0
|
+| Configuration item | Description
| Default value | Required | Since Version |
+|-------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|---------------|----------|---------------|
+| `gravitino.iceberg-rest.metricsStore` | The Iceberg metrics
storage class name.
| (none) | No | 0.4.0 |
+| `gravitino.iceberg-rest.metricsStoreRetainDays` | The days to retain Iceberg
metrics in store, the value not greater than 0 means retain forever.
| -1 | No | 0.4.0 |
+| `gravitino.iceberg-rest.metricsQueueCapacity` | The size of queue to store
metrics temporally before storing to the persistent storage. Metrics will be
dropped when queue is full. | 1000 | No | 0.4.0 |
### Apache Gravitino Iceberg catalog backend configuration
@@ -79,31 +103,31 @@ specify a Hive or JDBC catalog backend for production
environment.
#### Apache Hive backend configuration
-| Configuration item | Description
| Default value
| Required | Since Version |
-|----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|----------|---------------|
-| `gravitino.auxService.iceberg-rest.catalog-backend` | The Catalog
backend of the Gravitino Iceberg REST catalog service. Use the value **`hive`**
for a Hive catalog. | `memory`
| Yes | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.uri` | The Hive metadata
address, such as `thrift://127.0.0.1:9083`.
| (none)
| Yes | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.warehouse` | The warehouse
directory of the Hive catalog, such as `/user/hive/warehouse-hive/`.
| (none)
| Yes | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.catalog-backend-name` | The catalog
backend name passed to underlying Iceberg catalog backend. Catalog name in JDBC
backend is used to isolate namespace and tables. | `hive` for Hive backend,
`jdbc` for JDBC backend, `memory` for memory backend | No | 0.5.2
|
+| Configuration item | Description
| Default value
| Required | Since Version |
+|-----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|----------|---------------|
+| `gravitino.iceberg-rest.catalog-backend` | The Catalog backend of the
Gravitino Iceberg REST catalog service. Use the value **`hive`** for a Hive
catalog. | `memory`
| Yes | 0.2.0 |
+| `gravitino.iceberg-rest.uri` | The Hive metadata address,
such as `thrift://127.0.0.1:9083`.
| (none)
| Yes | 0.2.0 |
+| `gravitino.iceberg-rest.warehouse` | The warehouse directory of
the Hive catalog, such as `/user/hive/warehouse-hive/`.
| (none)
| Yes | 0.2.0 |
+| `gravitino.iceberg-rest.catalog-backend-name` | The catalog backend name
passed to underlying Iceberg catalog backend. Catalog name in JDBC backend is
used to isolate namespace and tables. | `hive` for Hive backend, `jdbc` for
JDBC backend, `memory` for memory backend | No | 0.5.2 |
#### JDBC backend configuration
-| Configuration item | Description
| Default value | Required | Since
Version |
-|----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|-------------------------|----------|---------------|
-| `gravitino.auxService.iceberg-rest.catalog-backend` | The Catalog
backend of the Gravitino Iceberg REST catalog service. Use the value **`jdbc`**
for a JDBC catalog. | `memory` | Yes |
0.2.0 |
-| `gravitino.auxService.iceberg-rest.uri` | The JDBC
connection address, such as `jdbc:postgresql://127.0.0.1:5432` for Postgres, or
`jdbc:mysql://127.0.0.1:3306/` for mysql. | (none) | Yes
| 0.2.0 |
-| `gravitino.auxService.iceberg-rest.warehouse ` | The warehouse
directory of JDBC catalog. Set the HDFS prefix if using HDFS, such as
`hdfs://127.0.0.1:9000/user/hive/warehouse-jdbc` | (none) |
Yes | 0.2.0 |
-| `gravitino.auxService.iceberg-rest.catalog-backend-name` | The catalog name
passed to underlying Iceberg catalog backend. Catalog name in JDBC backend is
used to isolate namespace and tables. | `jdbc` for JDBC backend | No |
0.5.2 |
-| `gravitino.auxService.iceberg-rest.jdbc.user` | The username of
the JDBC connection.
| (none) | Yes |
0.2.0 |
-| `gravitino.auxService.iceberg-rest.jdbc.password` | The password of
the JDBC connection.
| (none) | Yes |
0.2.0 |
-| `gravitino.auxService.iceberg-rest.jdbc-initialize` | Whether to
initialize the meta tables when creating the JDBC catalog.
| `true` | No
| 0.2.0 |
-| `gravitino.auxService.iceberg-rest.jdbc-driver` |
`com.mysql.jdbc.Driver` or `com.mysql.cj.jdbc.Driver` for MySQL,
`org.postgresql.Driver` for PostgreSQL. | (none)
| Yes | 0.3.0 |
+| Configuration item | Description
| Default value | Required | Since Version |
+|-----------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|-------------------------|----------|---------------|
+| `gravitino.iceberg-rest.catalog-backend` | The Catalog backend of the
Gravitino Iceberg REST catalog service. Use the value **`jdbc`** for a JDBC
catalog. | `memory` | Yes | 0.2.0
|
+| `gravitino.iceberg-rest.uri` | The JDBC connection address,
such as `jdbc:postgresql://127.0.0.1:5432` for Postgres, or
`jdbc:mysql://127.0.0.1:3306/` for mysql. | (none) | Yes
| 0.2.0 |
+| `gravitino.iceberg-rest.warehouse ` | The warehouse directory of
JDBC catalog. Set the HDFS prefix if using HDFS, such as
`hdfs://127.0.0.1:9000/user/hive/warehouse-jdbc` | (none) |
Yes | 0.2.0 |
+| `gravitino.iceberg-rest.catalog-backend-name` | The catalog name passed to
underlying Iceberg catalog backend. Catalog name in JDBC backend is used to
isolate namespace and tables. | `jdbc` for JDBC backend | No | 0.5.2
|
+| `gravitino.iceberg-rest.jdbc.user` | The username of the JDBC
connection.
| (none) | Yes | 0.2.0
|
+| `gravitino.iceberg-rest.jdbc.password` | The password of the JDBC
connection.
| (none) | Yes | 0.2.0
|
+| `gravitino.iceberg-rest.jdbc-initialize` | Whether to initialize the
meta tables when creating the JDBC catalog.
| `true` | No | 0.2.0
|
+| `gravitino.iceberg-rest.jdbc-driver` | `com.mysql.jdbc.Driver` or
`com.mysql.cj.jdbc.Driver` for MySQL, `org.postgresql.Driver` for PostgreSQL.
| (none) | Yes | 0.3.0 |
If you have a JDBC Iceberg catalog prior, you must set `catalog-backend-name`
to keep consistent with your Jdbc Iceberg catalog name to operate the prior
namespace and tables.
:::caution
-You must download the corresponding JDBC driver to the
`catalogs/lakehouse-iceberg/libs` directory.
+You must download the corresponding JDBC driver to the
`iceberg-rest-server/libs` directory.
:::
### Other Apache Iceberg catalog properties
@@ -111,9 +135,9 @@ You must download the corresponding JDBC driver to the
`catalogs/lakehouse-icebe
You can add other properties defined in [Iceberg catalog
properties](https://iceberg.apache.org/docs/1.5.2/configuration/#catalog-properties).
The `clients` property for example:
-| Configuration item | Description
| Default value | Required |
-|---------------------------------------------|--------------------------------------|---------------|----------|
-| `gravitino.auxService.iceberg-rest.clients` | The client pool size of the
catalog. | `2` | No |
+| Configuration item | Description |
Default value | Required |
+|----------------------------------|--------------------------------------|---------------|----------|
+| `gravitino.iceberg-rest.clients` | The client pool size of the catalog. |
`2` | No |
:::info
`catalog-impl` has no effect.
@@ -139,14 +163,20 @@ Please set `gravitino.iceberg-rest.warehouse` to
`s3://{bucket_name}/${prefix_na
### HDFS configuration
-The Gravitino Iceberg REST catalog service adds the HDFS configuration files
`core-site.xml` and `hdfs-site.xml` from the directory defined by
`gravitino.auxService.iceberg-rest.classpath`, for example,
`catalogs/lakehouse-iceberg/conf`, to the classpath.
+You should place HDFS configuration file to the classpath of the Iceberg REST
server, `iceberg-rest-server/conf` for Gravitino server package, `conf` for
standalone Gravitino Iceberg REST server package. When writing to HDFS, the
Gravitino Iceberg REST catalog service can only operate as the specified HDFS
user and doesn't support proxying to other HDFS users. See [How to access
Apache Hadoop](gravitino-server-config.md#how-to-access-apache-hadoop) for more
details.
+
+## Starting the Iceberg REST server
+
+To start as an auxiliary service with Gravitino server:
-## Starting the Apache Gravitino Iceberg REST catalog service
+```shell
+./bin/gravitino.sh start
+```
-To start the service:
+To start a standalone Gravitino Iceberg REST catalog server:
```shell
-./bin/gravitino.sh start
+./bin/gravitino-iceberg-rest-server.sh start
```
To verify whether the service has started:
@@ -157,7 +187,7 @@ curl http://127.0.0.1:9001/iceberg/v1/config
Normally you will see the output like `{"defaults":{},"overrides":{}}%`.
-## Exploring the Apache Gravitino and Apache Iceberg REST catalog service with
Apache Spark
+## Exploring the Apache Gravitino Iceberg REST catalog service with Apache
Spark
### Deploying Apache Spark with Apache Iceberg support