您的位置:首页 > 编程语言 > Java开发

elasticsearch安装教程,集群搭建及jdbc同步 elasticsearch安装 elastic-head安装

2017-03-20 15:49 555 查看

elasticsearch安装教程,集群搭建及jdbc同步

elasticsearch安装

下载

安装之前,请确认已安装好最新版的JDK版本,下载linux安装包,我下载的是5.2.2版本

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.tar.gz

解压 tar -zxvf elasticsearch-5.2.2.tar.gz

启动

elastaicsearch启动在bin目录下执行 sh elasticsearch

如果直接执行会出现如下错误

root@vm-ubuntu-1:/data/app/elasticsearch-5.2.2/bin# sh elasticsearch
[2017-03-20T15:21:08,485][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.cli.Command.main(Command.java:88) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:89) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:82) ~[elasticsearch-5.2.2.jar:5.2.2]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:203) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.


这是ElasticSearch出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,因此可以创建一个单独的用户用来运行ElasticSearch。

1)创建单独的用户组和elsearch用户

groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch


2)更改/home/elasticsearch用户及组:

chown -R elsearch:elsearch  elasticsearch-5.2.2


3)允许其他网络访问

修改config里的elasticsearch.yml 添加下面配置

network.host: 0.0.0.0


3)启动

sh bin/elasticsearch


4)查看节点状态 查看是否启动成功

在界面输入:http://安装机器ip:9200/,页面回馈信息如下:

正常的话会返回如下

{
"name": "JtM9Sdm",
"cluster_name": "elasticsearch",
"cluster_uuid": "me8qO0StSi237lWDdy-UMg",
"version": {
"number": "5.2.2",
"build_hash": "f9d9b74",
"build_date": "2017-02-24T17:26:45.835Z",
"build_snapshot": false,
"lucene_version": "6.4.1"
},
"tagline": "You Know, for Search"
}


启动你会遇到如下问题

1、can not run elasticsearch as root

切换到非root用户

2、main ERROR Could not register mbeans java.security.AccessControlException: access denied (“javax.management.MBeanTrustPermission” “register”)

改变elasticsearch文件夹所有者到当前用户

sudo chown -R noroot:noroot elasticsearch

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

sudo vi /etc/sysctl.conf

添加下面配置:

vm.max_map_count=655360

并执行命令:

sudo sysctl -p

4、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

sudo vi /etc/security/limits.conf

添加如下内容:

soft nofile 65536

hard nofile 131072

soft nproc 2048

hard nproc 4096

sudo vi /etc/pam.d/common-session

添加 session required pam_limits.so

sudo vi /etc/pam.d/common-session-noninteractive

添加 session required pam_limits.so

elastaicsearch 集群搭建 分布式配置

修改配置文件

注意:如果是在局域网中运行elasticsearch集群也是很简单的,只要cluster.name设置一致,并且机器在同一网段下,启动的es会自动发现对方,组成集群。

修改config下的elasticsearch.yml文件

修改如下

#集群的名字
cluster.name: kuaima
#节点名
node.name: node-1
#允许其他机器访问
network.host: 0.0.0.0
#允许跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
#其他几点ip
discovery.zen.ping.unicast.hosts: ["192.168.88.116", "192.168.88.149","192.168.88.117"]


只要cluster.name名字一样,在同一局域网的其他机器会自动加入集群

查看集群状态节点状态

http://192.168.88.117:9200/_cat/health?v

会看到如下信息

epoch      timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1490089269 17:41:09  kuaima  green           3         3      0   0    0    0        0             0                  -                100.0%
```json

<div class="se-preview-section-delimiter"></div>

##安装elasticsearch-head插件
elasticsearch-head用于管理集群节点

<div class="se-preview-section-delimiter"></div>

###安装nodejs
如果没有安装git的话先安装git

<div class="se-preview-section-delimiter"></div>


yum -y install git

下载安装包

<div class="se-preview-section-delimiter"></div>

```linux
git clone git://github.com/mobz/elasticsearch-head.git


安装node和npm

安装方法参考

http://www.runoob.com/nodejs/nodejs-install-setup.html

1、下载源码,你需要在https://nodejs.org/en/download/下载最新的Nodejs版本,本文以v0.10.24为例:

wget https://nodejs.org/dist/v6.10.0/node-v6.10.0.tar.gz[/code] 
2、解压源码

tar -zxvf node-v6.10.0.tar.gz


因为现在nodejs依赖gccg++所以要安装

#Centos2 安装gcc
yum install gcc-c++
#Ubuntu 安装 gcc
apt-get install make gcc g++


3、 编译安装

cd node-v6.10.0
./configure --prefix=/data/app/node-v6.10.0
make
make install


4、 配置NODE_HOME,进入profile编辑环境变量

vim /etc/profile

设置nodejs环境变量,在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下内容:

#set for nodejs
export NODE_HOME=/data/app/node-v6.10.0
export PATH=$NODE_HOME/bin:$PATH


:wq保存并退出,编译/etc/profile 使配置生效

source /etc/profile

验证是否安装配置成功

node -v

修改elasticsearch.yml文件,如果前面配置过请忽略

#允许跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"


安装grunt所需依赖

cd elasticsearch-head
npm install
npm install -g grunt-cli
grunt server


在浏览器访问

http://192.168.88.149:9100/

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息