目前,我有以下代码。
try
{
FileSystem fs = FileSystem.get(config);
StringBuilder builder=new StringBuilder();
byte[] buffer=new byte[4096];
int bytesRead;
FSDataInputStream in = fs.open(new Path(fname));
while ((bytesRead = in.read(buffer)) > 0)
builder.append(new String(buffer, 0, bytesRead));
in.close();
return builder.toString();
}
catch (IOException ex)
{
ex.printStackTrace();
return "";
}
如您所见,我已经为缓冲区分配了4096个字节。现在,既然hdfs块是64mb,那么分配一个64mb大小的缓冲区会更好吗?如果我的hdfs文件大小大于64mb,那么最有效的方法是什么呢。
1条答案
按热度按时间v1l68za41#
您可以读取hdfs属性值以获得正确的缓冲区大小“dfs.stream buffer size”。