首先看看tomcat与weblogic关于JVM的段子:
(1)tomcat
Tomcat默认可以使用的内存为128MB,Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下设置:
JAVA_OPTS=’-Xms[初始化内存大小]-Xmx[可以使用的最大内存]’
参数描述-XmsJVM初始化堆的大小
-XmxJVM堆的最大值,一般说来,你应该使用物理内存的80%作为堆大小。
例如:JAVA_OPTS=”-Xms256-Xmx512″
(2)weblogic
a)编辑WeblogicServer启动脚本文件;
BEA_HOME\user_projects\domains\domain-name\startWebLogic.cmd(startWebLogic.shonUnix)
BEA_HOME\user_projects\domains\domain-name\startManagedWebLogic.cmd(startManagedWebLogic.shonUnix)–这个是做集群的时候用的
b)编辑setJAVA_OPTIONS命令,如:setJAVA_OPTIONS=-Xms256m–Xmx256m;
(在UNIX下把MEM_ARGS=”-Xms1024m-Xmx1024m-Xmn128m”加到上述两个.sh文件中即可)
c)保存,重启即可。
注:在WebLogic中,为了获得更好的性能,BEA公司推荐最小Java堆等于最大Java堆。
----------------------------START---------------------------------------------------------
Could not create the Java virtual machine.
Invalid maximum heap size: -Xmx4096m
The specified size exceeds the maximum representable size.
----------------------------END----------------------------------------------------------
普通的解决办法是:
修改hive-0.6.0\bin\ext\util\execHiveCmd.sh文件如下
#HADOOP_HEAPSIZE=4096
HADOOP_HEAPSIZE=128
另外一种解决办法:设置环境变量ulimit -n 4096即可解決。
结果,当我仔细查看问题的时候,发现The specified size exceeds the maximum representable size.还有另外一种可能:如果是安装的JDK版本为32位,4g超过了JDK所支持的最大内存,也同样报该问题。
通过 java -version 查看JDK的版本,
显示:当前工作目录下安装有一个32位的jdk(sun jdk),64位的jdk可以看到 64-bit的字符串,但32位是没有相关的信息的,真是如此,问题得以解决。
vi 此文件/etc/profile
echo $JAVA_HOME