ElasticSearch的安装与配置

版权声明:write by DGHxj https://blog.csdn.net/DGHxj_/article/details/84197584

ES安装(基于java运行环境)

      1 获取安装包

            云主机和虚拟机的es安装资源 elasticsearch-5.5.2.tar包都在/home/resources

      2 tar命令解压安装包

            #tar -xf **.tar包直接解压到当前文件,形成一个文件夹保管es的所有内容

            

      3 添加当前主机的普通账户

            #groupadd es

            #useradd es -g es -p es

            

            解释:root为最高权限的管理员用户,es在启动时不允许使用root用户,所以我们创建一个普通账户es,

                      登录密码es来管理elasticsearch的启动和调用,从此处开始#的命令表示root用户执行,

                      $的命令提示表示普通用户

      4 root用户个es用户添加操作访问elasticsearch的权限

            #chown -R es:es elasticsearch-5.5.2

            

            用户的切换命令为:

            #su[空格]es root切换到普通用户es

            

            $su[空格]root 从普通用户切换到root需要输入密码

            注意:这里的密码是忙敲,没有字符提示

            

      5 修改es启动占用的内存空间(云主机一般不需要)

            解释:默认情况下,es启动互检测内存2G,对云主机内存不足的情况有所限制,虚拟机更需要修改,

                      需要修改占用的内存空间,512M已经足够了

            修改es根目录下config目录的jvm.options

                  #vim jvm.options

                  

 

                 

      6 尝试启动es测试

            在es的根目录的bin目录下执行启动文件命令elasticsearch

            $elasticsearch

           

            出现如下内容,es启动成功

           

            es启动后,提供一个9200的端口进行http协议访问,这里可以调用linux的curl命令测试es程序,

            但是没有开启对外访问的设置,只能使用localhost访问

            #curl localhost:9200

           

 

      启动异常:原因是linux版本导致,不影响使用后续解决

            unable to install syscall filter:

            java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel,

            CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed

           

            在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:

            42行:bootstrap.memory_lock: false

            添加:bootstrap.system_call_filter: false

            #vim elasticsearch.yml

           

      7 后台启动和关闭es

            关闭

            在前面使用的启动过程中,es的启动程序占用了控制台,如果需要关闭直接ctrl+c停止控制台使用即可,

            默认的启动方式并不方便,占用的控制台一旦关闭会造成es程序停止,所以需要后台启动

            后台启动

            动态观察日志

            #tail -f ***.log

            在普通用户执行启动命令时添加-d的选项表示后台运行

            $elasticsearch -d

           

            使用crul测试依然成功表示程序正常运行

            #curl localhost:9200

           

 

            关闭后台启动的进程

            调用java的jps命令查看启动的jvm进程

            #jps

           

            或者直接调用linux查看进程命令

            #ps -ef|grep elasticsearch

            无论是哪个命令都是为了找到es启动的id号

           

            确定pid后直接调用kill命令杀掉进程即可关闭es

            #kill 17381

           

            安装启动es到此结束

尚存的问题

      无法对外提供访问和使用

      通过内部命令可以访问es进程,但是从外网访问ip+端口访问无效

      没有集群提供高可用

      单点的es可以完成创建索引,搜索功能,但是高可用集群才是es的使用途径

ES配置

      配置文件elasticsearch.yml详解

            在es根目录下的config目录中有elasticsearch.yml配置文件,es加载使用的yml格式配置

 

            17行:cluster.name: 自定义集群名称(强烈推荐默认名称elasticsearch)

            解释:es的运行都是以集群形式启动的,默认情况也会有集群名称elasticsearch

            es的discovery模块会自动发现在同一个网络通信区间内下的es节点,

            如果在同一个网段下有多个集群,可以利用集群名称来区分

            

 

            23行:node.name: 自定义节点名称

            当前启动的es进程表示一个节点,配置当前节点名称,默认随机名称

            

 

            33行:path.data: 索引数据存储位置(保持默认,不要开启注释)

            解释:默认是es根目录下的data文件夹,可以设置多个存储路径,用“,”隔开即可,

                      例如:path.data:/path01,/path02 

            如果开启,必须是ES用户的管理路径内

 

            37行:path.logs: 日志路径(保持默认,不要开启注释)

 

            #ip(用ip未启动成功,换成127.0.0.1如果没问题<说明服务已OK>,在换成如下地址,外网可访问)  

            55行左右:network.host: 当前es节点绑定的ip地址

            解释:默认127.0.0.1,如果需要开放对外访问这个属性必须设置,可以绑定本机对外访问ip 

            

  

            59行:http.port: 启动的es对外访问的http端口,默认9200

            开放并且设置自定义端口

            

 

            按照如上内容vim便捷elasticsearch.yml文件保存退出

 

      启动es的环境问题

            由于linux版本不一致,环境配置不一致,可能在启动时出现如下问题

            

 

            [1]: max number of threads [1024] for user [es] is too low, increase to at least [2048]

            原因:默认的最大可创建线程数是1024,不满足es程序的要求,设置为2048即可

            #vim[空格]/etc/security/limits.d/90-nproc.conf

            

 

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

            原因:最大虚拟内存太小

            #vim[空格]/etc/sysctl.conf

            文件中添加如下内容

            vm.max_map_count=655360

            

            保存退出执行命令

            #sysctl[空格]-p

 

            除了以上几个问题的出现,有可能根据环境不同出现不同问题,

            根据问题的提示找到ERROR,然后参照资料进行修改即可

 

 

猜你喜欢

转载自blog.csdn.net/DGHxj_/article/details/84197584
今日推荐