Я хочу использовать HBase с весной. В документации, которую я вижу, есть что-то, что говорит:
<hdp:configuration>
fs.default.name=${hd.fs}
mapred.job.tracker=${mapred.job.tracker}
hbase.zookeeper.quorum=${hbase.zookeeper.quorum}
</hdp:configuration>
Как я могу программно использовать это в своем приложении Application.java? Кажется, нет образца или документации о том, как использовать HBaseTemplate для подключения к hbase. Рассмотрение следующего репозитория, как рекомендовано в другом сообщении, не имеет примеров, связанных с hbase:
Я знаю, что вопрос старый, но я просто столкнулся с этим и смог его решить. Внедрение SpringHadoopConfigurerAdapter как:
@Configuration
@EnableHadoop
public class HadoopConfiguration extends SpringHadoopConfigurerAdapter {
@Autowired
private ResourceLoader resourceLoader;
@Override
public void configure(HadoopConfigConfigurer config) throws Exception {
org.apache.hadoop.conf.Configuration conf = getHadoopConfig("classpath:/mapred-site.xml");
config
.withResources()
.resource("classpath:/yarn-site.xml")
.resource("classpath:/hbase-site.xml")
.resource("classpath:/mapred-site.xml")
.and()
.withProperties()
.property("mapreduce.app-submission.cross-platform", "true")
.property("mapreduce.framework.name", "yarn")
.property("mapreduce.application.framework.path", "")
.property("mapreduce.map.log.level", "INFO")
.property("mapreduce.reduce.log.level", "INFO")
.property("hbase.client.scanner.caching", "1")
.property("hbase.client.scanner.timeout.period", "300000")
.property("hbase.rpc.timeout", "300000");
}
private org.apache.hadoop.conf.Configuration getHadoopConfig(String mrSiteFile) throws IOException {
Resource mapRedSite = resourceLoader.getResource(mrSiteFile);
org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();
conf.addResource(mapRedSite.getInputStream());
return conf;
}
}
Затем вы сможете ввести HadoopConfiguration:
@Autowired
org.apache.hadoop.conf.Configuration hadoopConfiguration;
В настоящее время я не нашел конфигурацию на основе аннотации для hdp: configuration, но вместо этого для моего проекта Spring-Hadoop я создал xml для конфигурации haddop как hasoop-context.xml и импортировал его в Config.java, как показано ниже
@Configuration
@ImportResource ( "hadoop-context.xml")
public class Config
{
@Autowired
private org.apache.hadoop.conf.Configuration hadoopConfiguration;
}
Скорее всего, это поможет в вашем случае решить проблему.
Вы взглянули на это: http://docs.spring.io/spring-hadoop/docs/2.0.1.RELEASE/reference/html/hbase.html? Я считаю, что это дает вам эквивалент конфигурации HBaseConfiguration. Вы также можете добавить свои объекты. Отправляйте назад, если это не поможет.