Backport #68150 and #66433 to branch-4.1. Trino startup/query failures and unfinished HDFS Broker Load jobs could appear as empty-result mismatches. Kerberized HDFS clients lacked the DataNode SASL setting, and the lightweight Kerberos metastore lacked the Paimon fixture. Iceberg metadata write failures could expose only a self-suppression wrapper. This backport adds bounded readiness/load checks with failure diagnostics, configures HDFS transfer protection, restores the Paimon fixture before the Kerberos readiness marker, and reports the root cause of failed Iceberg metadata commits. Branch adaptation: branch-4.1 uses `IcebergMetadataOps`, so the root-cause changes are applied to its create-table, schema-update, and branch/tag commit paths. Its partition-spec update helper already reports root causes. The newer connector implementation is not introduced. Validation: - FE Checkstyle passes: `mvn -pl fe-core -am checkstyle:check`. - All six changed suites compile with Groovy 4.0.19. - Eight local control-flow scenarios pass for Trino readiness/query errors and Broker Load completion/cancellation/timeouts. - Shell syntax, Kerberos settings isolation, both container role/switch combinations, env/config rendering, and rendered XML checks pass. - An isolated harness compiles the actual adapted create-table/schema-commit methods with stubbed dependencies: the original masks the storage failure, while the backport preserves the root message, operation context, and exception cause. - `git diff --check` passes. Full FE build and external integration runs remain pending CI. Release note: Improved external regression setup and diagnostics; Iceberg metadata commit errors now expose the underlying cause. Co-authored-by: Mingyu Chen (Rayner) <morningman.cmy@gmail.com>
Doris Develop Environment based on docker
Preparation
-
Download the Doris code repo
$ cd /to/your/workspace/ $ git clone https://github.com/apache/doris.git $ cd doris $ git submodule update --init --recursiveYou can remove the
.gitdir indoris/to make the dir size smaller. So that the following generated docker image can be smaller. -
Copy Dockerfile
$ cd /to/your/workspace/ $ cp doris/docker/Dockerfile ./
After preparation, your workspace should like this:
.
├── Dockerfile
├── doris
│ ├── be
│ ├── bin
│ ├── build.sh
│ ├── conf
│ ├── DISCLAIMER-WIP
│ ├── docker
│ ├── docs
│ ├── env.sh
│ ├── fe
│ ├── ...
Build docker image
$ cd /to/your/workspace/
$ docker build -t doris:v1.0 .
dorisis docker image repository name andv1.0is tag name, you can change them to whatever you like.
Use docker image
This docker image you just built does not contain Doris source code repo. You need to download it first and map it to the container. (You can just use the one you used to build this image before)
$ docker run -it -v /your/local/path/doris/:/root/doris/ doris:v1.0
$ docker run -it -v /your/local/.m2:/root/.m2 -v /your/local/doris-DORIS-x.x.x-release/:/root/doris-DORIS-x.x.x-release/ doris:v1.0
Then you can build source code inside the container.
$ cd /root/doris/
$ sh build.sh
NOTICE
The default JDK version is openjdk 11, if you want to use openjdk 8, you can run the command:
$ alternatives --set java java-1.8.0-openjdk.x86_64
$ alternatives --set javac java-1.8.0-openjdk.x86_64
$ export JAVA_HOME=/usr/lib/jvm/java-1.8.0
The version of jdk you used to run FE must be the same version you used to compile FE.
Latest update time
2022-1-23