2017-08-26 3 views
0

私のスプリングバッチアプリケーションで200万レコードとグリッドサイズ20を処理しています。 100から200kのレコードでは正常に動作しますが、200万回のパーティション分割では失敗します。パーティショニング後にスプリングバッチがハングする

パーティション情報:

{ 
    partition - 20 = { 
     startKey = 1980865.0, 
     endKey = 2069192.0, 
     partitionSize = 72, 
     partitionId = 20, 
     partitionRecordCount = 88328 
    }, 
    partition - 10 = { 
     st 
     artKey = 938305.0, 
     endKey = 1042560.0, 
     partitionSize = 72, 
     partitionId = 10, 
     partitionRecordCount = 104256 
    }, 
    partition - 11 = { 
     startKey = 1042561.0, 
     endKey = 1146816.0, 
     partitionSize = 72, 
     partitionId = 11, 
     partitionRecordCount = 104256 
    }, 
    partition - 12 = { 
     startKey = 1146817.0, 
     endKey = 1251072.0, 
     partitionSize = 72, 
     partitionId = 12, 
     partitionRecordCount = 104256 
    }, 
    partition - 13 = { 
     startKey = 1251073.0, 
     endKey = 1355328.0, 
     partitionSize = 72, 
     partitionId = 13, 
     partitionRecordCount = 104256 
    }, 
    par 
    tition - 14 = { 
     startKey = 1355329.0, 
     endKey = 1459584.0, 
     partitionSize = 72, 
     partitionId = 14, 
     partitionRecordCount = 104256 
    }, 
    partition - 15 = { 
     startKey = 1459585.0, 
     end 
     Key = 1563840.0, 
     partitionSize = 72, 
     partitionId = 15, 
     partitionRecordCount = 104256 
    }, 
    partition - 16 = { 
     startKey = 1563841.0, 
     endKey = 1668096.0, 
     partitionSize = 72, 
     p 
     artitionId = 16, 
     partitionRecordCount = 104256 
    }, 
    partition - 17 = { 
     startKey = 1668097.0, 
     endKey = 1772352.0, 
     partitionSize = 72, 
     partitionId = 17, 
     partitionRecordCoun 
     t = 104256 
    }, 
    partition - 18 = { 
     startKey = 1772353.0, 
     endKey = 1876608.0, 
     partitionSize = 72, 
     partitionId = 18, 
     partitionRecordCount = 104256 
    }, 
    partition - 19 = { 
     startKey = 
      1876609.0, 
     endKey = 1980864.0, 
     partitionSize = 72, 
     partitionId = 19, 
     partitionRecordCount = 104256 
    }, 
    partition - 1 = { 
     startKey = 1.0, 
     endKey = 104256.0, 
     partitionSize 
      = 72, 
     partitionId = 1, 
     partitionRecordCount = 104256 
    }, 
    partition - 2 = { 
     startKey = 104257.0, 
     endKey = 208512.0, 
     partitionSize = 72, 
     partitionId = 2, 
     partitionRecordCou 
     nt = 104256 
    }, 
    partition - 3 = { 
     startKey = 208513.0, 
     endKey = 312768.0, 
     partitionSize = 72, 
     partitionId = 3, 
     partitionRecordCount = 104256 
    }, 
    partition - 4 = { 
     startKey = 3127 
      69.0, 
     endKey = 417024.0, 
     partitionSize = 72, 
     partitionId = 4, 
     partitionRecordCount = 104256 
    }, 
    partition - 5 = { 
     startKey = 417025.0, 
     endKey = 521280.0, 
     partitionSize = 7 
      2, 
     partitionId = 5, 
     partitionRecordCount = 104256 
    }, 
    partition - 6 = { 
     startKey = 521281.0, 
     endKey = 625536.0, 
     partitionSize = 72, 
     partitionId = 6, 
     partitionRecordCount 
      = 104256 
    }, 
    partition - 7 = { 
     startKey = 625537.0, 
     endKey = 729792.0, 
     partitionSize = 72, 
     partitionId = 7, 
     partitionRecordCount = 104256 
    }, 
    partition - 8 = { 
     startKey = 729793 
      .0, 
     endKey = 834048.0, 
     partitionSize = 72, 
     partitionId = 8, 
     partitionRecordCount = 104256 
    }, 
    partition - 9 = { 
     startKey = 834049.0, 
     endKey = 938304.0, 
     partitionSize = 72, 
     partitionId = 9, 
     partitionRecordCount = 104256 
    } 
} 
Total no. of Partitions: 20 

それは印刷し、最後にログが作成され、その後、制御パーティションが作家になることはありません。 200kレコードでは苦労していたので、接続プールのサイズを増やして問題を修正しましたが、2百万行には達しませんでした。

エラーはありません。ただそれだけでハングします。

+0

20パーティションの場合は、あなたはアプリをプロファイリングしましたか?それは何にぶら下がっているのですか?私は、アプリケーションが停止しているように見える原因となった多数のパーティションを使用しているときに、ステップ実行がジョブリポジトリにどのように格納されていたかを知っていました。しかし、最近のバージョンでは修正されています... –

+0

@MichaelMinella、プロファイリングは行っていませんが、パーティションは20より前と後で、私はそれらを5に減らしました。いくつかのファイルがあり、「通信リンク障害」エラーが発生してハングアップしたり、いつかブレークしたりします。このエラーは少ないデータで決して来ることはありません。 – ViS

+0

それは働いて、パーティションクエリが間違っていた、プラス、ファイルの書き込みはスレッド化されていませんでした。 – ViS

答えて

0

これはdbに関連する可能性があります。アプリケーションが書き込み資格情報でdbにアクセスできるかどうかを調べることができます。パーティショニングが行われ、実際の処理が中断されたこの種の問題に気付きました。トラブルシューティングの後、dbに書き込むことができないことに気付きました。 dbが修正されると、正常に動作しました。

関連する問題