3

\remote\location のようなリモート ドライブに大量 (200k 以上) の PDF ファイルがあります。そのディレクトリからすべてのファイル名を読み取り、ファイル名をデータベースに挿入する必要があります。

「ファイル名の取得」ステップを試しました。ただし、ファイル名をロードしておらず、変換がすぐに停止しています。
同じリモートディレクトリにあるがサブディレクトリにある少数のレコードで試しました。それは正常に動作しています。
ただし、すべてのファイル(サブディレクトリを含む)を試してみると、クラッシュしています。メモリが不足しています。 (Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space))

1000 ファイルごとに 1 回処理する方法はありますか?

4

2 に答える 2

2

メモリが不足しています。Spoon.sh ファイルを編集して、この行を検索します。

PENTAHO_DI_JAVA_OPTIONS="-Xmx512m -XX:MaxPermSize=512m"

4 GB のメモリが利用可能な場合は、2 GB を設定できます (それはあなた次第です)。

PENTAHO_DI_JAVA_OPTIONS="-Xmx2048m -XX:MaxPermSize=1024m"

スプーンを再起動して、もう一度やり直してください。

于 2012-12-06T16:16:38.650 に答える
0

Kettle は非常にメモリを消費します。たとえば、わずか 250,000 レコードのファイルに対して比較的長く複雑なプロセスを実行するには、通常 8 GB が必要です。そのため、キッチンや鍋を動かす前に、常にJAVAMAXMEM適切な高さに設定します。MB単位で設定するので、4GBの場合は設定します

JAVAMAXMEM=4096 kitchen.sh ...
于 2012-12-07T15:55:38.970 に答える