Skip to main content

ListHDFS

描述:

从HDFS中读取文件列表。每次获取列表,具有最新时间戳的文件将被排除,将在下一次执行时获取。这样做是为了确保我们不会遗漏任何文件,或者在具有相同时间戳的文件在处理器的一次执行之前和之后立即修改的情况下,不会产生重复。 针对每个从HDFS中读取的文件列表,组件将创建一个数据流输出并配合FetchHDFS组件使用。该组件被设计成只运行在主节点上。如果主节点改变,新的主节点将从上个节点结束的位置开始而避免重复数据。 不同于GetHDFS组件,该组件不删除原文件

标签:

hadoop, HDFS, get, list, ingest, source, filesystem, 获取, 列表

参数:

如下列表中,必填参数则标识为加粗. 其他未加粗参数,则表示为可选参数。表中同时提到参数默认值设置, 并且 参数还支持 表达式语言.

名字默认值允许值列表描述
Hadoop配置指定由逗号分隔符分隔的多个Hadoop配置文件。如果不设置,则Hadoop将搜索类路径(classpath)查找'core-site.xml' 和 'hdfs-site.xml'文件,或还原为默认配置。 为了使用 swebhdfs, 可查看 '高级设置' 的 PutHDFS 文档

支持表达式语言 (仅支持变量)
Kerberos证书服务控制器服务API:
KerberosCredentialsService
实现:
KeytabCredentialsService
指定用于Kerberos授权的证书服务配置
Kerberos Principal指定用于认证的Kerberos principal。 需要设置在 orchsym.properties 配置文件中设置 orchsym.kerberos.krb5.file

支持表达式语言 (仅支持变量)
Kerberos Keytab指定用于关联Principal认证的Kerberos keytab。 需要设置在 orchsym.properties 配置文件中设置 orchsym.kerberos.krb5.file

支持表达式语言 (仅支持变量)
Kerberos重新登录时长4 hours尝试Kerberos重新登录的时长。注:该参数以被弃用,并组件执行没有影响。现在重新登录将自动发生

支持表达式语言 (仅支持变量)
额外类路径指定将添加到类路径的并以逗号分隔的多个文件或目录。 当指定目录时,所有目录下的文件将被添加到类路径中,但并不迭代包含子目录中的文件
缓存服务控制器服务API:
DistributedMapCacheClient
实现:
HBase_1_1_2_ClientMapCacheService
CouchbaseMapCacheClient
DistributedMapCacheClientService
RedisDistributedMapCacheClientService
指定用于管理数据读取状态的的服务配置,为了新节点可以重新开始而避免重复数据
目录指定读取文件的HDFS目录

支持表达式语言 (仅支持变量)
递归子目录
- 是
- 否
决定是否递归读取子目录中的文件
文件过滤\..*指定文件的Java正则表达式过滤设置。如果设置,仅匹配的文件将被读取,否则读取所有文件
最晚时间间隔指定读取文件的修改时间小于当前平台时间的时间间隔,任何比该时间间隔新的文件将被忽略。支持 纳秒ns, 毫秒ms, 秒s(sec), 分钟m(mins), 小时h(hour/hours), 天d(day/days), 周w(week/weeks)。比如2小时前,设置为2 h,或2 hours
最早时间间隔指定读取文件的修改时间大于当前平台时间的时间间隔,任何比该时间间隔旧的文件将被忽略。最小值为 100ms。支持 纳秒ns, 毫秒ms, 秒s(sec), 分钟m(mins), 小时h(hour/hours), 天d(day/days), 周w(week/weeks)。比如2小时前,设置为1 d,或1 day。

连线:

名字描述
success所有成功读取到的文件数据将输出到此连线

读取属性:

未提供。

写入属性:

名字描述
filename读取的HDFS文件名
pathHDFS中的相对路径,比如,《目录》参数设置为/tmp,则从/tmp目录读取文件的该路径属性为"./". 如果选择《递归子目录》,且文件的路径为/tmp/abc/1/2/3,则该路径属性为"abc/1/2/3".
hdfs.owner在HDFS中的拥有该对象的用户名
hdfs.group在HDFS中的拥有该对象的用户组
hdfs.lastModified在HDFS中的对象的修改时间(毫秒数)
hdfs.length文件对象的字节数
hdfs.replication文件的HDFS副本的数量
hdfs.permissions在HDFS中的对象的权限。由3个字符拥有者,3个字符的组和3个字符的其他组构造,比如 rw-rw-r--

状态管理:

范围描述
CLUSTER读取HDFS文件列表之后,列出的所有文件的最新时间戳和传输的所有文件的最新时间戳都被存储。这就可以使组件仅读取新添加的或修改的文件列表,而不需要存储所有的文件名或路径而导致性能问题。状态存储是跨节点的,并只运行在主节点上,如果有新的主节点,将从上次的位置开始处理而避免重复数据

限制:

该组件没有限制

输入流要求:

组件禁止提供输入流。

系统资源考量:

未提供。

参考:

FetchHDFS, GetHDFS, PutHDFS