一、ElasticSearch简述

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题以及可能出现的更多其它问题。

二、今天折腾了一天终于搞定了ElasticSearch在linux上的安装,结果我在安装ElasticSearch的时候遇到了下面的一系列问题,现在写下来让自己记住,经常翻看,希望也能帮到你们。

1.运行环境:

redhat6.5 elasticsearch-2.4.0 jdk1.8.31(我虚拟机的jdk版本)

1.把在官网下载的elasticsearch-2.4.0.tar.gz的安装包,我把解压后得到的elasticsearch-2.4.0放了/opt/elasticsearch下。

2.然后我就使用命令启动elasticsearch:

报错:[root@localhost bin]# ./elasticsearch [2017-07-09  11:52:59,903][WARN ][bootstrap ] jvm uses the client vm, make sure to run java with the server vm for best performance by adding -server to the command line Exception in thread “main” java.lang.RuntimeException: Java version: Oracle Corporation 1.7.0_51 [Java HotSpot(TM) Client VM 24.51-b03] suffers from critical bug https://bugs.openjdk.java.net/browse/JDK-8024830 which can cause data corruption. Please upgrade the JVM, see http://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html for current recommendations. If you absolutely cannot upgrade, please add -XX:-UseSuperWord to the JAVA_OPTS environment variable.Upgrading is preferred, this workaround will result in degraded performance. at org.elasticsearch.bootstrap.JVMCheck.check(JVMCheck.java:123) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:268) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) Refer to the log for complete error details.

大意是: 1.7.0_51遭受来自这个网站https://bugs.openjdk.java.net/browse/JDK-8024830的***,它会使数据丢失,需要升级JVM或者添加 -XX:-UseSuperWord to the JAVA_OPTS environment variable.我升级JDK到1.8.31版本。重新启动,结果又报新的错误,

Exception in thread “main” java.lang.RuntimeException: don‘t run elasticsearch as root. at.org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93) at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) Refer to the log for complete error details.

解决了jdk的问题现在又蹦出来另一个问题。这个异常的意思是用root用户是不能直接运行elasticsearch的,后来我想起我还有一个的用户,于是就又换了个test的用户:su test。用test用户再次启动。

结果还是报了下面的异常:

[root@localhost bin]# su test[test@localhost bin]$ ./elasticsearch log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: /opt/elasticsearch/logs/elasticsearch.log (Permission denied) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.(FileOutputStream.java:213) at java.io.FileOutputStream.(FileOutputStream.java:133) at org.apache.log4j.FileAppender.setFile(FileAppender.java:294) at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165) at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223) at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842) at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514) at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440) at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) log4j:ERROR Either File or DatePattern options are not set for appender [file]. log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: /opt/elasticsearch/logs/elasticsearch.log(Permission denied) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.(FileOutputStream.java:213) at java.io.FileOutputStream.(FileOutputStream.java:133) at org.apache.log4j.FileAppender.setFile(FileAppender.java:294) at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165) at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223) at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842) at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516) at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440) at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) log4j:ERROR Either File or DatePattern options are not set for appender [deprecation_log_file]. log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException:/opt/elasticsearch/logs/elasticsearch.log (Permission denied) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.(FileOutputStream.java:213) at java.io.FileOutputStream.(FileOutputStream.java:133) at org.apache.log4j.FileAppender.setFile(FileAppender.java:294) at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165) at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223) at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842) at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516) at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440) at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) log4j:ERROR Either File or DatePattern options are not set for appender [index_indexing_slow_log_file]. log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: /opt/elasticsearch/logs/elasticsearch.log/logs/elasticsearch_index_search_slowlog.log (Permission denied) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.(FileOutputStream.java:213) at java.io.FileOutputStream.(FileOutputStream.java:133) at org.apache.log4j.FileAppender.setFile(FileAppender.java:294) at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165) at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223) at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842) at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516) at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440) at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) log4j:ERROR Either File or DatePattern options are not set for appender [index_search_slow_log_file]. [2017-03-16 13:29:45,447][WARN ][bootstrap ] unable to install syscall filter: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in Exception in thread “main” java.lang.IllegalStateException: Unable to access ‘path.plugins’ (/usr/local/es/elasticsearch-2.3.5/plugins) Likely root cause: java.nio.file.AccessDeniedException: /opt/elasticsearch/plugins at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84) at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384) at java.nio.file.Files.createDirectory(Files.java:674) at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781) at java.nio.file.Files.createDirectories(Files.java:767) at org.elasticsearch.bootstrap.Security.ensureDirectoryExists(Security.java:337) at org.elasticsearch.bootstrap.Security.addPath(Security.java:314) at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:246) at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:212) at org.elasticsearch.bootstrap.Security.configure(Security.java:118) at org.elasticsearch.bootstrap.Bootstrap.setupSecurity(Bootstrap.java:196) at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:167) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) Refer to the log for complete error details.

我看了看这些异常,看的不大明白。但感觉根源问题还是用户启动权限哪儿出错了,于是就上网百度了一下解决的方案。看了一篇文章原来真的是用户的问题。Elasticsearch是需要一个专门的用户来管理它的。我依照上面文章的方法创建了一个专门管理elsearch的用户。最后从root切换到新创建的用户权限下去启动elsearch,最后成功启动。ES在linux上的安装、启动终于成功了,真是费劲周折。

test01[/syiptv]$curl -XGET 192.168.13.5:9201

{

"name" : "hadoop2",

"cluster_name" : "zjf",

"version" : {

"number" : "2.4.0",

"build_hash" : "ce9f0c7394dee074091dd1bc4e9469251181fc55",

"build_timestamp" : "2016-08-29T09:14:17Z",

"build_snapshot" : false,

"lucene_version" : "5.5.2"

},

"tagline" : "You Know, for Search"

}

总算安装成功了,接下来安装插件。

三、安装elasticsearch-head插件

从https://github.com/mobz/elasticsearch-head下载zip包解压至 /opt/elasticsearch/_plugins/head 目录

四、安装bigdesk插件

从https://github.com/lukas-vlcek/bigdesk下载zip包解压至/usr/local/elasticsearch-1.7.3/_plugins/bigdesk/_site 目录

2. 集群配置

单机多节点配置

elasticsearch集群配置比较简单,只需把每个节点的cluster name设置成相同的,es启动时会自动发现同一网段内相同cluster name的节点自动加入到集群中。

本文采用单机多节点配置方式,节点配置信息如下:节点名称(node.name)集群名称 (cluster.name)http端口号 (http.port)tcp端口号  (transport.tcp.port)

node1es-test92009300

node2es-test92019301

node3es-test92029302

ps: 多台机器部署方式类似

把已经安装好插件的elasticsearch目录复制两份,分别命名为elasticsearch-2.4.0_node1 elasticsearch-2.4.0_node2elasticsearch-2.4.0_node3 按照上边的配置信息修改各个节点elasticsearch.yml配置文件

注意:配置文件 名称:【空格】参数 (不加空格会报错)

配置完成。

在linux环境下启动es,linux上Elasticsearch 安装配置、网页访问相关推荐

  1. linux环境下启动git,linux系统安装git及git常用命令

    1 安装GIT 代码如下: $  sudo aptitude install git $  sudo aptitude install git-doc git-svn git-email git-gu ...

  2. linux 环境启动redis,linux环境下启动redis的方法

    linux环境下启动redis的方法 发布时间:2020-08-24 16:15:54 来源:亿速云 阅读:88 作者:小新 这篇文章主要介绍了linux环境下启动redis的方法,具有一定借鉴价值, ...

  3. osg linux 环境配置,Linux环境下jdk1.8的下载与安装

    Linux环境下jdk1.8的下载与安装 1.下载 Oracle官网下载相应的版本,官网地址:https://www.oracle.com/java/technologies/javase/javas ...

  4. linux环境下查看进程,Linux下查看进程(程序)启动时的环境变量

    背景: 因最近试安装Linux下的jira,有一个中文插件安装后,一旦设置开机启动后,它是英文,而在终端再重新启动一次后呢,似乎插件生效,它又恢复为正常中文界面,我首先想这这涉及到一个环境变量的问题, ...

  5. Linux 环境下php5.6,如何正确安装微软Mssql驱动--详细教程

    Linux 环境下,如何正确安装微软Mssql驱动 近日,由于公司业务的需要,需要用到PHP连接一个客户的Mssql服务器.于是,开始一番折腾之路.Baidu与Google之后,发现,网上说的各种方法 ...

  6. linux 关闭nginx进程,Linux环境下启动、停止、重启nginx

    启动 启动代码格式:nginx安装目录地址 -c nginx配置文件地址 例如: [root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /us ...

  7. linux环境下nginx链接不上fpm

    背景: nginx是通过源码安装,php环境和php-fpm是通过apt-get自动安装. 以下记录下出现的几个问题及方法 一.访问php文件无法识别 安装nginx和fpm完成之后,通过在nginx ...

  8. linux环境下添加定时任务,linux下添加定时任务。

    这周要做一个定时增量更新Elasticsearch索引的功能,以前没有做过定时更新,所以请教了下同事,使用crontab添加linux下的定时任务. 一.linux下定时执行任务的方法 在linux中 ...

  9. linux环境下搭建osm_web服务器一(Postgresql配置及osm2pgsql原始数据导入):

    Postgresql配置及osm2pgsql原始数据导入 2012年,Ubuntu 12.04LTS发布,又一个长效支持版,我们又该更新OpenStreetMap服务器了,这次,将详细在博客中记录配置 ...

最新文章

  1. Linux 下 进程运行时内部函数耗时的统计 工具:pstack,strace,perf trace,systemtap
  2. 计算机视觉算法——图像分类网络总结
  3. 从CES 2017看今年智能汽车发展趋势之三:智能座舱异军突起
  4. 新手上路之django项目开发(二)-----引入静态文件
  5. 论文浅尝 | 使用预训练深度模型和迁移学习方法的端到端模糊实体匹配
  6. c++图的创建_利用Microsoft Visio 软件绘制工艺流程图
  7. INFORMATION_SESSION_VARIABLES feature is disabled问题
  8. 智能优化算法:群居蜘蛛优化算法-附代码
  9. 【电力负荷预测】基于matlab模拟退火算法结合狮群算法优化Elman神经网络电力负荷预测【含Matlab源码 1454期】
  10. Thingworx连接Kepware
  11. Swift 之横竖屏切换
  12. 2019 10月 月末总结
  13. 迪乐尼童鞋防骗子—常见网络骗子骗术防御要点
  14. 计算机能力提升选网络研修,教师计算机能力提升个人研修计划
  15. ROS中的diagnostics模块
  16. 50EX全球化战略布局加快,日韩版本将上线
  17. scylladb源码安装过程
  18. 如何修改已提交commit信息
  19. 用户登录程序C语言实现
  20. 巴别塔合约作战终端开发日记3——服务器负载优化

热门文章

  1. python弱类型好处_JavaScript弱类型语言的优缺点有哪些
  2. rds mysql 表被删了_MySQL · 捉虫动态 · 删除索引导致表无法打开
  3. echarts改变图例位置
  4. (2006, ‘MySQL server has gone away‘) 原因和解决方案
  5. Debian 项目领导人职位已有三位侯选者
  6. MySQL/InnoDB中,乐观锁、悲观锁、共享锁、排它锁、行锁、表锁、死锁概念的理解...
  7. [吴恩达机器学习笔记]14降维3-4PCA算法原理
  8. 12.Flask-Restful
  9. cron计划任务、chkconfig工具、systemd管理服务、unit、target介绍
  10. UITableView基本用法