-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[Fix](catalog)Fixes query failures for Paimon tables stored in Kerberized HDFS #47192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
TPC-H: Total hot run time: 32270 ms |
TPC-DS: Total hot run time: 193964 ms |
ClickBench: Total hot run time: 30.91 s |
|
run p0 |
1 similar comment
|
run p0 |
|
run buildall |
TPC-H: Total hot run time: 31892 ms |
TPC-DS: Total hot run time: 192854 ms |
ClickBench: Total hot run time: 30.62 s |
|
run p0 |
|
run external |
1 similar comment
|
run external |
|
run buildall |
TPC-H: Total hot run time: 32413 ms |
TPC-DS: Total hot run time: 184510 ms |
ClickBench: Total hot run time: 31.11 s |
|
run buildall |
TPC-H: Total hot run time: 32330 ms |
TPC-DS: Total hot run time: 191121 ms |
ClickBench: Total hot run time: 30.4 s |
|
run buildall |
TPC-H: Total hot run time: 32214 ms |
TPC-DS: Total hot run time: 191766 ms |
ClickBench: Total hot run time: 30.57 s |
|
run buildall |
zy-kkk
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
…ized HDFS (#47192) ### What problem does this PR solve? Using JNI to directly read Paimon tables can lead to query failures when the Paimon storage is on HDFS with Kerberos authentication enabled. #### Reproduction Steps: - Create a Paimon catalog stored on an HDFS cluster with Kerberos authentication enabled. - Execute the command: SET force_jni_scanner=true;. - To ensure a clean environment, restart the BE (Backend) service. - Perform any query on a table within the catalog. ``` 2025-01-18 09:25:06 WARN Thread-13 org.apache.doris.paimon.PaimonJniScanner.open(PaimonJniScanner.java:126) - Failed to open paimon_scanner: java.io.UncheckedIOException: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] com.google.common.util.concurrent.UncheckedExecutionException: java.io.UncheckedIOException: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2085) at com.google.common.cache.LocalCache.get(LocalCache.java:4017) at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4040) at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4989) at org.apache.doris.paimon.PaimonTableCache.getTable(PaimonTableCache.java:84) at org.apache.doris.paimon.PaimonJniScanner.initTable(PaimonJniScanner.java:237) at org.apache.doris.paimon.PaimonJniScanner.open(PaimonJniScanner.java:122) Caused by: java.io.UncheckedIOException: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] at org.apache.paimon.hive.HiveCatalog.createHiveCatalog(HiveCatalog.java:708) at org.apache.paimon.hive.HiveCatalogFactory.create(HiveCatalogFactory.java:48) at org.apache.paimon.catalog.CatalogFactory.createCatalog(CatalogFactory.java:76) at org.apache.paimon.catalog.CatalogFactory.createCatalog(CatalogFactory.java:66) at org.apache.doris.paimon.PaimonTableCache.createCatalog(PaimonTableCache.java:75) at org.apache.doris.paimon.PaimonTableCache.loadTable(PaimonTableCache.java:58) at org.apache.doris.paimon.PaimonTableCache.access$000(PaimonTableCache.java:38) at org.apache.doris.paimon.PaimonTableCache$1.load(PaimonTableCache.java:51) at org.apache.doris.paimon.PaimonTableCache$1.load(PaimonTableCache.java:48) at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3574) at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2316) at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2189) at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2079) ... 6 more ``` #### changes This PR addresses an issue where queries fail when attempting to directly read Paimon tables using JNI, specifically in environments where HDFS is used as the storage backend and Kerberos authentication is enabled. The failure is caused by the lack of proper Kerberos authentication handling in the JNI implementation.
…ized HDFS (#47192) ### What problem does this PR solve? Using JNI to directly read Paimon tables can lead to query failures when the Paimon storage is on HDFS with Kerberos authentication enabled. #### Reproduction Steps: - Create a Paimon catalog stored on an HDFS cluster with Kerberos authentication enabled. - Execute the command: SET force_jni_scanner=true;. - To ensure a clean environment, restart the BE (Backend) service. - Perform any query on a table within the catalog. ``` 2025-01-18 09:25:06 WARN Thread-13 org.apache.doris.paimon.PaimonJniScanner.open(PaimonJniScanner.java:126) - Failed to open paimon_scanner: java.io.UncheckedIOException: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] com.google.common.util.concurrent.UncheckedExecutionException: java.io.UncheckedIOException: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2085) at com.google.common.cache.LocalCache.get(LocalCache.java:4017) at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4040) at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4989) at org.apache.doris.paimon.PaimonTableCache.getTable(PaimonTableCache.java:84) at org.apache.doris.paimon.PaimonJniScanner.initTable(PaimonJniScanner.java:237) at org.apache.doris.paimon.PaimonJniScanner.open(PaimonJniScanner.java:122) Caused by: java.io.UncheckedIOException: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] at org.apache.paimon.hive.HiveCatalog.createHiveCatalog(HiveCatalog.java:708) at org.apache.paimon.hive.HiveCatalogFactory.create(HiveCatalogFactory.java:48) at org.apache.paimon.catalog.CatalogFactory.createCatalog(CatalogFactory.java:76) at org.apache.paimon.catalog.CatalogFactory.createCatalog(CatalogFactory.java:66) at org.apache.doris.paimon.PaimonTableCache.createCatalog(PaimonTableCache.java:75) at org.apache.doris.paimon.PaimonTableCache.loadTable(PaimonTableCache.java:58) at org.apache.doris.paimon.PaimonTableCache.access$000(PaimonTableCache.java:38) at org.apache.doris.paimon.PaimonTableCache$1.load(PaimonTableCache.java:51) at org.apache.doris.paimon.PaimonTableCache$1.load(PaimonTableCache.java:48) at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3574) at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2316) at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2189) at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2079) ... 6 more ``` #### changes This PR addresses an issue where queries fail when attempting to directly read Paimon tables using JNI, specifically in environments where HDFS is used as the storage backend and Kerberos authentication is enabled. The failure is caused by the lack of proper Kerberos authentication handling in the JNI implementation.
add more hudi jni test cases. These tests depends on apache#47192 and part of apache#47299(the jni-util part)
### What problem does this PR solve? add more hudi jni test cases. These tests depends on apache#47192 and part of apache#47299(the jni-util part)
…ized HDFS (apache#47192) ### What problem does this PR solve? Using JNI to directly read Paimon tables can lead to query failures when the Paimon storage is on HDFS with Kerberos authentication enabled. #### Reproduction Steps: - Create a Paimon catalog stored on an HDFS cluster with Kerberos authentication enabled. - Execute the command: SET force_jni_scanner=true;. - To ensure a clean environment, restart the BE (Backend) service. - Perform any query on a table within the catalog. ``` 2025-01-18 09:25:06 WARN Thread-13 org.apache.doris.paimon.PaimonJniScanner.open(PaimonJniScanner.java:126) - Failed to open paimon_scanner: java.io.UncheckedIOException: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] com.google.common.util.concurrent.UncheckedExecutionException: java.io.UncheckedIOException: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2085) at com.google.common.cache.LocalCache.get(LocalCache.java:4017) at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4040) at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4989) at org.apache.doris.paimon.PaimonTableCache.getTable(PaimonTableCache.java:84) at org.apache.doris.paimon.PaimonJniScanner.initTable(PaimonJniScanner.java:237) at org.apache.doris.paimon.PaimonJniScanner.open(PaimonJniScanner.java:122) Caused by: java.io.UncheckedIOException: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] at org.apache.paimon.hive.HiveCatalog.createHiveCatalog(HiveCatalog.java:708) at org.apache.paimon.hive.HiveCatalogFactory.create(HiveCatalogFactory.java:48) at org.apache.paimon.catalog.CatalogFactory.createCatalog(CatalogFactory.java:76) at org.apache.paimon.catalog.CatalogFactory.createCatalog(CatalogFactory.java:66) at org.apache.doris.paimon.PaimonTableCache.createCatalog(PaimonTableCache.java:75) at org.apache.doris.paimon.PaimonTableCache.loadTable(PaimonTableCache.java:58) at org.apache.doris.paimon.PaimonTableCache.access$000(PaimonTableCache.java:38) at org.apache.doris.paimon.PaimonTableCache$1.load(PaimonTableCache.java:51) at org.apache.doris.paimon.PaimonTableCache$1.load(PaimonTableCache.java:48) at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3574) at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2316) at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2189) at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2079) ... 6 more ``` #### changes This PR addresses an issue where queries fail when attempting to directly read Paimon tables using JNI, specifically in environments where HDFS is used as the storage backend and Kerberos authentication is enabled. The failure is caused by the lack of proper Kerberos authentication handling in the JNI implementation.
### What problem does this PR solve? add more hudi jni test cases. These tests depends on apache#47192 and part of apache#47299(the jni-util part)
### What problem does this PR solve? add more hudi jni test cases. These tests depends on apache#47192 and part of apache#47299(the jni-util part)
…ized HDFS (apache#47192) ### What problem does this PR solve? Using JNI to directly read Paimon tables can lead to query failures when the Paimon storage is on HDFS with Kerberos authentication enabled. #### Reproduction Steps: - Create a Paimon catalog stored on an HDFS cluster with Kerberos authentication enabled. - Execute the command: SET force_jni_scanner=true;. - To ensure a clean environment, restart the BE (Backend) service. - Perform any query on a table within the catalog. ``` 2025-01-18 09:25:06 WARN Thread-13 org.apache.doris.paimon.PaimonJniScanner.open(PaimonJniScanner.java:126) - Failed to open paimon_scanner: java.io.UncheckedIOException: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] com.google.common.util.concurrent.UncheckedExecutionException: java.io.UncheckedIOException: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2085) at com.google.common.cache.LocalCache.get(LocalCache.java:4017) at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4040) at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4989) at org.apache.doris.paimon.PaimonTableCache.getTable(PaimonTableCache.java:84) at org.apache.doris.paimon.PaimonJniScanner.initTable(PaimonJniScanner.java:237) at org.apache.doris.paimon.PaimonJniScanner.open(PaimonJniScanner.java:122) Caused by: java.io.UncheckedIOException: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS] at org.apache.paimon.hive.HiveCatalog.createHiveCatalog(HiveCatalog.java:708) at org.apache.paimon.hive.HiveCatalogFactory.create(HiveCatalogFactory.java:48) at org.apache.paimon.catalog.CatalogFactory.createCatalog(CatalogFactory.java:76) at org.apache.paimon.catalog.CatalogFactory.createCatalog(CatalogFactory.java:66) at org.apache.doris.paimon.PaimonTableCache.createCatalog(PaimonTableCache.java:75) at org.apache.doris.paimon.PaimonTableCache.loadTable(PaimonTableCache.java:58) at org.apache.doris.paimon.PaimonTableCache.access$000(PaimonTableCache.java:38) at org.apache.doris.paimon.PaimonTableCache$1.load(PaimonTableCache.java:51) at org.apache.doris.paimon.PaimonTableCache$1.load(PaimonTableCache.java:48) at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3574) at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2316) at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2189) at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2079) ... 6 more ``` #### changes This PR addresses an issue where queries fail when attempting to directly read Paimon tables using JNI, specifically in environments where HDFS is used as the storage backend and Kerberos authentication is enabled. The failure is caused by the lack of proper Kerberos authentication handling in the JNI implementation.
What problem does this PR solve?
Using JNI to directly read Paimon tables can lead to query failures when the Paimon storage is on HDFS with Kerberos authentication enabled.
Reproduction Steps:
changes
This PR addresses an issue where queries fail when attempting to directly read Paimon tables using JNI, specifically in environments where HDFS is used as the storage backend and Kerberos authentication is enabled. The failure is caused by the lack of proper Kerberos authentication handling in the JNI implementation.
Release note
None
Check List (For Author)
Test
After updating the code, repeat the reproduction steps outlined above.
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)