我有spark dataframe,只有两列,比如 { Key| Value}
. 这个Dataframe有1000万条记录。我使用spark的批量加载方法将其插入hbase表(有10个预分割区域)。这样可以正常工作并成功加载数据。当我检查size表时,它是151gb(453gb,3xhadoop复制)。我对该表进行了主要的压缩,表大小减小到35gb(使用3倍复制时为105gb)。
我正在尝试在不同的集群中运行相同的代码和相同的数据。但是在这里我的命名空间有2tb的配额限制。我的进程在将hfiles加载到hbase时失败,说它超出了配额限制。
我想知道spark是否在批量加载期间创建的数据文件比所需的151gb多得多?如果是这样,如何避免这种情况?还是有更好的方法来加载相同的?
问题是,如果实际数据在151gb左右(之前 major_compact
),那么为什么2tb的大小还不够呢?
暂无答案!
目前还没有任何答案,快来回答吧!