アプリケーションを openjdk11 に移行していますが、この設定でアプリケーションが以下のエラーをスローしています。これについて助けてください 注: Jdk 1.8 では、同じコードと構成が正常に機能しています。Java バージョン: openjdk 11 Springboot-hadoop: 2.4.0 リリース
アプリケーション プロパティ
spring.hadoop.fsshell.enabled=false
#hadoop security properties
hadoop.config.key=hadoop.security.authentication
hadoop.config.value=Kerberos
#Hive connection properties
hive.datasource.keytab=/config/security/sit.001.keytab
hive.datasource.drivername=org.apache.hive.jdbc.HiveDriver
hive.datasource.username=ssit.001
#hive.datasource.password=password
hive.truststore.file=/config/security/hivetrust.jks
hive.krb5.conf=/config/security/krb5.conf
hive.datasource.url=url
hive.krb5.conf.debug.prop=sun.security.krb5.debug
hive.krb5.conf.isdebug=true
Java の変更
@Value("${hive.datasource.drivername}")
private String driverName;
@Value("${hive.datasource.url}")
private String jdbcUrl;
@Value("${hive.datasource.username}")
private String userId;
@Value("${hive.datasource.keytab}")
private String keytab;
@Value("${hive.krb5.conf}")
private String kerberosConf;
@Value("${hadoop.config.key}")
public String hadoopConfigKey;
@Value("${hadoop.config.value}")
public String hadoopConfigValue;
@Bean(name = "hiveDS")
public DataSource configureHiveDataSource() throws IOException, ClassNotFoundException, SQLException {
Connection con = null;
// System.setProperty("hadoop.home.dir", hadoopHome);
System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
System.setProperty("java.security.krb5.conf", kerberosConf);
org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();
conf.set(hadoopConfigKey, hadoopConfigValue);
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab(userId, keytab);
Class.forName(driverName);
con = DriverManager.getConnection(jdbcUrl);
LOGGER.info("Hive Db Connected");
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(driverName);
dataSource.setUrl(jdbcUrl);
return dataSource;
}
@Bean(name = "hiveJdbc")
public JdbcTemplate getHiveJdbcTemplate(@Qualifier("hiveDS") DataSource hiveDS) {
return new JdbcTemplate(hiveDS);
}
@Bean(name = "hiveNamedJdbc")
public NamedParameterJdbcTemplate getHiveNamedJdbcTemplate(@Qualifier("hiveDS") DataSource hiveNamedDS) {
return new NamedParameterJdbcTemplate(hiveNamedDS);
}
}
2021-04-28T21:18:18.829+0530 [main] エラー osdhccaAbstractConfiguredAnnotationBuilder - ビルドの実行に失敗しました。null を 返します/hadoop/config/annotation/configuration/SpringHadoopConfiguration.class]: ファクトリ メソッドによる Bean のインスタンス化に失敗しました。ネストされた例外は **org.springframework.beans.BeanInstantiationException: インスタンス化に失敗しました **[org.apache.hadoop.conf.Configuration]: ファクトリ メソッド 'configuration' が例外をスローしました。ネストされた例外は java.lang.NullPointerException です