2016-04-05 15 views
0

Hbase civata sahip olan fırtına topolojisini, tuple'ı hbase'e yazmak için oluşturuyorum. Ancak topolojiyi çalıştırdığımda, her zaman aşağıdaki hatayı gösterir. Bu problemi nasıl çözecek bilen var mı?HBase yapılandırması 'null' anahtarı kullanılarak bulunamadı

java.lang.IllegalArgumentException: HBase configuration not found using key 'null' 
at org.apache.storm.hbase.bolt.AbstractHBaseBolt.prepare(AbstractHBaseBolt.java:60) 

Zaten aşağıda gibi pom.xml dosyasında Hbase-site.xml dosyasını serialize:

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <version>2.3</version> 
      <configuration> 
       <transformers> 
        <transformer 
         implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer"> 
        </transformer> 
       </transformers> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.2.1</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>exec</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <executable>java</executable> 
       <includeProjectDependencies>true</includeProjectDependencies> 
       <includePluginDependencies>false</includePluginDependencies> 
       <classpathScope>compile</classpathScope> 
       <mainClass>${storm.topology}</mainClass> 
      </configuration> 
     </plugin> 
    </plugins> 
    <resources> 
     <resource> 
      <directory>${basedir}/conf</directory> 
      <filtering>false</filtering> 
      <includes> 
       <include>hbase-site.xml</include> 
      </includes> 
     </resource> 
    </resources> 

önceden Yardımlarınız için teşekkür ederiz.

cevap

0

Topolojinize hbase config parametresini geçirin.

public static final String HBASE_CONFIG_KEY = "hbase.conf"; 

1) Fırtına yapılandırmasında yeni ayar HBASE_CONFIG_KEY. benim için çalıştı Hbase Cıvata yapılandırma kümesi yapılandırma Anahtar HBASE_CONFIG_KEY

HBaseBolt hBaseBolt = new HBaseBolt(topologyConfig.getProperty(CFG_HBASE_BOLT_TABLE_NAME), new CbossCdrRecordMapper()) 
      .withConfigKey(HBASE_CONFIG_KEY) 
      .withBatchSize(1000) 
      .withFlushIntervalSecs(flushInterval) 
      .withBatchSize(Integer.valueOf(topologyConfig.getProperty(CFG_HBASE_BOLT_BATCH_SIZE))); 

yılında

Config config = new Config(); 
String rootDir = topologyConfig.getProperty("hbase.rootdir"); 
Map<String, Object> hbConf = new HashMap<>(); 
hbConf.put("hbase.rootdir", rootDir); 
config.put(HBASE_CONFIG_KEY, hbConf); 
StormSubmitter.submitTopology(topologyName, config, buildTopology()); 

2).