当前位置: 首页 > 后端技术 > PHP

Elasticsearch的开启-环境搭建

时间:2023-03-29 17:50:59 PHP

说明建议在继续之前阅读整篇文章。文末有我遇到的坑和解决方法。你可以看看!一定要在安装了java的环境下进行。1、准备工作:Ubuntu16.04.2x86_64Elasticsearch5.1.2下载地址:https://artifacts.elastic.co/...Kibana5.1.2下载地址:https://artifacts.elastic.co/...因为oracal下载java太慢,可以去CSDN下载https://download.csdn.net/dow...root权限下创建用户:createelasticsearchgroup:groupaddelasticsearchcreateelasticsearchuser:useraddelasticsearch-gelasticsearchcreateelasticsearch主目录:mkdir/home/elasticsearch更改主目录权限:chown-Rmkdirelasticsearch:elasticsearch/home/elasticsearch2.开始构建1.Elasticsearch5.1.2:-下载Es:`wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.2.tar.gz`-解压es到指定目录:`tar-zxfelasticsearch-5.1.2.tar.gz-C/usr/local/`-更改目录权限:`chown-Relasticsearch:elasticsearchelasticsearch-5.1.2/`-配置Java环境变量时执行后台启动es:`sudo./bin/elasticsearch-d-ppid`-closees:``kill`catpid```#pid是es后台启动时的进程号,文件在/usr/local/elasticsearch-5.1.2/pid-在服务器上执行:`curllocalhost:9200`-如果返回如下json则安装成功:```json{"name":"9bUWQKn","cluster_name":"elasticsearch","cluster_uuid":"2J3aD8mISy2A6l7JP6T4cA","version":{"number":"5.1.2","build_hash":"c8c4c16","build_date":"2017-01-11T20:18:39.146Z","build_snapshot":false,"lucene_version":"6.3.0"},"tagline":"YouKnow,forSearch"}```2,Kibana5.1.2-下载Kibana:`wgethttps://artifacts.elastic.co/downloads/kibana/kibana-5.1.2-linux-x86_64.tar.gz`-解压:`tar-zxfkibana-5.1.2-linux-x86_64.tar.gz-C/usr/local/`-`cd/usr/local/kibana-5.1.2-linux-x86_64`-将kibana的所有者更改为elasticsearch:`sudochownelasticsearch:elasticsearch-Rkibana-5.1.2-linux-x86_64/`-启动kibana:`./bin/kibana`-访问:使用浏览器http://192.168.10.10:5601/这时候会进不了页面-原因:kibana默认限制访问ip-解决办法:`vim/usr/local/kibana-5.1.2-linux-x86_64/config`打开server.host前的注释,最后:server.host:"0.0.0.0"重启kibana:`./bin/kibana`-重访:http://192.168.10.10:5601/没关系。补充:如果你有kibana,则不需要安装sense插件,因为kibana5.1.2默认集成了sense。3.安装esheadwithchromeExtension不带elasticsearch-plugin安装头,直接chrome扩展:https://chrome.google.com/web...4.坑1.以root用户权限运行es会报:在安装es的目录/usr/local/elasticsearch-5.1.2运行es:./bin/elasticsearch会报如下错误:root@homestead:/usr/local/elasticsearch-5.1.2#./bin/elasticsearch2018-03-26T15:17:52,954[o.e.b.ElasticsearchUncaughtExceptionHandler][]thread[main]org.elasticsearch.bootstrap.StartupException:java.lang.RuntimeException:cannotrunelasticsearchasroot原因:es无法以root用户启动解决方法:切换到elasticsearch用户suelasticsearch2,运行./bin/elasticsearch-d-ppid将报告elasticsearch@homestead:/usr/local/elasticsearch-5.1.2$JavaHotSpot(TM)64位服务器VM警告:INFO:os::commit_memory(0x0000000085330000,2060255232,0)失败的;error='Cannotallocatememory'(errno=12)##JavaRuntimeEnvironment的内存不足,无法继续。#本机内存分配(mmap)未能映射2060255232字节以提交保留内存。原因:我在Mac下安装VirtualBox后,只分配了2g内存,是内存不足导致的:修改es的配置文件:vim/usr/local/elasticsearch-5.1.2/config/jvm.optionschange:-Xms2gto-Xms1g,如果1g不够可以改成-Xms512mchange:-Xmx2gto-xmx1g,如果1g不够,可以修改jvm.options后改为-Xmx512m,然后执行./bin/elasticsearch-d-ppid3,./bin/elasticsearch-d-ppid会报elasticsearch@homestead:/usr/local/elasticsearch-5.1.2$2018-03-2615:44:22,462主要错误RollingFileManager(/usr/local/elasticsearch-5.1.2/logs/elasticsearch.log)java.io.FileNotFoundException:/usr/local/elasticsearch-5.1.2/logs/elasticsearch.log(Permissiondenied)java.io.FileNotFoundException:/usr/local/elasticsearch-5.1.2/logs/elasticsearch.log(Permissiondenied)原因:权限不足,导致/usr/local/elasticsearch-5.1.2/logs/elasticsearch.log日志文件未授权写入elasticsearch文件解决:sudochown-Relasticsearch:elasticsearchelasticsearch-5.1.2再次执行:./双n/elasticsearch-d-ppid4。启动es时,报错:mainERRORUnabletoinjectfieldsintobuilderclassforplugintypeclassorg.apache.logging.log4j.core.appender.RollingFileAppender原因:es运行在java环境下,必须先安装java,并配置相应的环境变量即可解决:在root用户下执行以下操作将java解压到要安装的目录:/usr/local/jdk1.8.0_161在vim/etc/profile中配置java环境变量/etc/profile文件末尾添加如下几行,修改JAVA_HOME=/usr/local/jdk1.8.0_161CLASSPATH=.:$JAVA_HOME//usr/local/jdk1.8.0_161/lib/tools.jarPATH=$JAVA_HOME/bin根据你安装的目录:$PATHexportJAVA_HOMECLASSPATHPATH然后执行source/etc/profile生效5.kibana的版本要和es的版本一致。例如:Elasticsearch5.1.2和Kibana5.1.2,两个版本都是5.1.2。如果版本不同,启动kibana6,启动es时会报maxvirtualmemoryareasvm.max_map_count[65530]太低,至少增加到[262144]临时解决:sudosysctl-wvm.max_map_count=262144#重启linux会失效永久解决方法:sudo添加vim/etc/sysctl.conf:vm.max_map_count=262144重启linux生效locallhost:9200,解决方法:sudovim/usr/local/elasticsearch-5.1.2/config/elasticsearch.yml会:打开network.host的注释,最后是network.host:0.0.0.0,表示无限访问ipkill`catpid`#杀掉es进程./bin/elasticsearch-d-ppid#启动es然后用浏览器访问:192.168.10.10:9200