運行時候報異常could only be replicated to 0 nodes instead of minReplication (=1). There are 2 datanode(s) running and no node(s) are excluded in this operation.


運行時候報異常could only be replicated to 0 nodes instead of minReplication (=1).  There are 2 datanode(s) running and no node(s) are excluded in this operation.

解決方法:

1首先看一下dfs.replication的數目是否超過了datanode的數目,應該要小於或者等於datanode的數目。

2更改mapreduce。map.memory.mb的大小,把每個map任務的物理限制提高,代碼如下,reduce同理。

<property> 
<name>mapreduce.map.memory.mb</name> 
<value>1024</value> 
<description>每個Map任務的物理內存限制</description> 
</property> 

yarn.scheduler.minimum-allocation-mb/yarn.scheduler.maximum-allocation-mb

參數解釋:單個可申請的最小/最大內存資源量。比如設置為1024和3072,則運行MapRedce作業時,每個Task最少可申請1024MB內存,最多可申請3072MB內存。

默認值:1024/8192

yarn.scheduler.minimum-allocation-vcores/yarn.scheduler.maximum-allocation-vcores

參數解釋:單個可申請的最小/最大虛擬CPU個數。比如設置為1和4,則運行MapRedce作業時,每個Task最少可申請1個虛擬CPU,最多可申請4個虛擬CPU。什么是虛擬CPU,可閱讀我的這篇文章:“YARN 資源調度器剖析”。

默認值:1/32


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM