gpt4 book ai didi

hadoop - 测量数据节点的吞吐量

转载 作者:可可西里 更新时间:2023-11-01 14:20:05 24 4
gpt4 key购买 nike

我想通过测量每个读/写操作所花费的时间来测量每个数据节点的吞吐量。通读数百万个函数并找出发生这种情况的地方是非常令人困惑的。有人可以列出读取/写入数据 block 时进行的一系列调用吗?我正在使用 1.0.1 版。或者,如果已经有一个 API 可以在数据节点上对此进行测量,我可以使用该信息。

最佳答案

要研究测量吞吐量的重要类是用于写入的 FSDataOutputStream 和用于读取的 FSDataInputStream

文件读取:节点在读取文件时做的第一件事是调用 FileSystem 对象上的 open()。此时,您知道该节点将很快开始读取,您可以在此调用成功返回后放置代码以准备您的测量。在 HDFS 上调用 open() 实例化一个 DistributedFileSystem,它与 NameNode 通信以收集 block 位置(根据调用节点的邻近性排序)。最后,DistributedFileSystem 对象返回 FSDataInputStream(“看到”读取文件),后者又包装 DFSInputStream(“看到”读取 block ,处理失败).您的测量范围将在 FSDataInputStream 上的 read()close() 调用范围内。

文件写入:节点将在FileSystem 上调用create()。此时会进行各种检查,包括文件权限、可用性等,但在成功完成后,它会返回一个包装了 DFSOutputStreamFSDataOutputStream 对象。相同的概念适用于一个看到连续写入而另一个处理复制因子的一致性(即一次写入 = 三次写入)和失败的情况。与读取类似,您的测量范围将在 FSDataInputStream 上的 write()close() 调用范围内。

为了对集群中的所有节点全局执行此操作,您需要覆盖这些方法,作为您在集群中共享的 Hadoop 分发的一部分。

关于hadoop - 测量数据节点的吞吐量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16389945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com