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文件名 |
path | HDFS中的相对路径,比如,《目录》参数设置为/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文件列表之后,列出的所有文件的最新时间戳和传输的所有文件的最新时间戳都被存储。这就可以使组件仅读取新添加的或修改的文件列表,而不需要存储所有的文件名或路径而导致性能问题。状态存储是跨节点的,并只运行在主节点上,如果有新的主节点,将从上次的位置开始处理而避免重复数据 |
限制:
该组件没有限制
输入流要求:
组件禁止提供输入流。
系统资源考量:
未提供。