Sel*_*wwa 6 java hadoop hdfs google-cloud-storage google-cloud-dataproc
在我的 Java 应用程序中,我有一个文件系统层的实现,其中我的文件类是 Hadoop 文件系统方法的包装器。我正在从hadoop3-1.9.17升级到hadoop3-2.2.8,并且我正在使用新版本的阴影 jar 。
我的 File 类具有写入、读取等方法
class File {
private String path;
private FileSystem fs;
}
Run Code Online (Sandbox Code Playgroud)
这是我的 write 方法的实现方式
@Override
public OutputStream write(boolean overwriteIfExists) throws IOException {
return fs.create(path, overwriteIfExists);
}
Run Code Online (Sandbox Code Playgroud)
还有我的阅读方法:
@Override
public InputStream read() throws IOException {
return fs.open(path);
}
Run Code Online (Sandbox Code Playgroud)
我有一个性能测试用例,我在上面的文件系统实现上运行,它使用org.apache.hadoop.fs.FileSystem测试运行创建许多线程,每个线程创建一个具有特定路径(即 gs://some-bucket/objectX)的 File 类实例,并且每个线程运行相同的操作,读取、重命名、检查存在等。
我在两个版本的 Hadoop 连接器上运行了多次相同的测试,新的 [2.2.8] 显示整体执行时间较慢(几乎是旧连接器时间的 2 倍)。
以下是使用每个连接器版本时每个操作的平均执行时间的比较:
operation, hadoop3-1.9.17, hadoop3-2.2.8
READ 4542.71, 10171.26, (X2 old)
RENAME 1347.75, 4483.27, (X4 old)
EXISTS 47.23, 1538.74, (X50 old)
CREATE 570.1, 1539.81, (X3 old)
Run Code Online (Sandbox Code Playgroud)
我已经检查了这个github 问题并尝试按照建议使用配置/参数微调性能,但未能找到任何改进。
是否有任何参数配置指南可以改善上述操作时间?
或者这个性能问题可能是由于我的类路径 jar 中的某些不兼容造成的?即使我使用的是阴影罐子,其他罐子会干扰吗?
这是我的类路径中的 jar 列表:
| 归档时间: |
|
| 查看次数: |
289 次 |
| 最近记录: |