将wso2 BAM与外部cassandra集成

时间:2014-02-11 12:35:01

标签: wso2 wso2bam

我正在尝试将外部cassandra集成到BAM中。我更改了cassandra-component.xml。

1)我想知道如何在外部cassandra上创建键空间,因为当我运行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

4 个答案:

答案 0 :(得分:0)

EVENT_KS仅在我记得第一个事件发布到BAM之后创建。如果您在创建之前尝试访问它,可能会出现错误。

答案 1 :(得分:0)

在BAM 2.4.0中,第一次运行BAM时会创建EVENT_KS。 (但在以前的版本中,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>

答案 2 :(得分:0)

首先您需要检查以下内容:

  1. 您是否已将cassandra-component.xml正确指向外部cassandra。这样,您发布的数据将存储在预期的外部cassandra数据库中。
  2. 您是否在内部安装了具有预期流定义的工具箱?或者你有没有触发将数据发布到BAM?在这两种情况下,EVENT_KS都将使用名称为stream的列族创建。
  3. 您是否修改了$ BAM_HOME / repository / conf / datasource / master-datasource.xml以指向外部cassandra数据库?您需要验证WSO2BAM_CASSANDRA_DATASOURCE数据源中提供的cassandra数据库配置。对于默认工具箱,这是使用的默认cassandra数据源,默认情况下它指向localhost。如果您在配置单元脚本中使用它,则需要更改此配置。

答案 3 :(得分:0)

经过多方努力后,我认为将外部cassandra的cassendra.yaml数据目录更改为repository / database / cassandra / data后,一切正常,外部cassandra.Not提及版本1.1.3。我想知道这个外部cassandra配置还有其他工作吗。