我在我的 ec2 文件中的 mapred-site.xml 中有以下设置,我的 Hadoop 正在工作:
<property>
<name>mapreduce.map.memory.mb</name>
<value>2048</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>4096</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx1024m</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx3072m</value>
</property>
使用上述属性集,Sqoop 可以完美运行,但 Hive Tez 不能。所以我将其更改为以下内容:
<property>
<name>mapreduce.map.memory.mb</name>
<value>4096</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>8192</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx3072m</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx6144m</value>
</property>
由于 Hive Tez 需要更多内存,Sqoop 停止工作,并且 Hive Tez 给了我如下错误:
Diagnostic Messages for this Task:
Container [pid=51661,containerID=container_e50_1493005386967_25486_01_000243] is running beyond virtual memory limits. Current usage: 274 MB of 1 GB physical memory used; 2.7 GB of 2.1 GB virtual memory used. Killing container
建议我如何使 Sqoop 和 Hive tez 都工作。