Pentaho数据集成“;“获取文件名”;没有加载大的文件列表

Pentaho数据集成“;“获取文件名”;没有加载大的文件列表,pentaho,kettle,Pentaho,Kettle,我在一个像\remote\location这样的远程驱动器中有大量(超过200k)的pdf文件。我必须从该目录中读取所有文件名,并将文件名插入数据库 我尝试了“获取文件名”步骤。但是,它不会加载文件名,转换会立即停止。 我尝试过在同一个远程目录中,但在子目录中的记录数量较少。工作正常。 然而,当我尝试所有文件(包括子目录)时,它崩溃了。内存不足(未能执行runnable(java.lang.OutOfMemoryError:java堆空间)) 是否有一种方法可以处理每1000个文件一次?内存不足

我在一个像\remote\location这样的远程驱动器中有大量(超过200k)的pdf文件。我必须从该目录中读取所有文件名,并将文件名插入数据库

我尝试了“获取文件名”步骤。但是,它不会加载文件名,转换会立即停止。
我尝试过在同一个远程目录中,但在子目录中的记录数量较少。工作正常。
然而,当我尝试所有文件(包括子目录)时,它崩溃了。内存不足<代码>(未能执行runnable(java.lang.OutOfMemoryError:java堆空间))


是否有一种方法可以处理每1000个文件一次?

内存不足。编辑spoon.sh文件并搜索此行

PENTAHO_DI_JAVA_OPTIONS=“-Xmx512m-XX:MaxPermSize=512m”

如果你有4gb的可用内存,你可以设置2gb(由你决定)

PENTAHO_DI_JAVA_OPTIONS=“-Xmx2048m-XX:MaxPermSize=1024m”


重新启动勺子,再试一次。

水壶内存非常紧张。例如,我通常需要8GB才能在只有250000条记录的文件上运行一个相对较长且复杂的进程。因此,在运行kitchen或pan之前,我总是将
JAVAMAXMEM
设置得适当高。您以MB为单位进行设置,因此对于4GB

JAVAMAXMEM=4096 kitchen.sh ...

这不是记忆的确切问题。有大量的文件。如果我必须增加内存,那么我需要输入100GB。所以,我想运行一个循环(每次1000个文件)。请就此给我建议…在这种情况下,我所做的是将我的kettle作业包装在一个shell脚本中,该脚本将单个文件名作为参数传递给作业,然后从参数中的文件名加载该文件。然后我可以迭代shell脚本中的文件,一次处理一个文件(或者一次处理多个文件,如果您愿意的话)。我给出的任何大小都超过1024m,那么这就给了我无法创建虚拟机的错误,那么我能做些什么呢?我得到了我的解决方案。。1024是32位java的限制:)