hadoop—在hdfs中为所有节点复制数据是否更快?

8gsdolmq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(346)

如果我有6个数据节点,那么将复制设置为6以便所有数据都跨我的所有节点复制,这样集群就可以拆分查询(比如在hive中),而不必移动数据,这会更快吗?我认为,如果您有一个3的复制,并将一个300gb的文件放入hdfs中,它会将它拆分到3个数据节点上,然后当6个节点需要用于查询时,它必须将数据移动到其他3个不存在数据的节点上,从而导致响应变慢。。准确吗?

wyyhbhjk

wyyhbhjk1#

我明白你的意思,你说的是数据位置。一般来说,数据局部性可以减少运行时间,因为它可以节省阻塞网络传输的时间。但实际上,如果不打开“hdfs short-circuit local reads”(默认为关闭,请访问此处),maptask也会通过tcp协议读取块,这意味着通过网络,即使block和maptask都在同一个节点上。
最近,我优化了hadoop和hdfs,用ssd代替hdd磁盘,但是效果不好,时间也不短,因为磁盘不是瓶颈,网络负载也不重。根据结果,我们得出结论,cpu是非常沉重的。如果您想清楚地了解hadoop集群的情况,我建议您使用ganglia来监控集群,它可以帮助您分析集群瓶颈,请看这里。
最后,Hadoop是一个非常庞大而复杂的系统,磁盘性能、CPU性能、网络带宽、参数值等也有很多因素需要考虑。如果你想节省时间,你有很多工作要做,不仅仅是复制因素。

相关问题