linux中安装运行elasticsearch

按照惯例首先是几个参考链接

安装1 安装2,启动时候的问题1 启动问题2

防火墙命令

【java环境】

es需要安装jdk8的版本,查看linux上是否有jdk及其版本:java -version

jdk的安装和配置这里就不说了。

【elasticsearch下载】

可以使用wget从官网上下载tar包进行安装

简要说一下我的步骤:

cd /data
mkdir elastic
cd elastic
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.13.tar.gz
tar -zxvf elasticsearch-5.6.13.tar.gz

以上命令我把es放在了elastic文件夹下。这里先说一下,es是不能用root用户运行的,所以我这里用的都是一个普通的用户,如果没有mkdir等权限的话,使用sudo命令。

以上下载,解压完成。

【elasticsearch安装】

1更改用户和组

上面说过了es不能再root用户下运行,所以要先给es改变组和用户。这里不要像参考链接里的那样去创建组(groupadd 组名,useradd 用户名),因为那样之后还要去切换到新建的用户,并且还有密码什么的问题。所以直接使用当前的非root用户来改变es的组名和用户名就好

chown -R 非root用户名:非root组名 elasticsearch-5.6.13

2创建存放es数据和日志的目录

mkdir /data/elastic/data
mkdir /data/elastic/logs
cd /data/elastic
chown -R 非root用户名:非root组名 data
chown -R 非root用户名:非root组名 logs

若要修改es数据和日志的存储路径,也需要对对应文件夹授权

新建这两个目录是为了不把这些重要的文件放在es的安装目录里面,这里只是建立了文件夹,并且改变了用户和组,之后还要在elasticsearch.yml配置文件中修改这个path。

3修改es配置文件

先进入es的安装目录,然后编辑es配置文件。

vi config/elasticsearch.yml

可以改变集群的名字,节点的名字,path.data和path.logs,network.host

cluster.name: my-application
node.name: node-1
path.data: /data/elastic/data
path.logs: /data/elastic/logs
network.host: 该机器的ip

这个ip指定之后其他的机器就可以用这个网址访问了,不改的话只有本机的localhost能访问。

4运行es

./bin/elasticsearch
或者后台运行
./bin/elasticsearch -d

没有问题的话就可以访问了。

curl ‘http://配置的ip:9200/'

如果没有修改yml文件中的host,就是127.0.0.1访问。

运行正确,会出现es的名称,版本号等信息。还有一句话“You Know, for Search

5关闭es

两种,前台运行的话,直接ctrl + c就可以了

后台运行的话,找出es的pid,然后杀死进程。

ps -ef | grep elasticsearch
kill -9 pid

【启动时候的问题】

这些问题,是在前台启动的时候,es打印在窗口上可以看到的warning

1 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

每个进程最大同时打开文件数太小

vi /etc/security/limits.conf
在这个文件末尾添加
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
重新使用xshell连接linux就生效了,即用户退出后重新登录生效。可以使用下面的命令查看
ulimit -Hn
ulimit -Sn

2 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

vi /etc/sysctl.conf
增加下面的配置
vm.max_map_count=655360
然后执行以下命令生效
sysctl -p

sysctl -a | grep "vm.max_map_count"命令查看修改是否生效

3 Exception in thread "main" java.nio.file.AccessDeniedException: /usr/local/elasticsearch/elasticsearch-6.2.2-1/config/jvm.options

这个就是当前执行es的用户没有这个文件夹的权限,就是上面说的那句话chown改完就可以了。

4 max number of threads [3818] for user [es] is too low, increase to at least [4096]

最大线程数太少

vi /etc/security/limits.conf
添加以下两行
*               soft    nproc           4096
*               hard    nproc           4096
保存并关闭后
可以使用以下命令查看是否更改生效
ulimit -Hu
ulimit -Su

【使用kibana访问】

可以在windows里面用kibana来访问。访问的地址需要在刚才的netword.host里面配置ip地址。并且和防火墙可能有关。

# 查看防火墙状态
service iptables status  

# 停止防火墙
service iptables stop  

# 启动防火墙
service iptables start  

# 永久关闭防火墙
chkconfig iptables off  

# 永久关闭后重启
chkconfig iptables on  

 

你可能感兴趣的:(elasticsearch,linux)