Elasticsearch在Centos 7上的安装与配置

安装JDK 8

Elasticsearch官方建议使用 Oracle的JDK8,在安装之前首先要确定下机器有没有安装JDK.

1

rpm -qa | grep -E '^open[jre|jdk]|j[re|dk]'

如果有,有可能是系统自带的openjdk,而非oracle的jdk。可以使用 rpm -qa | grep Java | xargs rpm -e --nodeps 批量卸载所有带有Java的文件,然后进行重新安装。

命令行下载 JDK 有个麻烦的地方,必须先要接受 Oracle 的许可协议,不过可以通过设置 cookie 来解决。

1

2

3

wget --no-check-certificate --no-cookies \

     --header "Cookie: oraclelicense=accept-securebackup-cookie" \

     http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-x64.tar.gz

直接解压 tar -zxvf jdk-8u101-linux-x64.tar.gz 后。配置环境变量:

1

vi /etc/profile

添加如下内容,并保存:

1

2

3

4

5

# set java environment

export JAVA_HOME=/usr/local/jdk1.8.0_101

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:${PATH}

保存后运行 source /etc/profile  使环境变量生效

输入 java -version 确认是否安装成功。

1

2

3

4

[root@localhost local]# java -version

java version "1.8.0_101"

Java(TM) SE Runtime Environment (build 1.8.0_101-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

 

安装Elasticsearch

手动安装elasticsearch

最简单的方式是通过Yum或rpm的方式进行安装,这里介绍的是手动安装的方法:

1、进入官网查看最新版本的下载链接

2、使用命令行进行下载:

1

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.0/elasticsearch-2.4.0.tar.gz

3、解压文件

1

tar -zxvf elasticsearch-2.4.0.tar.gz

4、运行elasticsearch

执行 sh /usr/local/elasticsearch-2.4.0/bin/elasticsearch -d  其中-d表示后台启动

不出意外,可以看到如下报错信息:

1

2

3

4

5

6

[root@localhost bin]# Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.

       at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:94)

       at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:160)

       at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286)

       at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

Refer to the log for complete error details.

原因是elasticsearch默认是不支持用root用户来启动的。

解决方案一:Des.insecure.allow.root=true

修改/usr/local/elasticsearch-2.4.0/bin/elasticsearch,添加 ES_JAVA_OPTS="-Des.insecure.allow.root=true"

或执行时添加: sh /usr/local/elasticsearch-2.4.0/bin/elasticsearch -d -Des.insecure.allow.root=true

注意:正式环境用root运行可能会有安全风险,不建议用root来跑。

解决方案二:添加专门的用户

1

2

3

4

useradd elastic

chown -R elastic:elastic  elasticsearch-2.4.0

su elastic

sh /usr/local/elasticsearch-2.4.0/bin/elasticsearch -d

使用 curl http://localhost:9200/ 查看是否运行,如果返回如下信息则标示运行正常:

1

2

3

4

5

6

7

8

9

10

11

12

13

[elastic@localhost local]$ curl http://localhost:9200/

{

  "name" : "Astrid Bloom",

  "cluster_name" : "elasticsearch",

  "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默认restful-api的端口是9200 不支持Ip地址,只能在本机用http://localhost:9200来访问。如果需要改变,需要修改配置文件。

默认情况下 Elasticsearch 的 RESTful 服务只有本机才能访问,也就是说无法从主机访问虚拟机中的服务。为了方便调试,可以修改 /etc/elasticsearch/config/elasticsearch.yml 文件,加入以下两行:

1

2

network.bind_host: “0.0.0.0"

network.publish_host: _nonloopback:ipv4

或去除network.host 和http.port之前的注释,并将network.host的IP地址修改为本机外网IP。然后重启,Elasticsearch 关闭方法(输入命令: ps -ef | grep elasticsearch ,找到进程,然后kill掉就行了。

如果外网还是不能访问,则有可能是防火墙设置导致的。

使用YUM进行安装

添加elasticsearch的repo,在/etc/yum.repos.d/下新增elasticsearch.repo:

1

vi /etc/yum.repos.d/elasticsearch.repo

文件内容如下:

1

2

3

4

5

6

7

8

[elasticsearch-5.x]

name=Elasticsearch repository for 5.x packages

baseurl=https://artifacts.elastic.co/packages/5.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

然后使用最简单的yum命令即可进行安装:

1

yum install elasticsearch

 

使用RPM进行安装

 

1

2

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.rpm

rpm --install elasticsearch-5.1.1.rpm

也是非常的简单。

防火墙设置

1、关闭selinux

1

2

sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

setenforce 0

2、安装firewall

yum install firewalld firewall-config

1

2

3

systemctl start firewalld.service

systemctl enable firewalld.service

systemctl status firewalld.service

3、开放端口

1

2

3

4

firewall-cmd --permanent --add-port={9200/tcp,9300/tcp}

firewall-cmd --reload

firewall-cmd --state

firewall-cmd --list-all

至此,elasticsearch就顺利安装完成了,但是为了更好的使用,还需要安装中文分析工具等插件,下篇文章再做介绍。

使用systemd管理elasticsearch服务

 

1

2

3

4

/bin/systemctl daemon-reload #重启加载systemd

/bin/systemctl enable elasticsearch.service #自启动elasticsearch

systemctl start elasticsearch.service #启动elasticsearch

systemctl stop elasticsearch.service #停止elasticsearch

 

elsticsearch配置说明

如果使用yum或rpm方式安装Elasticsearch默认的配置文件地址是:/etc/elasticsearch/elasticsearch.yml,详细的配置说明可以参考Configuring Elasticsearch。另外还有一个系统配置存放在/etc/sysconfig/elasticsearch,可设置的内容包含如下参数:

ES_USERThe user to run as, defaults to elasticsearch.
ES_GROUPThe group to run as, defaults to elasticsearch.
JAVA_HOMESet a custom Java path to be used.
MAX_OPEN_FILESMaximum number of open files, defaults to 65536.
MAX_LOCKED_MEMORYMaximum locked memory size. Set to unlimited if you use thebootstrap.memory_lock option in elasticsearch.yml.
MAX_MAP_COUNTMaximum number of memory map areas a process may have. If you use mmapfsas index store type, make sure this is set to a high value. For more information, check the linux kernel documentation about max_map_count. This is set via sysctl before starting elasticsearch. Defaults to 262144.
LOG_DIRLog directory, defaults to /var/log/elasticsearch.
DATA_DIRData directory, defaults to /var/lib/elasticsearch.
CONF_DIRConfiguration file directory (which needs to include elasticsearch.ymland log4j2.properties files), defaults to /etc/elasticsearch.
ES_JAVA_OPTSAny additional JVM system properties you may want to apply.
RESTART_ON_UPGRADEConfigure restart on package upgrade, defaults to false. This means you will have to restart your elasticsearch instance after installing a package manually. The reason for this is to ensure, that upgrades in a cluster do not result in a continuous shard reallocation resulting in high network traffic and reducing the response times of your cluster.

另外,一些默认安装的文件路径如下:

TypeDescriptionDefault LocationSetting
homeElasticsearch home directory or $ES_HOME/usr/share/elasticsearch 
binBinary scripts including elasticsearch to start a node and elasticsearch-plugin to install plugins/usr/share/elasticsearch/bin 
confConfiguration files including elasticsearch.yml/etc/elasticsearchpath.conf
confEnvironment variables including heap size, file descriptors./etc/sysconfig/elasticsearch 
dataThe location of the data files of each index / shard allocated on the node. Can hold multiple locations./var/lib/elasticsearchpath.data
logsLog files location./var/log/elasticsearchpath.logs
pluginsPlugin files location. Each plugin will be contained in a subdirectory./usr/share/elasticsearch/plugins 
repoShared file system repository locations. Can hold multiple locations. A file system repository can be placed in to any subdirectory of any directory specified here.Not configuredpath.repo
scriptLocation of script files./etc/elasticsearch/scriptspath.scripts

参考链接:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那些年的代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值