[
https://issues.apache.org/jira/browse/FLINK-21829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17303267#comment-17303267
]
Rui Li commented on FLINK-21829:
--------------------------------
[~hehuiyuan] I think we can change the logic like this:
1. Let {{getHadoopConfiguration}} return null if {{hadoopConfDir}} doesn't
exist, or none of the conf files exist under {{hadoopConfDir}};
2. Call {{getHadoopConfiguration}} with user provided conf dir. If the result
is null, throw an exception to indicate something wrong with the provided conf
dir.
3. Call {{getHadoopConfiguration}} with possible hadoop conf. If the result is
null, fallback to a default {{"new Configuration()"}}.
What do you think?
> create HiveCatalog with custom hadoopconfdir first
> --------------------------------------------------
>
> Key: FLINK-21829
> URL: https://issues.apache.org/jira/browse/FLINK-21829
> Project: Flink
> Issue Type: Wish
> Components: Connectors / Hive
> Reporter: hehuiyuan
> Priority: Major
> Labels: pull-request-available
>
> here is no prompt when the the path to hadoop conf configured is wrong
> unintentional.
> {code:java}
> private static HiveConf createHiveConf(
> @Nullable String hiveConfDir, @Nullable String hadoopConfDir) {
> // create HiveConf from hadoop configuration with hadoop conf directory
> configured.
> Configuration hadoopConf = null;
> if (isNullOrWhitespaceOnly(hadoopConfDir)) {
> for (String possibleHadoopConfPath :
> HadoopUtils.possibleHadoopConfPaths(
> new org.apache.flink.configuration.Configuration())) {
> hadoopConf = getHadoopConfiguration(possibleHadoopConfPath);
> if (hadoopConf != null) {
> break;
> }
> }
> } else {
> hadoopConf = getHadoopConfiguration(hadoopConfDir);
> }
> if (hadoopConf == null) {
> hadoopConf = new Configuration();
> }
> HiveConf hiveConf = new HiveConf(hadoopConf, HiveConf.class);
> {code}
> It is better to load hadoop conf from possiable hadoop path when the path is
> wrong.
> (1) try to load from the custom hadoop conf path
> (2) try to load from possiable hadoop conf path if {{Configuration
> hadoopConf}} is null.
> (3) new Configuration if {{Configuration hadoopConf}} is null
> {code:java}
> private static HiveConf createHiveConf(
> @Nullable String hiveConfDir, @Nullable String hadoopConfDir) {
> // create HiveConf from hadoop configuration with hadoop conf directory
> configured.
> Configuration hadoopConf = null;
> if (!isNullOrWhitespaceOnly(hadoopConfDir)) {
> hadoopConf = getHadoopConfiguration(hadoopConfDir);
> }
> if (hadoopConf == null) {
> for (String possibleHadoopConfPath :
> HadoopUtils.possibleHadoopConfPaths(
> new org.apache.flink.configuration.Configuration())) {
> hadoopConf = getHadoopConfiguration(possibleHadoopConfPath);
> if (hadoopConf != null) {
> break;
> }
> }
> }
> if (hadoopConf == null) {
> hadoopConf = new Configuration();
> }
> HiveConf hiveConf = new HiveConf(hadoopConf, HiveConf.class);
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)