美文网首页
elsticsearch-6.6.0 安装

elsticsearch-6.6.0 安装

作者: 万事万物 | 来源:发表于2021-08-05 09:03 被阅读0次

下载

ElasticSearch官网下载
当前案例版本6.6.0,建议使用 7.x 以上的版本

安装

  • 解压
[admin@hadoop102 software]$ tar -zxvf elasticsearch-6.6.0.tar.gz -C /opt/module/

tar -zxvf :解压tar.gz 命令
-C:解压之后的保存目录

  • cd 进入 -C 目录
[admin@hadoop102 software]$ cd /opt/module
  • 重命名
[admin@hadoop102 module]$ mv elasticsearch-6.6.0/ elasticsearch
  • 创建 datas目录
    es需要存储一些资源到本地,创建datas目录便于指定资源存放地址。
[admin@hadoop102 elasticsearch]$ mkdir datas
  • 查看结构
[admin@hadoop102 elasticsearch]$ ls
bin  // 存放 es 的一些服务命令,启动停止等
config  // es 配置相关的
datas // 上面创建用于存放 es 资源的目录
lib  // es 的依赖包
LICENSE.txt  
logs  // es 的运行日志
modules   // 需要额外加载的第三方模块
NOTICE.txt  
plugins   //  es 插件 包括 ik 分词器
README.textile

配置

  • 进入到 config 目录中
[admin@hadoop102 elasticsearch]$ cd config/
  • 配置结构
[admin@hadoop102 config]$ ls
elasticsearch.yml  
jvm.options  
log4j2.properties  
role_mapping.yml  
roles.yml  
users  
users_roles
  • 配置 elasticsearch.yml,配置如下
# 集群名称
cluster.name: my-application
# es 每个节点的唯一的id(集群配置)
node.name: node-1
# es 数据存储的目录(上面创建的 datas目录的绝对路径)
path.data: /opt/module/elasticsearch/datas
# 日志文件 默认在es安装目录的家目录/logs中(所有可以不用指定)
#path.logs: /path/to/logs
#默认为true,我这里修改为false,若为true 会将堆大小设置为当前节点可用内存的一半,这样也有好处,若堆内存设置太小,当内存资源不够时,需要再次申请资源,为了避免申请资源时带来额外的消耗所以默认设置为true。
#我使用的虚拟机,还得运行其他服务,再加上es运算资源不会太大,所以就改成了false。
bootstrap.memory_lock: false
#额外加的一个参数,出现错误的原因(百度找的):是因为centos6.x操作系统不支持SecComp,而elasticsearch 5.5.2默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
#在elasticsearch.yml中添加配置项:bootstrap.system_call_filter为false:
bootstrap.system_call_filter: false
# 绑定的主机名(es 安装在哪台服务器就绑定那台服务器IP
network.host: 192.168.0.1
# es 端口,可以不用指定,默认就是9200
#http.port: 9200
# 加入集群的设置,如果当前机器启动时,希望加入集群,会向哪些节点发送加入集群的请求。
#(若需要集群配置,就打开注释,host1和host2 就是绑定的其他节点的IP)
#discovery.zen.ping.unicast.hosts: ["host1", "host2"]

保存退出

:wq
  • 修改jvm.options
    es 启动默认会占用1G资源,若服务器性能不是很好,就需要配置一下。
修改
-Xms1g
-Xmx1g
为
-Xms256m
-Xmx256m
  • 分发(若有集群,则向其他服务器进行安装配置)
    以下配置需要注意一下,需要进行更改
# es 每个节点唯一的id
node.name: node-1
# 绑定的主机名(es 安装在哪台服务器就绑定那台服务器IP
network.host: 192.168.0.1
  • 修改操作系统配置
    es 的配置已经搞定了,但是es本身可以算得上时一种数据库,就得要求操作系统的配置得跟上数据库,es需要往系统写很多数据,因此他对系统的磁盘页大小包括同时启动的线程数量都是由要求的,所以就得改一些Linux本地的配置。

需要切换到root用户,使用 su root 命令。

[admin@hadoop102 config]$ su root
密码:
  1. 编辑limits.conf配置
    vi /etc/security/limits.conf
    添加以下内容(具体是啥不太清除,会影响Linux内核)
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

注意:* 不要省略掉

  1. 进入limits.d目录下修改配置文件。(CentOS7.x不用改)
    vi /etc/security/limits.d/90-nproc.conf
soft nproc 1024

修改成

soft nproc 1024
  1. 编辑sysctl.conf
    vi /etc/sysctl.conf
    添加以下配置,用于调大线程数
vm.max_map_count=655360

若想知道命令是否执行生效,需要执行sysctl -p命令

[root@hadoop102 config]# sysctl -p
vm.max_map_count = 655360
  1. 若配置的是集群,那么其他服务器都得操作
  2. 最后一步,服务器必须重启,否则es可能无法启动(必须做)
sudo reboot

启动

配置完成,重启之后,就可以启动es了,若是集群配置,其他都服务器也得手动启,非集群配置,启动一台即可。

  • 进入安装es的家目录中。
[admin@hadoop102 ~]$ cd /opt/module/elasticsearch/
  • 执行sh bin/elasticsearch
[admin@hadoop102 elasticsearch]$ sh bin/elasticsearch
  • 该方式是前台启动,所以直接可以在终端查看到启动日志
[2021-08-02T18:45:39,747][INFO ][o.e.e.NodeEnvironment    ] [node-102] using [1] data paths, mounts [[/ (/dev/sda3)]], net usable_space [30.5gb], net total_space [46.9gb], types [xfs]
[2021-08-02T18:45:39,748][INFO ][o.e.e.NodeEnvironment    ] [node-102] heap size [989.8mb], compressed ordinary object pointers [true]
[2021-08-02T18:45:39,749][INFO ][o.e.n.Node               ] [node-102] node name [node-102], node ID [fvWvPj5nRzKuaqd3ooT1IA]
[2021-08-02T18:45:39,749][INFO ][o.e.n.Node               ] [node-102] version[6.6.0], pid[2341], build[default/tar/a9861f4/2019-01-24T11:27:09.439740Z], OS[Linux/3.10.0-1160.el7.x86_64/amd64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_212/25.212-b10]
[2021-08-02T18:45:39,749][INFO ][o.e.n.Node               ] [node-102] JVM arguments [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -Des.networkaddress.cache.ttl=60, -Des.networkaddress.cache.negative.ttl=10, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=/tmp/elasticsearch-6713700111977558191, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p.log, -XX:+PrintGCDetails, -XX:+PrintGCDateStamps, -XX:+PrintTenuringDistribution, -XX:+PrintGCApplicationStoppedTime, -Xloggc:logs/gc.log, -XX:+UseGCLogFileRotation, -XX:NumberOfGCLogFiles=32, -XX:GCLogFileSize=64m, -Des.path.home=/opt/module/elasticsearch, -Des.path.conf=/opt/module/elasticsearch/config, -Des.distribution.flavor=default, -Des.distribution.type=tar]
... 
  • 测试
    浏览器输入

http://es的IP地址:9200/_cat

响应信息如下,就表示安装成功了

=^.^=
/_cat/allocation
/_cat/shards
/_cat/shards/{index}
/_cat/master
/_cat/nodes
/_cat/tasks
/_cat/indices
/_cat/indices/{index}
/_cat/segments
/_cat/segments/{index}
/_cat/count
/_cat/count/{index}
/_cat/recovery
/_cat/recovery/{index}
/_cat/health
/_cat/pending_tasks
/_cat/aliases
/_cat/aliases/{alias}
/_cat/thread_pool
/_cat/thread_pool/{thread_pools}
/_cat/plugins
/_cat/fielddata
/_cat/fielddata/{fields}
/_cat/nodeattrs
/_cat/repositories
/_cat/snapshots/{repository}
/_cat/templates

启动脚本

我这里配置的是es 集群,所以启动es需要多个服务器都得一个一个启动,比较麻烦,所以需要一个启动脚本帮我完成这种繁琐的事。

  • 创建一个es.sh文件
vim es.sh
  • 内容如下
#!/bin/bash

# 参数个数校验,只能传一个参数
if [ $# -ne 1 ];then
        echo "参数只支持[start,stop]"
        exit;
fi

# es 的安装目录
es_home=/opt/module/elasticsearch/

# 参数推断
case $1  in
 # 启动
 "start") {
  for i in hadoop102 hadoop103 hadoop104
  do
    echo "==============$i=============="
ssh $i  "source /etc/profile;${es_home}/bin/elasticsearch >/dev/null 2>&1 &"
sleep 4s;
  done

};;
# 停止
"stop") {
  for i in hadoop102 hadoop103 hadoop104
  do
    echo "==============$i=============="
    ssh $i "ps -ef|grep $es_home |grep -v grep|awk '{print \$2}'|xargs kill" >/dev/null 2>&1
  done

};;
esac
  • 授权
 chmod u+x es.sh
  • 注意:以下几点
  1. 每台服务器之间需要配置免密
  2. 每天服务器的es安装路径是一致的。
  • 测试
  1. 启动
sh es.sh start
  1. 停止
sh es.sh stop

相关文章

网友评论

      本文标题:elsticsearch-6.6.0 安装

      本文链接:https://www.haomeiwen.com/subject/hlkjvltx.html