2012-12-06 151 views
3

我有一個遠程驅動器(如\遠程\位置)的大量(超過200k)的pdf文件。我必須從該目錄中讀取所有文件名並將文件名插入到數據庫中。Pentaho數據集成「獲取文件名」不加載大的文件列表

我試過「獲取文件名」的一步。但是它不會加載文件名,並且轉換立即停止。
我試過用較少數量的記錄在同一個遠程目錄中,但在一個子目錄中。它工作正常。
但是,當我嘗試所有文件(包括子目錄)它崩潰。出現內存不足的情況。 (Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space))

有沒有一種方法可以處理每個1000個文件一次?

回答

2

您用完了內存。編輯spoon.sh文件並搜索這一行。

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

,如果你有一個可用,您可以設置2GB 4GB內存,(這是由你)。

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

重新啓動你的勺子,然後再試一次。

+0

什麼都大小我給它超過1024米然後它給我的不能夠創建虛擬機的錯誤,所以我能爲此做什麼? –

+0

buy more RAM; D – jipipayo

+0

mine是8 GB ... –

0

水壺非常飢餓。例如,我通常需要8 GB才能對250,000條記錄的文件運行一個相對較長和複雜的過程。所以在我運行廚房或平底鍋之前,我總是將JAVAMAXMEM設置得適當高。您可以設置它以MB爲單位,因此對於4 GB您設定了

JAVAMAXMEM=4096 kitchen.sh ... 
+0

這不是確切的內存問題。有大量的文件。如果我不得不增加內存,那麼我需要放100GB。所以,我想運行一個循環(一次有1000個文件)。請在這裏建議我... – vissu

+0

在這種情況下,我所做的是將我的水壺作業封裝在一個shell腳本中,該作業將單個文件名作爲參數傳遞給作業,然後從參數中的文件名中加載文件。那麼我可以迭代shell腳本中的文件來一次處理一個文件(或者如果你願意的話,一次處理多個文件)。 –

相關問題