1.什么是Elasticsearch?
Elasticsearch是基于JSON的分布式搜索和分析引擎,速度很快.
- 特点
- 分布式,无需人工搭集群(solr就需要人为配置,使用Zookeeper作为注册中心)
- Restful风格,一切API都遵循Rest原则,容易上手
- 近实时搜索,数据更新在Elasticsearch中几乎是完全同步的
2.安装和配置(跟jdk有对应版本)
- 1.useradd MyElasticsearch 用户
- 2.上传elasticsearch压缩包到home/MyElasticsearch下
- 3.elasticsearch不能用root用户启动,创建data和logs目录在elasticsearch目录下
- 4.所以要改变elasticsearch的所属用户(-R全局改变)
chowm MyElasticsearch:MyElasticsearch elasticsearch-x.x.x/ -R
- 5.将elasticsearch-x.x.x文件名改位elasticsearch
- 6.改配置
1.cd config/
2.vim jvm.options //改虚拟机
-Xms256m
-Xmx256m
3.vim elasticsearch.yml //运行时的文件 (里面配置注意格式不然报错必须 X: X 冒号后面有空格其他地方不能有)
path.data: /home/MyElasticsearch/elasticsearch/data //数据目录
path.logs: /home/MyElasticsearch/elasticsearch/logs //日志目录
network.host: 0.0.0.0 //任意地址访问
//上面的都是放行,底下是添加
bootstrap.system_call_filter: false
- 7.切换用户和启动
su - MyElasticsearch
cd bin
./elasticsearch
启动后有可能根据你的服务器会报错,然后查错修改
启动报错修改博客
- 8.改错完sysctl -p 配置生效,然后重启服务器,切换用户启动
- 9.端口
- 9300:集群节点间通信接口,接收tcp协议
- 9200:客户端访问接口,接受Http协议
-10.配置开机自启
1.su - root //切换用户至root
2.vim /etc/init.d/elasticsearch //编辑elasticsearch文件
#!/bin/sh
#chkconfig: 2345 80 05
#description: elasticsearch
#author: taft
export JAVA_HOME=/home/leyou/jdk1.8.0_144 //根据自己更改
export JAVA_BIN=/home/leyou/jdk1.8.0_144/bin //根据自己更改
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
case "$1" in
start)
su leyou<<!
cd /home/leyou/elasticsearch
./bin/elasticsearch -d
!
echo "elasticsearch startup"
;;
stop)
es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
kill -9 $es_pid
echo "elasticsearch stopped"
;;
restart)
es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
kill -9 $es_pid
echo "elasticsearch stopped"
su leyou<<!
cd /home/leyou/elasticsearch
./bin/elasticsearch -d
!
echo "elasticsearch startup"
;;
*)
echo "start|stop|restart"
;;
esac
exit $?
3.chmod +x /etc/init.d/elasticsearch //修改文件权限
4.chkconfig --add /etc/init.d/elasticsearch //添加开机自启动
以上脚本的JAVA_HOME以及elasticsearch_home如果不同请替换,其他无需关注