我在ubuntu系统上安装过一次ElasticSearch,流畅的不行,没想到Centos系统会出现那么多问题,记录一下解决过程(系统重装了好几次,所以从第一步开始写,尽量全点):
JDK安装
- 创建目录
mkdir jdk(在/usr/local/文件夹下) - 将压缩包拷贝到当前目录解压(目前JDK下载需要Oracle账号,所以我是找的资源利用FTP传过来的)
- 解压文件
tar -vxf jdk-8u11-linux-x64.tar.gz(根据自己的版本定) - 同样将文件移到jdk目录下
- 配置环境变量,操作
/etc/profile文件,添加如下内容(根据自己安装目录决定参数)export JAVA_HOME=/usr/local/jdk export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH} - 使配置文件生效
source /etc/profile - 简单验证一下
javac、java -version(基本不会出现问题,不截图了)
下载安装包
- 创建目录
mkdir search(在/usr/local/文件夹下) - 下载安装包
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.16.tar.gz
此版本适合JDK1.8,如果更换版本请自行调整 - 解压文件
tar -vxf elasticsearch-5.6.16-linux-x86_64.tar.gz - 赘述:鉴于个人习惯,我会将解压出来的文件拷贝到
search文件夹下,然后删除压缩包以及解压文件,命令:cp -r elasticsearch-5.6.16/* /usr/local/search/
理论上到这里就可以执行sh ./bin/elasticsearch(在search文件夹下执行)命令启动ElasticSearch了,但是目前是root用户,而为了安全ElasticSearch不支持root用户启动!!所以我们需要创建新用户。
创建用户并启动
-
使用命令强行使用root用户(不建议)现在好像不支持了。
sh ./bin/elasticsearch -Des.insecure.allow.root=true -
创建新的用户
添加用户:adduser myes
设置密码:passwd myes
授权文件操作:chown -R myes /usr/local/search -
以
myes用户进入search文件夹执行启动命令:sh ./bin/elasticsearch
如果JDK安装按照第一步执行,当前用户并不存在JDK环境,可以执行java -version测试
解决办法(网上有的说修改home下用户下的.bashrc文件,不过我测试之后发现更换用户之后失效,查了一下):
直接操作/etc/bashrc文件,有的系统是bash.bashrcexport JAVA_HOME=/usr/local/jdk export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:$HOME/.local/bin:$HOME/bin:${JAVA_PATH}使配置生效:
source bashrc
这种时候无论你怎么更换用户JDK环境都存在!! -
修改配置文件
/config/elasticsearch.yml,添加如下设置
network.host: 0.0.0.0
需要将服务器9200端口入站规则打开,支持外网访问 -
以
myes用户进入search文件夹执行启动命令:sh ./bin/elasticsearch,在浏览器输入IP:port

此时不是后台运行,服务器退出之后即不可访问(ElasticSearch安装成功)
安装Head插件
- 下载安装包
wget https://github.com/mobz/elasticsearch-head/archive/master.zip - 解压:
unzip master.zip

- 进入
elasticsearch-head-master文件夹,执行npm install(这里需要node环境,先进入下一步) - 如果
node环境安装成功但是npm install失败或者一直在Receiving即退出,执行npm install -g cnpm --registry=https://registry.npm.taobao.org


- 配置
/search/config/elasticsearch.yml文件,添加如下内容:http.cors.enabled: true http.cors.allow-origin: "*" - 配置
master/Gruntfile.js文件:server: { options: { hostname: '0.0.0.0', port: 9100, base: '.', keepalive: true } }head和elasticsearch是两个进程,需要处理跨域访问的问题,服务器需要打开9100端口(上述两个配置的作用)
到此,所有配置完成
安装Node
安装head插件需要使用npm,需要安装node环境
-
/usr/local文件夹下创建node文件夹:mkdir node -
下载安装包
wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.gz -
解压文件:
tar -zxvf node-v10.16.3-linux-x64.tar.gz(一样拷贝到node下) -
查看版本:
./bin/node -v -
创建软连接:
ln -s /usr/node/bin/npm /usr/local/bin/npm ln -s /usr/node/bin/node /usr/local/bin/node -
现在
root用户在任何地方都可以查看node版本,但是myes用户无当前环境,设置环境变量(修改/etc/bashrc文件)export NODE_HOME=/usr/local/node export NODE_PATH=${NODE_HOME}/lib/node_modules export JAVA_HOME=/usr/local/jdk export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH}:${NODE_HOME}/bin/注意
${NODE_HOME}/bin/最后面的/一定要有!!!!! -
安装
cnpm(某些情况需要使用cnpm)
npm install -g cnpm --registry=https://registry.npm.taobao.org -
安装
gruntnpm install -g grunt npm install -g grunt-cli --registry=https://registry.npm.taobao.org --no-proxy检验:
node -vnpm -vgrunt -version
如果上述node的环境变量配置有问题的话grunt -version会报错,这里并不是安装失败的问题!
启动服务
- 启动
elasticsearch
search文件夹下执行:sh ./bin/elasticsearch -d(后台运行) - 进入
master文件夹执行npm run start - 浏览器访问:
http://139.155.145.88:9100/如下所示安装并启动成功(IP换成自己的)

常见错误处理
参数配置
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
- 第一个错误,修改
/etc/security/limits.conf配置文件:* soft nproc 65536 * hard nproc 65536 - 第二个错误,修改
/etc/sysctl.conf文件
vm.max_map_count=262144
保存退出,执行以下命令使配置生效(此命令需要在root权限下执行)
sysctl -p
内存问题

-
修改配置文件
config/jvm.options
vim jvm.options -
将内存修改为256M,测试使用,能够连通即可
-Xms256m -Xmx256m
本文详细记录了在Centos系统中安装ElasticSearch的全过程,包括JDK、Node.js环境配置,解决root用户启动问题,配置网络访问,安装及配置Head插件等关键步骤。
1088

被折叠的 条评论
为什么被折叠?



