Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,14 @@ public class ConfigOptions {
.asList()
.defaultValues(
ArrayUtils.concat(
// TODO: remove core-site after implement fluss hdfs security
// utils
new String[] {
"java.", "org.apache.fluss.", "javax.annotation."
"java.",
"org.apache.fluss.",
"javax.annotation.",
"org.apache.hadoop.",
"core-site",
},
PARENT_FIRST_LOGGING_PATTERNS))
.withDescription(
Expand Down
5 changes: 5 additions & 0 deletions fluss-dist/src/main/resources/bin/config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ constructFlussClassPath() {
fi
done < <(find "$FLUSS_LIB_DIR" ! -type d -name '*.jar' -print0 | sort -z)

# Add Hadoop dependencies from environment variables HADOOP_CLASSPATH
if [ -n "${HADOOP_CLASSPATH}" ]; then
FLUSS_CLASSPATH="$FLUSS_CLASSPATH":"$HADOOP_CLASSPATH"
fi

local FLUSS_SERVER_COUNT
FLUSS_SERVER_COUNT="$(echo "$FLUSS_SERVER" | tr -s ':' '\n' | grep -v '^$' | wc -l)"

Expand Down
6 changes: 6 additions & 0 deletions fluss-lake/fluss-lake-iceberg/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,12 @@
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>2.8.5</version>
<scope>test</scope>
<exclusions>
<exclusion>
<artifactId>commons-io</artifactId>
<groupId>commons-io</groupId>
</exclusion>
</exclusions>
</dependency>

<dependency>
Expand Down
6 changes: 6 additions & 0 deletions fluss-lake/fluss-lake-paimon/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,12 @@
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>2.8.5</version>
<scope>test</scope>
<exclusions>
<exclusion>
<artifactId>commons-io</artifactId>
<groupId>commons-io</groupId>
</exclusion>
</exclusions>
</dependency>

<dependency>
Expand Down
6 changes: 6 additions & 0 deletions fluss-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,12 @@
<include>*:*</include>
</includes>
</artifactSet>
<relocations>
<relocation>
<pattern>org.apache.commons</pattern>
<shadedPattern>org.apache.fluss.shaded.org.apache.commons</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
Expand Down
14 changes: 14 additions & 0 deletions website/docs/maintenance/filesystems/hdfs.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,17 @@ fluss.hadoop.dfs.web.authentication.kerberos.principal: HTTP/_HOST@REALM.COM
# Client principal and keytab (adjust paths as needed)
fluss.hadoop.hadoop.security.kerberos.ticket.cache.path: /tmp/krb5cc_1000
```

#### Use Machine Hadoop Environment Configuration

Fluss includes bundled Hadoop libraries with version 3.3.4 for deploying Fluss in machine without Hadoop installed.
For most use cases, these work perfectly. However, you should configure your machine's native Hadoop environment if:
1. Your HDFS uses kerberos security
2. You need to avoid version conflicts between Fluss's bundled hadoop libraries and your HDFS cluster

Fluss automatically loads HDFS dependencies on the machine via the `HADOOP_CLASSPATH` environment variable.
Make sure that the `HADOOP_CLASSPATH` environment variable is set up (it can be checked by running `echo $HADOOP_CLASSPATH`).
If not, set it up using
```bash
export HADOOP_CLASSPATH=`hadoop classpath`
```
7 changes: 6 additions & 1 deletion website/docs/maintenance/tiered-storage/lakehouse-storage.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,14 @@ datalake.paimon.metastore: hive
datalake.paimon.uri: thrift://<hive-metastore-host-name>:<port>
datalake.paimon.warehouse: hdfs:///path/to/warehouse
```

#### Add other jars required by datalake
While Fluss includes the core Paimon library, additional jars may still need to be manually added to `${FLUSS_HOME}/plugins/paimon/` according to your needs.
For example, for OSS filesystem support, you need to put `paimon-oss-<paimon_version>.jar` into directory `${FLUSS_HOME}/plugins/paimon/`.
For example:
- If you are using Paimon filesystem catalog with OSS filesystem, you need to put `paimon-oss-<paimon_version>.jar` into directory `${FLUSS_HOME}/plugins/paimon/`.
- If you are using Paimon Hive catalog, you need to put [the flink sql hive connector jar](https://nightlies.apache.org/flink/flink-docs-stable/docs/connectors/table/hive/overview/#using-bundled-hive-jar) into directory `${FLUSS_HOME}/plugins/paimon/`.

Additionally, when using Paimon with HDFS, you must also configure the Fluss server with the Hadoop environment. See the [HDFS setup guide](/docs/maintenance/filesystems/hdfs.md) for detailed instructions.

### Start The Datalake Tiering Service
Then, you must start the datalake tiering service to tier Fluss's data to the lakehouse storage.
Expand Down