gpt4 book ai didi

java - Spring Hadoop 配置 - 没有符合条件的 org.apache.hadoop.conf.Configuration 类型的 bean

转载 作者:可可西里 更新时间:2023-11-01 16:43:13 25 4
gpt4 key购买 nike

我正在尝试为 Hadoop/Hive 环境配置 bean。根据文档,我需要 Apache Hadoop 配置类,它应该是 Autowiring 的。请参阅:http://docs.spring.io/spring-hadoop/docs/2.4.0.RELEASE/reference/html/springandhadoop-store.html (6.2.2节配置数据集支持)

然而,当我尝试运行我的应用程序时,我得到:NoSuchBeanDefinitionException:没有找到类型为 [org.apache.hadoop.conf.Configuration] 的符合条件的 bean 依赖:预计至少有 1 个符合 Autowiring 条件的 bean此依赖项的候选对象。

我的课很简单:

@SpringBootApplication
public class HiveTestApp implements CommandLineRunner {
private
@Autowired
org.apache.hadoop.conf.Configuration hadoopConfiguration;

...

我正在使用 Cloudera 集群,这里是依赖项:

dependencies {
compile(
'org.springframework.boot:spring-boot-starter-web',
'org.springframework.data:spring-data-hadoop-hive:2.4.0.RELEASE-cdh5',
'org.apache.hive:hive-jdbc:1.1.0-cdh5.4.3',
)

现在,我可能是错的,但我记得过去我使用过 Autowiring 配置,而且效果很好。最新版本有什么变化吗?我错过了什么吗?

最佳答案

好的,这是解决方案。

@Configuration
public class ApplicationConfiguration {
@Value("${com.domain.app.hadoop.fs-uri}")
private URI hdfsUri;

@Value("${com.domain.app.hadoop.user}")
private String user;

@Value("${com.domain.app.hadoop.hive.jdbc-uri}")
private String hiveUri;

@Autowired
private org.apache.hadoop.conf.Configuration hadoopConfiguration;

@Bean
public org.apache.hadoop.conf.Configuration hadoopConfiguration() {
return new org.apache.hadoop.conf.Configuration();
}

@Bean
public HdfsResourceLoader hdfsResourceLoader() {
return new HdfsResourceLoader(hadoopConfiguration, hdfsUri, user);
}

@Bean
public HiveTemplate hiveTemplate() {
return new HiveTemplate(() -> {
final SimpleDriverDataSource dataSource = new SimpleDriverDataSource(new HiveDriver(), hiveUri);
return new HiveClient(dataSource);
});
}
}

下面的配置文件。

com.domain.app.hadoop:
fs-uri: "hdfs://hadoop-cluster/"
user: "hdfs-user"
hive.jdbc-uri: "jdbc:hive2://hadoop-cluster:10000/hive-db"

我已经将 Hadoop 配置对象变成了一个 bean,因为我需要将它注入(inject)到其中一个类中。如果你不需要bean,你可以自己创建新的实例。

关于java - Spring Hadoop 配置 - 没有符合条件的 org.apache.hadoop.conf.Configuration 类型的 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38786235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com