php网站分类目录源码/搜索引擎营销的内容和层次有哪些
hbash shell连接实例报错
- 方法一 取消使用
- 方法二 忽略使用
- 方法三 替代使用
在使用hbash shell去连接hbash实例的时候出现以下报错,因为无法识别UseConcMarkSweepGC参数,导致JVM无法启动。
[root@node bin]# ./hbase shell
Unrecognized VM option 'UseConcMarkSweepGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
UseConcMarkSweepGC为基于标记清除算法实现的多线程老年代垃圾回收器。CMS为响应时间优先的垃圾回收器,适合于应用服务器,如网络游戏,电商等和电信领域的应用。
针对这种情况提供两种思路方法,第一,我不用这个东西不就行了?第二,我忽略这种东西也可以。第三,我用其他替代的方法怎么样?
方法一 取消使用
下来我就在文件中先找这个参数是在哪儿设置的,于是先找设置文件,但翻了两个,没有看见,那就简单点,直接搜素
[root@node hbase-2.x]# grep -r "UseConcMarkSweepGC" *
conf/hbase-env.cmd:set HBASE_OPTS=%HBASE_OPTS% "-XX:+UseConcMarkSweepGC" "-Djava.net.preferIPv4Stack=true"
conf/hbase-env.sh:export HBASE_OPTS="$HBASE_OPTS -XX:+UseConcMarkSweepGC"
找到这个配置后,直接注释掉就可以了。
方法二 忽略使用
这种方法就是添加一个参数,忽略识别不了的参数即可,IgnoreUnrecognizedVMOptions
也是在上面那个后面添加这个参数就可以,添加完成后如下:
export HBASE_OPTS="$HBASE_OPTS -XX:+UseConcMarkSweepGC -XX:+IgnoreUnrecognizedVMOptions"
其实这种方法当下看起来是比较鸡肋的,看着两个参数比较前后矛盾,但试想如果这个地方有多个参数呢?不晓得哪个参数不会被识别呢?在后面添加一个忽略是不是就可以充分解决呢?
方法三 替代使用
他不是想用CMS吗?但是不行。那有没有什么好的方案代替呢?有。我用UseSerialGC去替代。还是hbase-env.sh中,添加:
export HBASE_OPTS="$HBASE_OPTS -XX:+UseSerialGC"
经测试,以上三种方法都可以。