2014-02-11 91 views
0

我正在嘗試將外部cassandra集成到BAM。我更改了cassandra-component.xml。將wso2 BAM與外部cassandra集成

1)我想知道如何在外部cassandra上創建keyspace,因爲當我運行BAM時, 我得到錯誤Unknown keyspace EVENT_KS

2)我有我的WSO2日誌

TID: [0] [BAM] [2014-02-11 15:28:30,905] WARN {org.apache.hadoop.mapred.JobClient} - Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same. {org.apache.hadoop.mapred.JobClient} 

TID: [0] [BAM] [2014-02-11 15:37:04,393] ERROR {org.apache.hadoop.hive.ql.exec.ExecDriver} - Job Submission failed with exception 'java.lang.RuntimeException(org.apache.thrift.transport.TTransportException)' 
java.lang.RuntimeException: org.apache.thrift.transport.TTransportException 

    at org.apache.cassandra.hadoop.ColumnFamilyInputFormat.getRangeMap(ColumnFamilyInputFormat.java:297) 

    at org.apache.cassandra.hadoop.ColumnFamilyInputFormat.getSplits(ColumnFamilyInputFormat.java:105) 

    at org.apache.hadoop.hive.cassandra.input.HiveCassandraStandardColumnInputFormat.getSplits(HiveCassandraStandardColumnInputFormat.java:291) 

    at org.apache.hadoop.hive.cassandra.input.HiveCassandraStandardColumnInputFormat.getSplits(HiveCassandraStandardColumnInputFormat.java:216) 

    at org.apache.hadoop.hive.ql.io.HiveInputFormat.getSplits(HiveInputFormat.java:302) 

    at org.apache.hadoop.hive.ql.io.CombineHiveInputFormat.getSplits(CombineHiveInputFormat.java:292) 

    at org.apache.hadoop.mapred.JobClient.writeOldSplits(JobClient.java:933) 

    at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:925) 

    at org.apache.hadoop.mapred.JobClient.access$500(JobClient.java:170) 

    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:839) 

    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:792) 

    at java.security.AccessController.doPrivileged(Native Method) 

    at javax.security.auth.Subject.doAs(Subject.java:415) 

    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1123) 

    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:792) 

    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:766) 

    at org.apache.hadoop.hive.ql.exec.ExecDriver.execute(ExecDriver.java:460) 

    at org.apache.hadoop.hive.ql.exec.ExecDriver.main(ExecDriver.java:733) 

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 

    at java.lang.reflect.Method.invoke(Method.java:606) 

    at org.apache.hadoop.util.RunJar.main(RunJar.java:156) 

Caused by: org.apache.thrift.transport.TTransportException 

回答

0

EVENT_KS下面的錯誤後,才爲我記得最先事件被髮布到BAM創建。如果您在嘗試訪問它之前可能會出現創建錯誤。

0

在BAM 2.4.0中,EVENT_KS在第一次運行BAM時被創建。 (但在以前的版本中,EVENT_KS將在第一個事件發佈到BAM時創建)。請確保你的cassandra-component.xml看起來類似於下面的東西。同時告訴我們您正在使用的cassandra版本。

<Cassandra><Cluster> 
    <Name>Test Cluster</Name> 
    <DefaultPort>9160</DefaultPort> 
    <Nodes>localhost:9160</Nodes> 
    <AutoDiscovery disable="false" delay="1000"/> 
</Cluster></Cassandra> 
+0

卡桑德拉版本是2.0.5 – user3189802

0

首先,你需要檢查以下內容:

  1. 你有沒有正確地指出卡桑德拉 - component.xml文件到外部卡桑德拉。有了這個你發佈的數據將被存儲在預期的外部cassandra數據庫中。
  2. 你是否已經安裝了一個工具箱,裏面有預期的流定義?或者您是否觸發了將數據發佈到BAM?在這兩種情況下,將使用具有流名稱的列族創建EVENT_KS。
  3. 您是否修改了$ BAM_HOME/repository/conf/datasource/master-datasource.xml以指向外部cassandra數據庫?您需要驗證WSO2BAM_CASSANDRA_DATASOURCE數據源中提供的cassandra數據庫配置。對於默認工具箱,這是使用的默認cassandra數據源,默認情況下它指向localhost。如果你在你的配置單元腳本中使用這個,你需要改變這個配置。
0

使許多努力我的身影,不斷變化的外部卡桑德拉cassendra.yaml到庫/數據庫/卡桑德拉/數據一切的數據目錄後正常工作與外部cassandra.Not與1.1.3版本後再提。我想知道有沒有其他的工作,圍繞這個外部卡桑德拉配置。

+0

爲了確保一切正常,通過運行樣本[1]的一個發佈一些數據,並檢查蜂箱詢問是否還正確地執行。如果蜂箱查詢執行沒有問題,總結的結果顯示在儀表盤,那麼你是好去。 [1] - http://docs.wso2.org/display/BAM240/Analysing+HTTPD+Logs –