Skip to content

Commit f056e22

Browse files
authored
Add getting started docs for Apache Ozone (#2989)
Closes #2207
1 parent 0b8af6c commit f056e22

File tree

1 file changed

+69
-0
lines changed
  • site/content/in-dev/unreleased/getting-started/creating-a-catalog/s3

1 file changed

+69
-0
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
#
3+
# Licensed to the Apache Software Foundation (ASF) under one
4+
# or more contributor license agreements. See the NOTICE file
5+
# distributed with this work for additional information
6+
# regarding copyright ownership. The ASF licenses this file
7+
# to you under the Apache License, Version 2.0 (the
8+
# "License"); you may not use this file except in compliance
9+
# with the License. You may obtain a copy of the License at
10+
#
11+
# http://www.apache.org/licenses/LICENSE-2.0
12+
#
13+
# Unless required by applicable law or agreed to in writing,
14+
# software distributed under the License is distributed on an
15+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16+
# KIND, either express or implied. See the License for the
17+
# specific language governing permissions and limitations
18+
# under the License.
19+
#
20+
title: Creating a catalog on Apache Ozone
21+
linkTitle: Ozone
22+
type: docs
23+
weight: 150
24+
---
25+
26+
When creating a catalog based on [Apache Ozone](https://ozone.apache.org/) storage it is important to
27+
configure the `endpoint` property to point to your own storage cluster. If the `endpoint` property is
28+
not set, Polaris will attempt to contact AWS storage services (which is certain to fail in this case).
29+
30+
Note: the `--no-sts` CLI option instructs Polaris to avoid calling STS endpoints with `AssumeRoles`
31+
requests. This means that both Polaris and its clients (engines) will have to use distinct (local)
32+
credentials for accessing storage. Engines should _not_ request credential vending in this case
33+
(should not use the `X-Iceberg-Access-Delegation=vended-credentials` header).
34+
35+
Note: the region setting is not required by Ozone, but it is set in this example for the sake of
36+
simplicity as it is usually required by the AWS SDK (used internally by Polaris). One can also
37+
set the `AWS_REGION` environment variable in the Polaris server process and avoid setting region
38+
as a catalog property.
39+
40+
Note: the name `quickstart_catalog` from the example below is referenced in other Getting Started
41+
examples, but of course, it can be any valid catalog name.
42+
43+
```shell
44+
CLIENT_ID=root
45+
CLIENT_SECRET=s3cr3t
46+
DEFAULT_BASE_LOCATION=s3://example-bucket/my_data
47+
48+
./polaris \
49+
--client-id ${CLIENT_ID} \
50+
--client-secret ${CLIENT_SECRET} \
51+
catalogs \
52+
create \
53+
--storage-type s3 \
54+
--endpoint http://127.0.0.1:9878
55+
--no-sts
56+
--path-style-access
57+
--default-base-location ${DEFAULT_BASE_LOCATION} \
58+
--region irrelevant \
59+
quickstart_catalog
60+
```
61+
62+
In more complex deployments it may be necessary to configure different endpoints for S3 requests
63+
and for STS (AssumeRole) requests. This can be achieved via the `--sts-endpoint` CLI option.
64+
65+
Additionally, the `--endpoint-internal` CLI option cane be used to set the S3 endpoint for use by
66+
the Polaris Server itself, if it needs to be different from the endpoint used by clients / engines.
67+
68+
A usable Apache Ozone example for `docker-compose` is available in the Polaris source code under the
69+
[getting-started/ozone](https://github.com/apache/polaris/tree/main/getting-started/ozone) module.

0 commit comments

Comments
 (0)