我正在尝试更改在应用程序中处理的方法数据。首先从数据库接收数据并将其存储在消息队列中。我希望数据直接放在hdfs中。我不希望数据写入文件并移动到hdfs。从HDFS我将处理数据并将结果放入hdfs。我可以从Java程序中将数据写入HDFS吗?而不是给hdfs提供copy命令?
答案 0 :(得分:0)
为什么你的方法不可行,有几个原因。
将每条消息写入hdfs将是一项代价高昂的操作。
您无法直接向hdfs写入消息,必须先将其写入文件,然后将其放入hdfs。
方法2,会在hdfs中生成大量小型文件,增加了名称节点的负担,以跟踪该文件的每个块。
我建议,设置一个消息队列的阈值,一旦达到该阈值,将所有消息移动到文件然后移动到hdfs。
答案 1 :(得分:0)
根据您当前的设置,您有几个选项。
选项2和3似乎不是您正在寻找的,但可能是妥协。