这个
OutOfMemoryError
来自Hive codebase in
CliDriver#processReader(BufferedReader)
.
public int processReader(BufferedReader r) throws IOException {
String line;
StringBuilder qsb = new StringBuilder();
while ((line = r.readLine()) != null) {
// Skipping through comments
if (! line.startsWith("--")) {
qsb.append(line + "\n");
}
}
return (processLine(qsb.toString()));
}
它将从文件中读取的所有行添加到
StringBuilder
然后执行它。这一定意味着您指定的输入文件非常大。是否可以将其拆分为多个较小的文件并分别执行,以减少内存占用?
您提到这是SQL数据库的导入。
Apache Sqoop