单机安装Elasticsearch,这个elastic和solr争夺了 搜索引擎的半壁江山啊,elastic对于用户量大的搜索比solr还是强不少的,elastic本生就是分布式的,不需要依赖zookeeper,而且性能相对于Solr好,但是咋说,他们都是Lucene的框架,都得管Lucene叫爸爸,你说对吧。


这里写图片描述

安装准备

Elastic 需要 Java 8 环境。注意啦啊,是JAVA8
CentOS之Java安装-yellowcong

安装包下载

#官网地址
https://www.elastic.co/downloads/elasticsearch

#z这个是6.0.1版本,(高版本有些,有些东西会和老版本不一样) 
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.1.tar.gz

#俺七牛云的备份下载地址
http://yellowcong.qiniudn.com/elasticsearch-6.0.1.tar.gz

1、新建用户

通过新建用户,来运行elastic

#下载
wget http://yellowcong.qiniudn.com/elasticsearch-6.0.1.tar.gz

#解压
tar -zxvf elasticsearch-6.0.1.tar.gz


#添加用户
adduser yellowcong   

#设定密码
passwd yellowcong

#添加权限
chown -R yellowcong  elasticsearch-6.0.1

#切换用户
su yellowcong 

#查看当前用户
who am i

#启动elasticsearch
./elasticsearch-6.0.1/bin/elasticsearch

添加用户
这里写图片描述

2、配置sysctl.conf

#修改sysctl配置
vim /etc/sysctl.conf

#添加如下配置
vm.max_map_count=262144

#让配置生效
sysctl -p

#查看配置的数目
sysctl -a|grep vm.max_map_count

这里写图片描述

3、配置limits.conf


vim /etc/security/limits.conf

#yellowcong 是用户名
yellowcong  hard    nofile  65536
yellowcong  soft    nofile  65536

#重新登录 yellowcong 账户,查看是否生效
su yellowcong

#查看配置是否生效
ulimit -Hn

4、启动elastci

#启动elastic服务
elasticsearch-6.0.1/bin/elasticsearch

#后台启动
elasticsearch-6.0.1/bin/elasticsearch -d

下面是目录结构,大家都是老油条,一看也大概知道啥意思,
bin 工具
lib 依赖
cofnig 配置
这里写图片描述

启动成功
这里写图片描述

5、配置所有用户访问

#修改配置文件
vim /usr/local/elastic/elasticsearch-6.0.1/config/elasticsearch.yml

#打开注释,配置外网可以访问
#network.host:(这个地方有一个空格)0.0.0.0
network.host: 0.0.0.0

这里写图片描述

6、浏览器访问

#查看外网是否能访问
192.168.100.10:9200

这里写图片描述

问题合集

java.lang.RuntimeException: can not run elasticsearch as root

异常描述为不能以root权限运行Elasticsearch.解决办法是运行时加上参数:

[2017-12-07T09:35:24,448][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:134) ~[elasticsearch-6.0.1.jar:6.0.1]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:121) ~[elasticsearch-6.0.1.jar:6.0.1]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:69) ~[elasticsearch-6.0.1.jar:6.0.1]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) ~[elasticsearch-6.0.1.jar:6.0.1]
        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-6.0.1.jar:6.0.1]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.0.1.jar:6.0.1]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.0.1.jar:6.0.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.0.1.jar:6.0.1]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.0.1.jar:6.0.1]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:322) ~[elasticsearch-6.0.1.jar:6.0.1]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:130) ~[elasticsearch-6.0.1.jar:6.0.1]

这里写图片描述

我看了一下版本,是1.8的
这里写图片描述

解决方案1

通过新建用户,来运行elastic

#添加用户
adduser yellowcong   

#设定密码
passwd yellowcong

#添加权限
chown -R yellowcong  elasticsearch-6.0.1

#切换用户
su yellowcong 

#查看当前用户
who am i

#启动elasticsearch
./elasticsearch-6.0.1/bin/elasticsearch

添加用户
这里写图片描述

换了用户就成功了
这里写图片描述

访问成功
这里写图片描述

切记,不能让root用户执行啊,,通过指定elasticsearch -Des.insecure.allow.root=true,的方式,在6.0.1版本是不可行的
这里写图片描述

解决方案2

修改elasticsearch 的启动文件(通过指定elasticsearch -Des.insecure.allow.root=true,的方式,在6.0.1版本是不可行的)

vim elasticsearch-2.3.5/bin/elasticsearch

#添加设定
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
解决方案3

直接在运行的时候指定 节点信息(通过指定elasticsearch -Des.insecure.allow.root=true,的方式,在6.0.1版本是不可行的

#直接在运行的时候,添加配置
elasticsearch-2.3.5/bin/elasticsearch -Des.insecure.allow.root=true

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

这里写图片描述

#修改sysctl配置
vim /etc/sysctl.conf

#添加如下配置
vm.max_map_count=262144

#让配置生效
sysctl -p

#查看配置的数目
sysctl -a|grep vm.max_map_count

这里写图片描述

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

这里写图片描述


vim /etc/security/limits.conf

#yellowcong 是用户名
yellowcong  hard    nofile  65536
yellowcong  soft    nofile  65536

#重新登录 yellowcong 账户,查看是否生效
su yellowcong

#查看配置是否生效
ulimit -Hn

添加下面配置
这里写图片描述

查看配置是否生效
这里写图片描述

参考文献

http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html
http://blog.csdn.net/u012371450/article/details/51776505
性能比较
https://www.cnblogs.com/chowmin/articles/4629220.html

问题
http://blog.csdn.net/napoay/article/details/53237471
http://blog.csdn.net/mengfei86/article/details/51210093

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐