如果在CentOS的Elasticsearch中出现“内存不足”错误的话
在使用CentOS运行Elasticsearch时,我遇到了与Java软件包相关的问题,因此做了一些记录。
-
- CentOS 6.5 x86_64
- Elasticsearch 1.2.3 (rpm)
安装并启动Elasticsearch → 失败
从rpm到。
$ sudo yum install elastic search
试图启动。
$ sudo service elasticsearch start
Starting elasticsearch: [ OK ]
Can't start up: not enough memory
不仅出现了”not enough memory”的错误导致程序崩溃,还可能由于其他原因,本次出现的问题是由于Java代码不正确。
检查和更改Java包
$ rpm -qa | grep java
java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64
$ java -version
java version "1.5.0"
gij (GNU libgcj) version 4.4.7 20120313 (Red Hat 4.4.7-4)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
据说,是GNU制作的Java引起了这个问题。
也有一些资源指出需要使用Oracle出品的Java(JRE),但似乎使用openjdk也没问题。
$ sudo yum install java-1.7.0-openjdk
$ java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
Elasticsearch启动→成功
尝试重新启动Elasticsearch。
$ sudo service elasticsearch start
Starting elasticsearch: [ OK ]
连接确认。
$ curl -X GET http://localhost:9200/
{
"status" : 200,
"name" : "Elias Bogan",
"version" : {
"number" : "1.2.3",
"build_hash" : "4596e81285d3c1a1609c8382b1e804115ef610fb",
"build_timestamp" : "2014-07-23T13:16:05Z",
"build_snapshot" : false,
"lucene_version" : "4.8"
},
"tagline" : "You Know, for Search"
}
我没有做任何事情。