Spring xd SpringXD:partitionPath和hdfs数据集可以共存吗?
我使用新的Spring xd SpringXD:partitionPath和hdfs数据集可以共存吗?,spring-xd,Spring Xd,我使用新的partitionPath选项定义了几个流,以便文件最终位于Hadoop中的每日目录中: stream create --name XXXX --definition "http --port=8300|hdfs-dataset --format=avro --idleTimeout=100000 --partitionPath=dateFormat('yyyy/MM/dd/')" --deploy stream create --name YYYY --definition "ht
partitionPath
选项定义了几个流,以便文件最终位于Hadoop中的每日目录中:
stream create --name XXXX --definition "http --port=8300|hdfs-dataset --format=avro --idleTimeout=100000 --partitionPath=dateFormat('yyyy/MM/dd/')" --deploy
stream create --name YYYY --definition "http --port=8301|hdfs --idleTimeout=100000 --partitionPath=dateFormat('yyyy/MM/dd/')" --deploy
除了上面的XXXX
之外,所有流都已创建和部署:
17:42:49,102 INFO Deployer server.StreamDeploymentListener - Deploying stream Stream{name='XXXX'}
17:42:50,948 INFO Deployer server.StreamDeploymentListener - Deployment status for stream 'XXXX': DeploymentStatus{state=failed,error(s)=java.lang.IllegalArgumentException: Cannot instantiate 'IntegrationConfigurationInitializer': org.springframework.integration.jmx.config.JmxIntegrationConfigurationInitializer}
17:42:50,951 INFO Deployer server.StreamDeploymentListener - Stream Stream{name='XXXX'} deployment attempt complete
请注意,其数据以avro格式进行处理和存储。和FWIW,其中其他流被放入/xd/
,使用hdfs数据集--format=avro
组合会导致文件进入/xd//string
我用partitionPath
选项重新定义了它,并部署了流
我们这里有bug,还是我做错了什么?hdfs数据集接收器用于将序列化POJO写入hdfs。我们使用kite数据功能来实现这一点,因此请查看该项目以获取更多信息 hdfs和hdfs数据集的分区表达式不同。hdfs数据集遵循Kite SDK语法,您需要指定存储分区值的POJO字段。对于时间戳(长)字段,表达式如下所示:
dateFormat('timestamp','YM','yyyyymm')
其中时间戳是字段的名称,'YM'是添加到分区目录的前缀,如YM201411
,而'yyyyymm'是分区值所需的格式。如果您想要分区的年/月/日目录结构,可以使用year('timestamp')/month('timestamp')/day('timestamp')
。Kite SDK中有更多的内容
对于您的示例,添加分区没有多大意义,因为您要持久化一个简单的字符串值。如果您确实添加了一个处理器来将数据转换为POJO,那么分区就更有意义了,我们在中有一些示例。您的XD拓扑是什么?(单节点或单独的管理员/容器)。容器日志中是否有任何内容?XD的哪个版本?管理节点,四个容器。1.0.0.0发布。刚刚从我们的开发人员那里听说,他们也遇到了这种情况。集装箱在Docker集装箱中;需要找出如何提取日志:-(来自一位同事:“…他应该能够做
docker logs container\u id
来拉日志…”。