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
来拉日志…”。