有时会出现java堆空间错误,然后增加jvmram限制(xmx值)。我有两个问题:
1) 更改xmx值后,如何知道集群中应该有多少Map器和还原器?我的意思是,如果我有一个32g内存的节点,比如说xmx值为5g,这是否意味着我只能使用6个Map和减速机(5*6=30g)?
2) 为什么会这样?我试着读了这个论坛,但没有找到答案。如果我对读取大量数据的hive进行查询,我就知道作业设置以及从mfs读取数据的Map器的数量。每一块数据都被Map到内存。为什么我需要增加xmx,hive不能把数据分割成更多的Map器吗?假设我有1000个Map器的工作,我得到了堆空间问题,难道hive不能给我2000个Map器,它将修复这个问题(每个Map将占用更少的ram,因为它使用更少的数据)?
谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!