我有大量数据,并将其从teradata导入到hdfs。这样做时,通常假脱机空间不足,因此作业失败。这有什么解决方案吗?可以根据数据大小动态分配假脱机空间吗?或者我们可以将sqoop导入的数据加载到临时缓冲区中,然后将其写入hdfs?
答案 0 :(得分:1)
如果您的SPOOL用完了,可能是以下任何一种情况:
查询编写错误(即无意识的CROSS JOIN)
对您的查询进行EXPLAIN并检查产品联接或看起来需要很长时间的任何内容
效率低下的查询计划
运行一个EXPLAIN,看看是否有任何长估计。此外,您可以尝试DIAGNOSTIC HELPSTATS ON FOR SESSION
。当您启用此标志时,无论何时运行EXPLAIN,底部都会收到一堆建议的统计信息。其中一些建议可能有用
大量的数据
你在这里做的不多。也许尝试分批进行导入。
此外,您还可以查看运行查询的用户的MaxSpool参数。您可以尝试增加MaxSpool值以查看是否有帮助。请记住,可用的实际线轴将受未分配的PERM空间量的限制。