在Spark中处理大量小数据批处理,并将它们写入HDFS

我目前有一个Hadoop集群设置,可通过Java / Springboot后端访问。后端使用Apache Spark从集群读取数据并进行分析。到目前为止,所有应用程序都将自己的数据写入Hadoop。现在,我必须集成一个数据源,该数据源每30秒生成一次JSON数组(描述物理对象的状态),并将该数据写入hdfs以供以后分析。但是,我还需要Java后端中提供生产数据的最新版本。

我尝试使用后端集成的Apache Spark进行此操作:通过REST调用接收数据,将JSON转换为RDD,然后将它们写入Hadoop,同时保留后端最新数据飞的电话。问题在于,数据大小仅在50到150kb之间,一旦Spark将数据写入hdfs,每批数据都会在Hadoop中成为一个新文件。据我了解,Hadoop中的许多小文件会迅速增加Hadoop群集Namenode的内存使用量,我想避免这种情况。我想避免将所有数据保留在后端内存中,直到达到hdfs块大小为止,因为后端会不时地重新启动,从而丢失了数据。

有没有更好的方法来处理这种情况?

haijun110120 回答:在Spark中处理大量小数据批处理,并将它们写入HDFS

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3143180.html

大家都在问