疯狂创客圈 Java 高并发【 亿级流量聊天室实战】实战系列 【博客园总入口 】html
架构师成长+面试必备之 高并发基础书籍 【Netty Zookeeper Redis 高并发实战 】java
疯狂创客圈 高并发 环境 视频,陆续上线:node
小视频以及所需工具的百度网盘连接,请参见 疯狂创客圈 高并发社群 博客python
建议须要安装6以上版本,这里使用的版本是6.2.2,能够在ElasticSearch官方网站上下载。因为ElasticSearch官方网站的文档很是的全面,对于初学者解决学习、开发过程当中的实际问题都很是有参考价值,因此,这里列出官网的地址: https://www.elastic.co/linux
why 6.2.2?git
因为截止目前,与spring-data集成的最高版本,是6.2.2, 集成spring-data后,能够使用JPA直接操做ElasticSearch,减小编程的压力。github
1:下载须要安装的ElasticSearch版本,这里为6.2.2面试
ElasticSearch 6.2.2版本的下载地址为spring
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz编程
疯狂创客圈网盘,已经备好,能够直接下载
2:下载须要安装的Kibana版本,须要与ElasticSearch匹配
kibana是Elasticsearch官方提供的工具,可是在实际生产使用过程当中, 可视化作的不足,没有elasticsearch-head全面。kibana官方地址为
https://www.elastic.co/cn/downloads/kibana/
疯狂创客圈网盘,已经备好,能够直接下载
3:下载IK分词器,做为中文分词器
在IK 分词器的github网页地址为:https://github.com/medcl/elasticsearch-analysis-ik。在这个网址上,找到与前面安装的ElasticSearch相互匹配的版本,这里这里版本为6.2.2,下载连接以下:
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.2/elasticsearch-analysis-ik-6.2.2.zip
疯狂创客圈网盘,已经备好,能够直接下载
上传到Linux服务器,建立JDK的安装目录,将jdk压缩包解压到建立的安装目录
mkdir -p /usr/local/elasticsearch-6.2.2 tar -zxvf /usr/local/elasticsearch-6.2.2.tar.gz -C /usr/local/elasticsearch-6.2.2
为了方便后续的使用,和elasticsearch版本的升级,能够为elasticsearch创建一个统一的软链接 /usr/elasticsearch,命令以下:
ln -s /usr/local/elasticsearch-6.2.2/elasticsearch-6.2.2/ /usr/elasticsearch
创建用来存放elasticsearch数据存储目录,命令以下:
mkdir -p /home/elasticsearch/data mkdir -p /home/elasticsearch/log
elasticsearch的配置文件为安装目录下的config/elasticsearch.yml,主要修改的选项为:节点名称、集群名称、日志目录、数据目录等等,修改后的配置文件以下:
vi /usr/elasticsearch/config/elasticsearch.yml
#节点名称 cluster.name: singlenode-cluster #集群名称 node.name: node-1 #数据目录 path.data: /home/elasticsearch/data #日志目录 path.logs: /home/elasticsearch/log #主机地址 network.host: 10.18.3.91 #下面配置为head插件配置,若是要用到head的话 http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE http.cors.allow-headers: "X-Requested-With,Content-Type,Content-Length,X-User"
注意elasticsearch默认是不支持使用root运行的,须要新建专门的用户,用户的名称为es,使用以下命令:
[root@localhost elasticsearch]# useradd es 为es设置密码,使用以下命令: [root@localhost elasticsearch]# passwd es
密码的保密程度要求比较高,新的密码设置为:123!@#qwe
给es用户,授予安装目录、数据目录、日志的所有权限,使用的命令为:
chown -R es:es /usr/local/elasticsearch-6.2.2/ chown -R es:es /home/elasticsearch/data chown -R es:es /home/elasticsearch/log
注意:在使用chown指令修改目录的owner时,须要对原始目录进行修改;若是对软链接进行修改,目录是无效的。
修改 Linux下/etc/security/limits.conf文件设置
vim /etc/security/limits.conf
更改linux的最大文件描述限制要求
添加或修改以下:
* soft nofile 262144 * hard nofile 262144 es soft memlock unlimited es hard memlock unlimited
vi /etc/security/limits.d/90-nproc.conf
更改linux的的最大线程数,添加或修改以下:
* soft nproc unlimited root soft nproc unlimited
更改linux一个进行能拥有的最多的内存区域要求,Linux下/etc/sysctl.conf文件设置
,添加或修改以下:
vi /etc/sysctl.conf
vm.max_map_count = 262144 vm.swappiness = 1
更改linux禁用swapping,:vm.swappiness = 1
启动以前,请切换到es用户,命令以下:
su es /usr/elasticsearch/bin/elasticsearch
若是要后台启动elasticsearch,加上&符号便可,完整的命令为:
/usr/elasticsearch/bin/elasticsearch -d
Elasticsearch 的经常使用的工具大体有两个:一个是elasticsearch-head,另一个是kibana。elasticsearch-head 是一个开源项目,官方地址为:
https://github.com/mobz/elasticsearch-head
kibana是Elasticsearch官方提供的工具,虽然图形化的用户操做没有elasticsearch-head全面。可是在实际生产使用过程当中,使用也是不少的。
kibana是Elasticsearch官方提供的工具,可是在实际生产使用过程当中, 可视化作的不足,没有elasticsearch-head全面。kibana官方地址为
https://www.elastic.co/cn/downloads/kibana/
将安装包上传到Linux服务器,建立kibana的安装目录,将kibana压缩包解压到安装目录
mkdir -p /usr/local/kibana tar -zxvf /usr/local/kibana-6.2.2-linux-x86_64.tar.gz -C /usr/local/kibana
为了方便后续的使用,和kibana版本的升级,能够为kibana创建一个统一的软链接 /usr/kibana,命令以下:
ln -s /usr/local/kibana/kibana-6.2.2-linux-x86_64 /usr/kibana
修改kibana更目录下config/kibana.yml 配置文件,配置kibana须要监控的ElasticSearch服务器,和kibana服务所在的机器。配置的内容以下:
vi /usr/kibana/config/kibana.yml
elasticsearch.url: "http://172.18.7.49:9200" # kibana监控哪台es机器 server.host: "172.18.7.49" # kibana运行在哪台机器
启动kibana,运行使用下面的命令:
/usr/kibana/bin/kibana
[root@localhost ~]# /usr/kibana/bin/kibana log [00:48:50.903] Status changed from uninitialized to green - Ready log [00:48:51.005] Status changed from uninitialized to yellow - Waiting for Elasticsearch log [00:48:51.030] Status changed from uninitialized to green - Ready log [00:48:51.296] Status changed from uninitialized to green - Ready log [00:48:51.303] Status changed from uninitialized to green - Ready log [00:48:51.336] Server running at http://172.18.7.49:5601 log [00:48:51.511] Status changed from yellow to green - Ready
使用浏览器能够访问http://ip:5601 ,查看kibana的操做界面
在kibana启动成功后,若是浏览器不能访问,有多是linux 的防火墙进行了请求的拦截,在测试环境,能够关闭防火墙。
首先使用systemctl status firewalld 命令,查看防火墙的状态,执行命令以下:
[root@localhost ~]# systemctl status firewalld firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since 四 2019-07-25 19:15:01 CST; 18h ago Docs: man:firewalld(1) Main PID: 634 (firewalld) Memory: 220.0K CGroup: /system.slice/firewalld.service └─634 /usr/bin/python -Es /usr/sbin/firewalld --nofork –nopid
结果中的Active: active (running) ,表示防火墙正在运行,实验和测试环境,建议进行关闭。关闭防火墙的命令以下:
service firewalld stop
首先查看防火墙状态:
service iptables status
永久性生效,重启后不会复原
chkconfig iptables off
关闭:
即时生效,重启后复原
后台启动:
nohup /usr/kibana/bin/kibana &
查看进程
netstat -anltp|grep 5601
Elasticsearch默认状况下,只支持英文分词。默认状况下,Elasticsearch会将中文句子,分红一个一个的汉字。因此,须要给Elasticsearch安装中文分词器插件,这里选择的是IK分词器插件。
IK分词器有两种分词模式:ik_max_word和ik_smart模式。两种模式的区别,在于分词结果的颗粒度粗细不一样:ik_max_word会将中文作最细粒度分词,而ik_smart会作最粗粒度的分词。好比,对于“中华人民共和国人民大会堂”一个字符串,在ik_max_word分词模式下,将被拆分为“中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。在ik_smart 模式下,该字符串将被拆分为中华人民共和国、人民大会堂等词语。
将压缩包elasticsearch-analysis-ik-6.2.2.zip上传到/usr/local目录后,而且创建一个解压缩的目标目录。而后,将压缩包解压缩到目标目录。以上两步,所使用的命令以下:
mkdir -p /usr/local/elasticsearch-analysis-ik-6.2.2 unzip /usr/local/elasticsearch-analysis-ik-6.2.2.zip -d /usr/local/elasticsearch-analysis-ik-6.2.2
将elasticsearch-analysis-ik-6.2.2解压缩目录,复制到elasticsearch的插件目录plugins下,而后重启elasticsearch服务。
mv -fiv /usr/local/elasticsearch-analysis-ik-6.2.2/elasticsearch /usr/elasticsearch/plugins
能够经过kibana工具,测试ik_max_word.
POST /_analyze { "text":"中华人民共和国人民大会堂", "analyzer":"ik_max_word" } { "tokens" : [ { "token" : "中华人民共和国", "start_offset" : 0, "end_offset" : 7, "type" : "CN_WORD", "position" : 0 }, { "token" : "中华人民", "start_offset" : 0, "end_offset" : 4, "type" : "CN_WORD", "position" : 1 }, ….(篇幅缘由,省略了10以上的分词结果) ] }
具体,请关注 Java 高并发研习社群 【博客园 总入口 】
最后,介绍一下疯狂创客圈:疯狂创客圈,一个Java 高并发研习社群 【博客园 总入口 】
疯狂创客圈,倾力推出:面试必备 + 面试必备 + 面试必备 的基础原理+实战 书籍 《Netty Zookeeper Redis 高并发实战》