Hadoop FIWARE Cygnus:文件存在于HDFS中,但无法写入数据

Hadoop FIWARE Cygnus:文件存在于HDFS中,但无法写入数据,hadoop,hdfs,fiware,fiware-cygnus,Hadoop,Hdfs,Fiware,Fiware Cygnus,我使用NGSIHDFSSink通过Cygnus在HDFS上持久化。当收到Orion的第一个通知时,它将创建目录和包含以下数据的正确文件: /user/hdfs/openiot/Lamp_001_Lamp/Lamp_001_Lamp.txt 但是,对于收到的下一个通知,它显示以下错误: 当前终结点出现问题,正在尝试其他终结点。 详细信息:天鹅座。 /user/hdfs/openioLamp/Lamp_001_Lamp.txt文件存在于hdfs中,但可能 不写数据。服务器响应:403禁止 这是我的

我使用NGSIHDFSSink通过Cygnus在HDFS上持久化。当收到Orion的第一个通知时,它将创建目录和包含以下数据的正确文件:

/user/hdfs/openiot/Lamp_001_Lamp/Lamp_001_Lamp.txt
但是,对于收到的下一个通知,它显示以下错误:

当前终结点出现问题,正在尝试其他终结点。 详细信息:天鹅座。 /user/hdfs/openioLamp/Lamp_001_Lamp.txt文件存在于hdfs中,但可能 不写数据。服务器响应:403禁止

这是我的接收器配置:

cygnus-ngsi.sinks.hdfs-sink.type = com.telefonica.iot.cygnus.sinks.NGSIHDFSSink
cygnus-ngsi.sinks.hdfs-sink.channel = hdfs-channel
cygnus-ngsi.sinks.hdfs-sink.enable_encoding = false
cygnus-ngsi.sinks.hdfs-sink.enable_grouping = false
cygnus-ngsi.sinks.hdfs-sink.enable_lowercase = false
cygnus-ngsi.sinks.hdfs-sink.enable_name_mappings = false
cygnus-ngsi.sinks.hdfs-sink.data_model = dm-by-entity
cygnus-ngsi.sinks.hdfs-sink.file_format = json-column
cygnus-ngsi.sinks.hdfs-sink.backend.impl = rest
cygnus-ngsi.sinks.hdfs-sink.backend.max_conns = 500
cygnus-ngsi.sinks.hdfs-sink.backend.max_conns_per_route = 100
cygnus-ngsi.sinks.hdfs-sink.hdfs_host = my_hdfs_ip
cygnus-ngsi.sinks.hdfs-sink.hdfs_port = 50070
cygnus-ngsi.sinks.hdfs-sink.hdfs_username = hdfs
cygnus-ngsi.sinks.hdfs-sink.hdfs_password =
cygnus-ngsi.sinks.hdfs-sink.oauth2_token =
cygnus-ngsi.sinks.hdfs-sink.service_as_namespace = false
cygnus-ngsi.sinks.hdfs-sink.batch_size = 100
cygnus-ngsi.sinks.hdfs-sink.batch_timeout = 30
cygnus-ngsi.sinks.hdfs-sink.batch_ttl = 10
cygnus-ngsi.sinks.hdfs-sink.batch_retry_intervals = 5000
cygnus-ngsi.sinks.hdfs-sink.hive = false
cygnus-ngsi.sinks.hdfs-sink.krb5_auth = false
有什么想法吗

非常感谢

根据,Cygnus使用

我不确定,但可能WebHDFS将“创建”和“写入”视为不同的权限,因此您的WebHDFS实例被配置为只允许前者,而不允许后者。在这种情况下,WebHDFS服务器上的权限将出现问题

我建议在不使用Cygnus的情况下尝试WebHDFS本身(即使用Postman或curl),以确保WebHDFS正常工作。

根据,Cygnus使用来编写HDFS

我不确定,但可能WebHDFS将“创建”和“写入”视为不同的权限,因此您的WebHDFS实例被配置为只允许前者,而不允许后者。在这种情况下,WebHDFS服务器上的权限将出现问题


我建议在不使用Cygnus的情况下尝试WebHDFS本身(即使用Postman或curl),以确保WebHDFS正常工作。

了解您如何订阅以及向Orion发送的数据会很有趣,因为你的问题谈到:/user/hdfs/openioLamp/Lamp_001_Lamp.txt和/user/hdfs/openiot/Lamp_001_Lamp/Lamp_001_Lamp.txt文件没有权限,这显然是不同的。@jicarretero我部署了hdfs docker,问题得到了解决。由于缺乏资源,我尝试使用单节点HDFS,但似乎效果不佳。您指出的事实可能是复制/粘贴错误。我已经删除了这个测试环境。很抱歉,我无法检查此项。了解您的订阅方式以及发送给Orion的数据将非常有趣,因为你的问题谈到:/user/hdfs/openioLamp/Lamp_001_Lamp.txt和/user/hdfs/openiot/Lamp_001_Lamp/Lamp_001_Lamp.txt文件没有权限,这显然是不同的。@jicarretero我部署了hdfs docker,问题得到了解决。由于缺乏资源,我尝试使用单节点HDFS,但似乎效果不佳。您指出的事实可能是复制/粘贴错误。我已经删除了这个测试环境。对不起,我不能查这个。