linux上Elasticsearch 安装配置、网页访问

一、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:

报错:[[email protected] 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用户再次启动。

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

[[email protected] bin]# su test
[[email protected] 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 目录

浏览器访问 http://192.168.31.247:9200/_plugin/head/

四、安装bigdesk插件

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

浏览器访问 http://192.168.31.247:9200/_plugin/bigdesk

2. 集群配置

单机多节点配置

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

本文采用单机多节点配置方式,节点配置信息如下:


节点名称(node.name)


集群名称 (cluster.name)


http端口号 (http.port)


tcp端口号  (transport.tcp.port)


node1


es-test


9200


9300


node2


es-test


9201


9301


node3


es-test


9202


9302

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

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

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

分别启动3个节点,浏览器访问 http://192.168.31.247:9200/_plugin/head/

配置完成。

时间: 2024-10-12 17:31:01

linux上Elasticsearch 安装配置、网页访问的相关文章

So Easy! Oracle在Linux上的安装配置系列四

So Easy! Oracle在Linux上的安装配置系列四  监听器的配置 在创建了数库和各种数据库对象并装载了数据后,下一步是在数据库服务器与使用它的用户之间建立连 接,Oracle Net Services使这种连接成为可能.Oracle Net Services组件必须"存活"在客户机和服务器上,它们一般使用TCP/IP网络协议来建立客户机和数据库服务器之间的网络连接. 本文官方文档位置: http://docs.oracle.com/cd/E11882_01/network.

So Easy! Oracle在Linux上的安装配置系列三使用create database创建数据库

本文为So Easy! Oracle在Linux上的安装配置系列的第三篇,使用create database创建数据库,本序列第一篇介绍了学习实验环境的搭建包括:在win 7中使用VMware Workstation 创建虚拟机,安装CentOS-6.6-x86_64,网络配置 和使用xshell连接远程linux服务器,上传Oracle软件和使用操作系统安装光盘搭建本地yum源,第二篇专门说了Oracle11g R2在CentOS6.6上的安装,包括Oracle安装前的准备工作,并以图文详细介

So Easy! Oracle在Linux上的安装配置系列五

So Easy! Oracle在Linux上的安装配置系列五 本篇是监听器的配置的续篇,上一小节我们创建了一个监听器,创建了密码文,在监听和实例都启动的情况下,从远程windows即时客户端连接到了oracle服务器.本篇我将继续说监听器,还将完成相关的实验 以下内容整理自网络 Oracle 监听器 Listener 是一个重要的数据库服务器组件,在整个 Oracle 体系结构中,扮演着重要的作用.它负责管理 Oracle 数据库和客户端之间的通讯,它在一个特定的网卡端口(默认是TCP 1521

So Easy! Oracle在Linux上的安装配置系列一

So Easy! Oracle在Linux上的安装配置系列一 本文为So Easy!Oracle在linux上的安装和配置序列的第一篇Oracle安装基础环境的搭建 VMware Workstation 11.0 配置和CentOS-6.6-x86_64安装 本文环境及所需软件: Win7 Sevice Pack1 内存 6GB VMware Workstation 11.0  build-2305329 CentOS-6.6-x86_64-bin-DVD1.iso Xmanger Enterp

So Easy! Oracle在Linux上的安装配置系列七

So Easy! Oracle在Linux上的安装配置系列六 上几篇中,我们安装了oracle数据库软件,创建了数据库配置了监听,本篇是本系统文章的最后一篇,Oracle企业管理器的创建. 当完成了以上所有步骤后使用 $emctl start dbconsole 启动oracle企事业管理器,会出现以下错误,提示说没有设置ORACLE_UNQNAME环境变量 [[email protected] ~]$ emctl start dbconsoleEnvironment variable ORAC

So Easy! Oracle在Linux上的安装配置系列二

本篇是So Easy!Oracle11gr2在linux上的安装配置的第二篇,本篇将讲述oracle11g r2的安装 oracle安装的前期准备 oracle的安装 工具软件rlwrap-0.42.tar.gz的安装 oracle环境变量设置 文档位置: http://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm 1.oracle安装的前期准备 7安装Linux的一些基础开发包 # export LANG=en_US.UTF-8

ftp协议详解与vsftpd在linux上的安装配置

什么是FTP? FTP,文件传输协议,可以实现在网络上传输多种类型的文件 一个完整的FTP文件传输需要建立两种类型的连接,先建立控制连接,然后建立数据连接 控制连接:客户端首先向服务端的TCP21号端口发起建立连接的请求,服务器接收请求,完成控制连接的建立 数据连接:控制连接建立后,开始建立数据连接,用于传输文件.数据连接有主动传输模式和被动传输模式. 主动传输模式图 被动传输模式图 主动传输和被动传输的优缺点: 1.主动传输对FTP服务器的管理有利,但对客户端不利,因为客户端的防火墙可能会禁止

So Easy! Oracle在Linux上的安装配置系列六

oracle数据库的几种连接方法 上篇内容回顾 一个监听器配置文件中有一个或多个监听的协议地址,支持服务器的信息和控制运行时行为的参数,监听器配置存储在名为listener.ora的配置文件中,因为所有的配置参数都有默认值,所以在没有配置的情况下它仍然可以被启动和使用,这个默认监听器名字是LISTENET,它监听在以下TCP/IP协议地址,(ADDRESS=(PROTOCOL=tcp)(HOST=host_name)(PORT=1521))但这个默认监听器它在启动时不支持任何的服务 监听器转发客

linux上svn安装配置

1       SVN源码包下载 subversion-1.4.4.tar.bz2       http://subversion.tigris.org/downloads/subversion-1.4.4.tar.bz2 subversion-deps-1.4.4.tar.bz2  http://subversion.tigris.org/downloads/subversion-deps-1.4.4.tar.bz2 2       编译步骤 执行以下2条命令,解压得到源程序: tar -jx