我正在开发一个涉及使用HDFS存储和Spark进行计算的项目。
我需要将来自传感器的数据实时存储到HDFS中。
例如,我有一个气象站,传感器每5秒产生一次数据(温度压力)。我想知道如何将这些数据实时存储在hdfs中
将大量小文件直接写入HDFS可能会产生一些不良影响,因为它会影响主节点内存使用,并且与批处理相比可能导致处理速度降低。
您的任何传感器每月都会生成500k文件,因此,除非您的传感器数量非常有限,否则我建议您查看消息代理。 Apache Kafka(https://kafka.apache.org/)是众所周知的,已经捆绑在一些Hadoop发行版中。例如,您可以使用它来“分级”数据并以(小型)批次处理它。
最后,如果您需要以实时方式(CEP等)处理传入数据,我建议您关注Spark Streaming(https://spark.apache.org/streaming/)技术。