1

Cascalog クエリの結果を MySQL データベースに書き込もうとしています。このために、私はcascading-jdbcを使用しており、ここで見つけた例に従っています。私はバージョンで使用cascading-jdbc-coreしています。cascading-jdbc-mysql3.0.0

REPL からこのコードを正確に実行しています。

 (let [data [["foo1" "bar1"]
             ["foo2" "bar2"]]
       query-params (into-array String ["?col1" "?col2"])
       column-names (into-array String ["col1" "col2"])
       update-params (into-array String ["?col1"])
       update-column-names (into-array String ["col1"])
       jdbc-tap (fn []
                  (let [scheme (JDBCScheme.
                                 (Fields. query-params)
                                 column-names
                                 nil
                                 (Fields. update-params)
                                 update-column-names)
                        table-desc (TableDesc.
                                     "test_table"
                                     query-params
                                     column-names
                                     (into-array String []))
                        tap (JDBCTap.
                               "jdbc:mysql://192.168.99.101:3306/test_db?user=root&password=my-secret-pw"
                               "com.mysql.jdbc.Driver"
                               table-desc
                               scheme)]
                     tap))]
    (?<- (jdbc-tap)
         [?col1 ?col2]
         (data ?col1 ?col2)))

コードを実行していると、REPL 内に次のログが表示されます。

15/12/11 11:08:44 INFO hadoop.FlowMapper: sinking to: JDBCTap{connectionUrl='jdbc:mysql://192.168.99.101:3306/test_db?user=root&password=my-secret-pw', driverClassName='com.mysql.jdbc.Driver', tableDesc=TableDesc{tableName='test_table', columnNames=[?col1, ?col2], columnDefs=[col1, col2], primaryKeys=[]}}
15/12/11 11:08:44 INFO mapred.Task: Task:attempt_local1324562503_0006_m_000000_0 is done. And is in the process of commiting
15/12/11 11:08:44 INFO mapred.LocalJobRunner:
15/12/11 11:08:44 INFO mapred.Task: Task 'attempt_local1324562503_0006_m_000000_0' done.
15/12/11 11:08:44 INFO mapred.LocalJobRunner: Finishing task: attempt_local1324562503_0006_m_000000_0
15/12/11 11:08:44 INFO mapred.LocalJobRunner: Map task executor complete.

すべてがうまく見えます。ただし、データは書き込まれません。tcpdumpローカルの MySQL データベースとの接続さえ確立されていないことを確認しました。また、JDBC-connection-string を明らかに間違った値 (存在しないユーザー名、存在しない DB 名、さらには DB サーバーの存在しない IP) に変更すると、同じログが取得されます。何にでも文句を言う。

また、を変更するjdbc-tapstdout、期待値が生成されます。

これをデバッグする方法がまったくわかりません。エラー出力を生成する可能性はありますか? 今のところ、何が問題なのかわかりません。

4

1 に答える 1