linux和windows安装ElasticSearch和kibana
下载地址 https://www.elastic.co/cn/downloads/elasticsearch
Linux安装ElasticSearch
1、上传ElasticSearch安装包
elasticsearch-7.4.0-linux-x86_64.tar.gz
2、执行解压操作
# 将elasticsearch-7.4.0-linux-x86_64.tar.gz解压到opt文件夹下. -C 大写 tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /opt
3、创建普通用户
因为安全问题,ElasticSearch 不允许root用户直接运行,所以要创建新用户,用root创建新用户:
useradd wk
passwd wk
5、为新用户授权
chown -R wk:wk /opt/elasticsearch-7.4.0 #文件夹所有者 将 /opt/elasticsearch-7.4.0文件夹授权给wk用户:wk用户组
6、修改elasticsearch.yml文件
vim /opt/elasticsearch-7.4.0/config/elasticsearch.yml
# ======================== Elasticsearch Configuration ========================= cluster.name: my-application node.name: node-1 network.host: 0.0.0.0 http.port: 9200 cluster.initial_master_nodes: ["node-1"]
cluster.name:配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称
node.name:节点名,elasticsearch会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
network.host:设置为0.0.0.0允许外网访问
http.port:Elasticsearch的http访问端口
cluster.initial_master_nodes:初始化新的集群时需要此配置来选举master
7、修改配置文件
新创建的wk用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件, 添加类似如下内容
# 切换到root用户 su root #1. ===最大可创建文件数太小======= vim /etc/security/limits.conf # 在文件末尾中增加下面内容 wk soft nofile 65536 wk hard nofile 65536 # soft xxx : 代表警告的设定,可以超过这个设定值,但是超过后会有警告。 # hard xxx : 代表严格的设定,不允许超过这个设定的值。 # nproc : 是操作系统级别对每个用户创建的进程数的限制 # nofile : 是每个进程可以打开的文件数的限制 # ===== vim /etc/security/limits.d/20-nproc.conf # 在文件末尾中增加下面内容 wk soft nofile 65536 wk hard nofile 65536 * hard nproc 4096 # 注:* 代表Linux所有用户名称 #2. ===最大虚拟内存太小======= vim /etc/sysctl.conf # 在文件中增加下面内容 vm.max_map_count=655360 # 重新加载,输入下面命令: sysctl -p
8、启动elasticsearch
su wk # 切换到wk用户启动 cd /opt/elasticsearch-7.4.0/bin ./elasticsearch #启动
访问elasticsearch, 在访问elasticsearch前,请确保防火墙是关闭的, 浏览器输入http://192.168.6.100:9200/
重点几个关注下即可: number" : "7.4.0" 表示elasticsearch版本 lucene_version" : "8.2.0" 表示lucene版本 name : 默认启动的时候指定了 ES 实例名称 cluster_name : 默认名为 elasticsearch
docker版本安装
# 拉取镜像 docker pull elasticsearch:7.4.0 # 创建容器 docker create --name elasticsearch --net host -e "discovery.type=single-node" -e "network.host=192.168.6.100" elasticsearch:7.4.0 # 启动 docker start elasticsearch # 查看日志 docker logs elasticsearch
Kibana客户端【Linux下安装】
1. Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。
2、解压kibana
tar -xzf kibana-7.4.0-linux-x86_64.tar.gz -C /opt
3、修改kibana配置
vim /opt/kibana-7.4.0-linux-x86_64/config/kibana.yml
server.port: 5601 server.host: "0.0.0.0" server.name: "kibana-atguigu" elasticsearch.hosts: ["http://127.0.0.1:9200"] elasticsearch.requestTimeout: 99999
server.port:http访问端口
server.host:ip地址,0.0.0.0表示可远程访问
server.name:kibana服务名
elasticsearch.hosts:elasticsearch地址
elasticsearch.requestTimeout:请求elasticsearch超时时间,默认为30000,此处可根据情况设置
4、启动kibana
由于kibana不建议使用root用户启动,如果用root启动,需要加--allow-root参数
# 切换到kibana的bin目录 cd /opt/kibana-7.4.0-linux-x86_64/bin # 启动 ./kibana --allow-root
5、访问kibana
浏览器输入http://192.168.6.100:5601
IK分词器安装
将elasticsearch-analysis-ik-7.4.0.zip解压到新建的目录plugins/ik目录下
记得一定要重启Elasticsearch!!!
使用IK分词器
IK分词器有两种分词模式:ik_max_word和ik_smart模式。
1、**ik_max_word**
会将文本做最细粒度的拆分,比如会将“乒乓球明年总冠军”拆分为“乒乓球、乒乓、球、明年、总冠军、冠军。
2、**ik_smart**
会做最粗粒度的拆分,比如会将“乒乓球明年总冠军”拆分为乒乓球、明年、总冠军。
自定义词库
修改/opt/elasticsearch-7.4.0/plugins/ik/config/KAnalyzer.cfg.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>IK Analyzer 扩展配置</comment> <!--用户可以在这里配置自己的扩展字典 --> <entry key="ext_dict"></entry> <!--用户可以在这里配置自己的扩展停止(黑名单,禁用词)词字典--> <entry key="ext_stopwords"></entry> <!--用户可以在这里配置远程扩展字典 --> <entry key="remote_ext_dict">http://192.168.6.100/fenci/myword.txt</entry> <!--用户可以在这里配置远程扩展停止词字典--> <!-- <entry key="remote_ext_stopwords">words_location</entry> --> </properties>
修改完配置文件,需要重启elasticsearch服务
按照标蓝的路径利用nginx发布静态资源
1. 在nginx.conf中配置
server { listen 80; server_name 192.168.137.3; location /fenci/ { root es; } }
2. 并且在/usr/local/nginx/下建/es/fenci/目录,目录下加myword.txt
myword.txt中编写关键词,每一行代表一个词。
3. 启动nginx。
4. 在浏览器中访问自定义词库:http://192.168.137.3/fenci/myword.txt
5. 在kibana中测试分词效果
windows版本安装
下载ES的windows压缩包
Window版的ElasticSearch的安装很简单,解压开即安装完毕,解压后的ElasticSearch的目录结构如下:
安装IK分词器插件:在plugin目录下创建ik文件夹,将elasticsearch-analysis-ik-7.4.0.zip内容解压到ik目录下:
启动ES服务
点击ElasticSearch下的bin目录下的elasticsearch.bat启动
注意:9300是tcp通讯端口,集群间和TCPClient都执行该端口,9200是http协议的RESTful接口 。
通过浏览器访问ElasticSearch服务器:http://localhost:9200
注意事项一:ElasticSearch是使用java开发的,且本版本的es需要的jdk版本要是1.8以上,所以安装ElasticSearch之前保证JDK1.8+安装完毕,并正确的配置好JDK环境变量,否则启动ElasticSearch失败。 注意事项二:出现闪退,通过路径访问发现“空间不足”
【解决方案】
修改jvm.options文件的22行23行, Elasticsearch启动的时候占用1个G的内存,可改成512m:
-Xmx512m:设置JVM最大可用内存为512M。
-Xms512m:设置JVM初始内存为512m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
Kibana客户端(Windows版)
解压kibana-7.4.0-windows-x86_64.zip(解压很慢,耐心等待…)
进入config目录修改kibana.yml第2、28行,配置自身端口和连接的ES服务器地址。
server.port: 5601 elasticsearch.hosts: ["http://localhost:9200"]
进入kibana的bin目录,双击kibana.bat启动:
访问:http://localhost:5601,出现界面即完成安装。
界面是英文的,如果希望是中文,可以修改kibana.yml第114行:i18n.locale: “zh-CN”
Elasticsearch head客户端
head插件是ES的一个可视化管理插件,用来监视ES的状态,并通过head客户端和ES服务进行交互,比如创建映射、创建索引等。
将ElasticSearch-head-Chrome-0.1.5-Crx4Chrome.crx用压缩工具解压,打开Chrome扩展程序,点” 加载已解压的扩展程序”按钮,找到解压目录即可
使用IK分词器
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
准备三台elasticsearch服务器
创建elasticsearch-cluster文件夹,在内部复制三个elasticsearch服务
修改每台服务器配置
修改elasticsearch-cluster\node*\config\elasticsearch.yml配置文件
node1节点:
#节点1的配置信息: #集群名称,保证唯一 cluster.name: my-elasticsearch #默认为true。设置为false禁用磁盘分配决定器。 cluster.routing.allocation.disk.threshold_enabled: false #节点名称,必须不一样 node.name: node-1 #必须为本机的ip地址 network.host: 127.0.0.1 #服务端口号,在同一机器下必须不一样 http.port: 9201 #集群间通信端口号,在同一机器下必须不一样 transport.tcp.port: 9301写入候选主节点的设备地址,在开启服务后可以被选为主节点 discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"] #初始化一个新的集群时需要此配置来选举master cluster.initial_master_nodes: ["node-1"]
node2节点:
#节点1的配置信息: #集群名称,保证唯一 cluster.name: my-elasticsearch #默认为true。设置为false禁用磁盘分配决定器。 cluster.routing.allocation.disk.threshold_enabled: false #节点名称,必须不一样 node.name: node-2 #必须为本机的ip地址 network.host: 127.0.0.1 #服务端口号,在同一机器下必须不一样 http.port: 9202 #集群间通信端口号,在同一机器下必须不一样 transport.tcp.port: 9302 discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"] #初始化一个新的集群时需要此配置来选举master cluster.initial_master_nodes: ["node-1"]
node3节点:
#节点1的配置信息: #集群名称,保证唯一 cluster.name: my-elasticsearch #默认为true。设置为false禁用磁盘分配决定器。 cluster.routing.allocation.disk.threshold_enabled: false #节点名称,必须不一样 node.name: node-3 #必须为本机的ip地址 network.host: 127.0.0.1 #服务端口号,在同一机器下必须不一样 http.port: 9203 #集群间通信端口号,在同一机器下必须不一样 transport.tcp.port: 9303 discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"] # 初始化一个新的集群时需要此配置来选举master cluster.initial_master_nodes: ["node-1"]
启动各个节点服务器