簡體   English   中英

WSO2BAM中介統計數據庫(配置文件未在數據庫中創建表)

[英]WSO2BAM Mediation Stats DB (hive not creating table in db)

大家好,我正在配置WSO2ESB 4.8.1和WSO2BAM 2.4.0以查看統計信息,我正在將數據從ESB發送到存儲在Cassandra中的BAM,但是問題是當我通過BAM工具箱部署Mediation_Statistics_Monitoring時,我看到了控制台中出現以下錯誤:

[2014-02-07 13:45:21,638] ERROR {org.apache.hadoop.hive.ql.exec.Task} -  /var/www/formascloud/apps/wso2bam-2.4.0/repository/logs//wso2carbon.log
[2014-02-07 13:45:21,638] ERROR {org.apache.hadoop.hive.ql.exec.ExecDriver} -  Execution failed with exit status: 2
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask
[2014-02-07 13:45:21,639] ERROR {org.apache.hadoop.hive.ql.Driver} -  FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask
[2014-02-07 13:45:21,640] ERROR {org.wso2.carbon.analytics.hive.impl.HiveExecutorServiceImpl} -  Error while executing Hive script.
Query returned non-zero code: 9, cause: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask
java.sql.SQLException: Query returned non-zero code: 9, cause: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask
        at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:189)
        at org.wso2.carbon.analytics.hive.impl.HiveExecutorServiceImpl$ScriptCallable.executeHiveQuery(HiveExecutorServiceImpl.java:569)
        at org.wso2.carbon.analytics.hive.impl.HiveExecutorServiceImpl$ScriptCallable.call(HiveExecutorServiceImpl.java:282)
        at org.wso2.carbon.analytics.hive.impl.HiveExecutorServiceImpl$ScriptCallable.call(HiveExecutorServiceImpl.java:189)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
[2014-02-07 13:45:21,641] ERROR {org.wso2.carbon.analytics.hive.task.HiveScriptExecutorTask} -  Error while executing script : esb_stats_296
org.wso2.carbon.analytics.hive.exception.HiveExecutionException: Error while executing Hive script.Query returned non-zero code: 9, cause: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask
        at org.wso2.carbon.analytics.hive.impl.HiveExecutorServiceImpl.execute(HiveExecutorServiceImpl.java:115)
        at org.wso2.carbon.analytics.hive.task.HiveScriptExecutorTask.execute(HiveScriptExecutorTask.java:60)
        at org.wso2.carbon.ntask.core.impl.TaskQuartzJobAdapter.execute(TaskQuartzJobAdapter.java:67)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)

[2014-02-07 13:45:21,443] ERROR {org.wso2.carbon.hadoop.hive.jdbc.storage.db.DBOperation} -  Failed to get total row count
org.postgresql.util.PSQLException: ERROR: relation "mediation_stats_summary_per_minute" does not exist
  Position: 38
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2103)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1836)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:273)
        at org.wso2.carbon.hadoop.hive.jdbc.storage.db.DBOperation.getTotalCount(DBOperation.java:335)
        at org.wso2.carbon.hadoop.hive.jdbc.storage.input.JDBCSplit.getSplits(JDBCSplit.java:113)
        at org.wso2.carbon.hadoop.hive.jdbc.storage.input.JDBCDataInputFormat.getSplits(JDBCDataInputFormat.java:41)
        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:601)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
java.lang.NullPointerException
        at org.wso2.carbon.hadoop.hive.jdbc.storage.db.DBOperation.getTotalCount(DBOperation.java:344)
        at org.wso2.carbon.hadoop.hive.jdbc.storage.input.JDBCSplit.getSplits(JDBCSplit.java:113)
        at org.wso2.carbon.hadoop.hive.jdbc.storage.input.JDBCDataInputFormat.getSplits(JDBCDataInputFormat.java:41)
        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:601)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

如您所見,我正在使用Postgresql,我創建了一個名為BAM_STATS_DB的數據庫,這是存儲在master-datasources.xml中的配置:

<datasource>
    <name>WSO2BAM_DATASOURCE</name>
    <description>The datasource used for analyzer data</description>
    <definition type="RDBMS">
        <configuration>                             <url>jdbc:postgresql://localhost:5432/BAM_STATS_DB</url>
                    <username>gregadmin</username>
                    <password>gregadmin</password>
                    <driverClassName>org.postgresql.Driver</driverClassName>
                                <maxActive>80</maxActive>
                            <maxWait>60000</maxWait>
                                <minIdle>5</minIdle>
                                <testOnBorrow>true</testOnBorrow>
                                <validationQuery>select version();</validationQuery>
                             <validationInterval>30000</validationInterval>
                </configuration>
            </definition>
        </datasource>

我究竟做錯了什么? 我正在從WSOBAM文檔進行配置。

看起來BAM工具箱不支持PostgreSQL數據庫。

BAM工具箱具有以下工件

  1. 流定義
  2. 分析工具
  3. 儀表板組件

Google Analytics(分析)具有配置單元腳本,這些腳本取決於用於WSO2BAM_DATASOURCE的基礎數據庫

如果您查看wso2bam-2.4.0/samples/toolboxes ,則會看到多個工具箱,具體取決於數據庫。

例如,中介統計監視工具箱具有3個不同的tbox文件。

  1. Mediation_Statistics_Monitoring_MSSQL.tbox
  2. Mediation_Statistics_Monitoring_Oracle.tbox
  3. Mediation_Statistics_Monitoring.tbox

如果通過管理控制台UI安裝工具箱,則將安裝默認工具箱。 在這種情況下,Mediation_Statistics_Monitoring.tbox。

該默認工具箱適用於少數數據庫,沒有任何問題。 例如MySQL。

您只需編輯分析腳本即可與PostgreSQL數據庫一起使用。

您可以解壓縮工具箱(Mediation_Statistics_Monitoring.tbox)並編輯/Mediation_Statistics_Monitoring/analytics/esb_stats

修復JDBCStorageHandler使用的所有“ CREATE TABLE” SQL。

然后再次創建tbox存檔並復制到wso2bam-2.4.0/repository/deployment/server/bam-toolbox

確保首先取消部署現有工具箱。

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM