Ich habe Spring Boot Hadoop und möchte das Spring HbaseTemplate nutzen. Mein Problem ist, dass die Dokumentation nur Informationen über den "xml" Weg der Konfiguration und Einrichtung enthält.
Wie und wo definiere ich meine Konfiguration in der hbase-Konfiguration in Java im Gegensatz zu der XML-Datei, wie sie in den offiziellen Dokumenten angezeigt wird?
Nun, es ist nicht wirklich eine erwartete Antwort, aber ich möchte es zu sehr für einen Kommentar entwickeln.
Ich lese sorgfältig die Spring für Apache Hadoop - Referenzdokumentation In seiner letzten veröffentlichten Version, und wenn es Beispiele und Details für die Namespace-Konfiguration enthält, konnte ich keine einzige Zeile in der Java-Konfiguration finden.
Nach meinem Verständnis wird derzeit nur Namespace-Konfiguration für Spring für Apache Hadoop unterstützt. Es sollte sicherlich möglich sein, die Klassen zu betrachten, die den Namensraum unterstützen, und eine funktionierende Konfiguration zu hacken, um herauszufinden, wie man mit java config das gleiche Ergebnis erhält, aber ehrlich gesagt, das Kosten-Gewinn-Verhältnis rechtfertigt das nicht. Und da es momentan undokumentiert ist, wirst du nie sicher sein, dass du etwas nicht vergessen hast, das später bricht.
Da Spring XML-Konfigurationsdateien in eine Java-Config-Spring-Anwendung einbinden möchte, rate ich Ihnen dringend, Ihre gesamte Java-Konfiguration beizubehalten, den Apache-Hadoop-Teil in XML mit dem angegebenen Namespace zu schreiben und einfach ein @ImportResource
hinzuzufügen. Anmerkung zu Ihrer Konfigurationsklasse. Nehmen wir an, die Spring-Hadoop-Konfiguration ist hadoopContext.xml
im Stammverzeichnis von classpath. Sie könnten schreiben:
Alternativ können Sie auch einen @Configuration
-Wrapper für die XML-Konfiguration verwenden, die von Spring gescannt wird:
Obwohl eine Java-basierte Konfiguration für HBase noch nicht offiziell verfügbar ist (erst seit Spring Hadoop 2.2.1), gibt es eine saubere Problemumgehung. Fügen Sie die relevanten ZooKeeper-Details als Eigenschaften in eine Java-basierte Spring Hadoop-Konfiguration ein. Dann muss das hbase-configuration
XML-Tag keine Konfigurationsdetails enthalten. Per Konvention hängt dies von der hadoopConfiguration
-Bohne ab, die von der Java-basierten HadoopConfigConfigurer
definiert wird.
Die verbleibende XML-Konfiguration ist für die Implementierungsumgebung unabhängig:
%Vor%Ich habe ein einfaches Demo-Projekt geschrieben, um hbase in der Spring-Boot-Anwendung ohne XML zu verwenden.
Diese Demo hängt hauptsächlich von spring-data-hadoop und hbase-client ab. Gradle Abhängigkeiten:
%Vor%Konfigurieren Sie die hbase-Verbindungsparameter in der Datei application.properties von spring boot (Kein XML!):
%Vor%Klasse HbaseProperties.java:
%Vor%HbaseConfig.java, injiziere die Konfigurationen in die HbaseTemplate:
%Vor%Serviceklasse, wir können jetzt das konfigurierte HbaseTemplate verwenden:
%Vor%Viel Spaß! :)
Tags und Links java spring hadoop spring-mvc spring-boot