Elasticsearch5.3.1+Kibana5.3.1从单机到分布式的安装与使用1
2019独角兽企业重金招聘Python工程师标准>>>
一、Elasticsearch,Kibana简介:
Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域, Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API 来隐藏Lucene的复杂性,从而让全文搜索变得简单。
Elasticsearch支持分布式的实时文件存储以及实时分析搜索,具有高度的可扩展性可扩展至上百台服务器,能够处理PB级的结构化和非结构化数据。
Elasticsearch同时也为各种语言调用提供了接口(Curl,JavaC#,Python,JavaScript PHP,Perl,Ruby),包括hadoop,spark都可以做对接。
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等kibana能够很轻易地展示高级数据分析与可视化。Kibana让我们理解大量数据变得很容易。它简单、基于浏览器的接口使你能快速创建和分享实时展现Elasticsearch查询变化的动态仪表盘。
二、Elasticsearch,Kibana的安装使用:
1、环境准备:
- 安装环境:centos6.5,Jdk1.8,Elasticsearch5.3.1,Kibana5.3.1
- 下载地址:https://www.elastic.co/cn/products可下载ES和Kibana。
- 安装虚拟机centos6.5。
- 安装JDK1.8:解压缩包-》配环境变量。
tar –zxvf jdk-8u121-linux-x64.tar.gz mv jdk1.8.0_121 java sudo vim /etc/profile export JAVA_HOME=/home/rzxes/java export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
2、默认配置安装Elasticsearch5.3.1,Kibana5.3.1:
- EK安装非常简单,开箱即用,如果只是简单的使用,无需配置,解压两个压缩包之后可直接启动。(默认ES访问:localhost:9200,Kibana访问:localhost:5601,这种配置在虚拟机外无法通过IP访问)kibana启动之后会默认的去连接localhost:9200。
[rzxes@rzxes ~]$ lselasticsearch-5.3.1 kibana[rzxes@rzxes ~]$ elasticsearch-5.3.1/bin/elasticsearch //启动ES [rzxes@rzxes ~]$ kibana/bin/kibana //启动kibana
3、编辑配置安装EK(单机单节点):
- 编辑ES配置文件: [rzxes@rzxes ~]$ vim elasticsearch-5.3.1/config/elasticsearch.yml 修改如下两个即可http.port可改。
network.host:本机IP #也有配置为 0.0.0.0 表示任何一个IP都可以访问到。这种方式在本机可以,但是外部访问的话可能会有问题。 http.port: 9200
- 编辑Kibana配置: [rzxes@rzxes ~]$ vim kibana/config/kibana.yml
server.port: 5601 server.host: "本机IP" elasticsearch.url: "http://本机IP:9200"
- 启动EK:
[rzxes@rzxes ~]$ elasticsearch-5.3.1/bin/elasticsearch //启动ES [rzxes@rzxes ~]$ kibana/bin/kibana //启动kibana
- 访问端口: [rzxes@rzxes elasticsearch-5.3.1]$ curl -XGET http://192.168.230.150:9200/ 结果如下则成功。
{"name" : "node-1","cluster_name" : "es","cluster_uuid" : "bbCPwel7Tn-1cip2rsFWRQ","version" : {"number" : "5.3.1","build_hash" : "5f9cf58","build_date" : "2017-04-17T15:52:53.846Z","build_snapshot" : false,"lucene_version" : "6.4.2"},"tagline" : "You Know, for Search" }
- 浏览器访问9200:http://192.168.230.150:9200可得到上一步同样结果。
- 浏览器访问5601:http://192.168.230.150:5601.第一次Kibana会进入创建索引的界面,这里创建名为*的索引匹配数据(由于开始没有数据)。(取消掉所有打钩的地方)点击Create成功会显示在左侧。可以看到所有的功能组件。
4、Es-head插件的安装使用:
Es-head是一个界面化的集群操作和管理工具 ,可以和ES集成,也可以作为单独的一个app,通过界面可以清楚的看到集群的索引,分片,节点的分布,以及进行各种查询操作。
- 安装node.js:下载编译好的包,解压,配置环境变量
sudo vim /etc/profile #末尾node添加环境变量 #node bin export PATH=/home/rzxes/node/bin:$PATH
- 保存退出,使其立即生效: source /etc/profile
在node包的bin目录下有两个脚本:node和npm,查看是否配置成功: npm -version , node -v 显示版本号则成功
- 进入ES安装目录,获取ES-head安装包: git clone git://github.com/mobz/elasticsearch-head.git
配置Es-head:
- 编辑Gruntfile.js: [rzxes@rzxes elasticsearch-head]$ vim Gruntfile.js
- 修改监听hostname为:*
connect: {server: {options: {port: 9100,hostname: '*',base: '.',keepalive: true}} }
- 修改head的连接地址localhost换为本机IP: [rzxes@rzxes elasticsearch-head]$ vim _site/app.js
- 找到init function(options){ this._super(); }: this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://IP:9200"; localhost换成ip####不过我这里原本并没有这一行,是自己直接添加上的,后面再搭建集群的时候把这一句注释掉了也并没有出现问题。
- 进入Es-head目录:执行以下命令:[grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,5.x里的head插件就是通过grunt启动的。因此需要安装一下grunt]
npm install grunt npm install -g grunt-cli npm install
每一步执行成功进行下一步,[可能存在以下资源配置不了,是由于网络问题(可以连VPN,或者用天猫镜像)]若出现以下问题:
error: Failed at the phantomjs-prebuilt@2.1.14 install script ‘node install.js’
解决方法: npm install phantomjs-prebuilt@2.1.14 --ignore-scripts
若以上nmp install 成功,则直接用 grunt server 启动服务(es要先启动),如下则成功:
[rzxes@rzxes elasticsearch-head]$ grunt server Running "connect:server" (connect) task Waiting forever... Started connect web server on http://localhost:9100
访问:http://ip:9100/ 可以看到如下节点则说明成功。
- 到此单机版EK安装完毕。
三、Elasticsearch,Kibana安装中的异常解决:
1、[ WARN]:seccomp unavailable:requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in。
- 警告内核版本太低!,忽略警告。
2、[ERROR]:max number of threads [1024] for user [rzxes] is too low, increase to at least [2048]。
- sudo vim /etc/security/limits.d/90-nproc.conf 把1024改成2048。
3、[ERROR]:max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]。
- Sudo vim /etc/security/limits.conf ,末尾添加如下两行:
- * hard nofile 65536
- * soft nofile 65536
- 查看: ulimit -Hn 结果是65536则修改成功。
4、[ERROR]:system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk。
vim config/elasticsearch.yml 添加如下:
- bootstrap.system_call_filter: false
5、[ERROR]:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]。
- 修改/etc/sysctl.conf sudo vim /etc/sysctl.conf ,最后添加: vm.max_map_count=262144 。
- 使用 sysctl -p 查看修改后的结果。
四、Elasticsearch,Kibana分布式安装:
ES的分布式和Kibana没什么关系哦,分布式数据分散在各个节点以分片和副本保证安全容灾,Kibana并不参与,仍旧只是做可视化。ES的分布式搭建也非常简单,没有什么复杂的配置,我们只需要将以上单机部署的虚拟机进行克隆分别命名为rzxesn2,rzxesn3。然后稍加配置即可。
1、基本环境配置:
- 虚拟机rzxes克隆(完全克隆)出rzxesn2,rzxesn3,并打开虚拟机。
- 修改hostname:因为克隆后用户名密码hostname完全相同,但是IP不同,所以需要修改hostname将其区分开。修改后如下:
hostname IP user pass -------------------------------------------- rzxes 192.168.230.150 rzxes 123456 rzxesn2 192.168.230.151 rzxes 123456 rzxesn3 192.168.230.152 rzxes 123456
- 修改配置文件:主要是三点:集群名相同,端口号不同,节点名不同。配置如下:红色标记为不同之处。
- rzxes配置: [rzxes@rzxes elasticsearch-5.3.1]$ vim config/elasticsearch.yml 详细如下:
#集群名必须统一,否则是不能组成集群的 cluster.name: es #节点名需不同 node.name: node-1 # IP换成各自本机IP,三个端口号需要修改成不同 network.host: 192.168.230.150 http.port: 9200 #主机请求列表[集群节点自动发现和Master选举的配置], discovery.zen.ping.unicast.hosts: ["192.168.230.150", "192.168.230.151", "192.168.230.152"] #这两个路径可以不配,默认es根路径下的data,logs,但是如果单机运行了就需要删除生成的这两个文件夹,否侧会出错,因为启动生成instance的信息会保存,修改配置后再启动出现instance ID不匹配就不能够够形成集群。 path.data: /path/to/data path.logs: /path/to/logsbootstrap.system_call_filter: false bootstrap.memory_lock: false #配置跨域请求允许 http.cors.enabled : true http.cors.allow-origin: "*"
- rzxesn2配置: [rzxes@rzxesn2 elasticsearch-5.3.1]$ vim config/elasticsearch.yml 详细如下:
cluster.name: es #节点名需不同 node.name: node-2 # IP换成各自本机IP,三个端口号需要修改成不同 network.host: 192.168.230.151 http.port: 9202 discovery.zen.ping.unicast.hosts: ["192.168.230.150", "192.168.230.151", "192.168.230.152"] path.data: /path/to/data path.logs: /path/to/logs bootstrap.system_call_filter: false bootstrap.memory_lock: false http.cors.enabled : true http.cors.allow-origin: "*"
- rzxesn3配置: [rzxes@rzxesn3 elasticsearch-5.3.1]$ vim config/elasticsearch.yml 详细如下:
cluster.name: es #节点名需不同 node.name: node-3 # IP换成各自本机IP,三个端口号需要修改成不同 network.host: 192.168.230.152 http.port: 9203 discovery.zen.ping.unicast.hosts: ["192.168.230.150", "192.168.230.151", "192.168.230.152"] path.data: /path/to/data path.logs: /path/to/logs bootstrap.system_call_filter: false bootstrap.memory_lock: false http.cors.enabled : true http.cors.allow-origin: "*"
2、分布式启动:
- 分别启动三个ES: bin/elasticsearch 。正常起动会共同推举一个节点做Master。详情如下:
- node-1最先启动,当node-2启动,node-1 added (node-2)到集群,
- node-2推举master为node-1
- node-3推举master为node-1
- 启动es-head,查看集群状况: [rzxes@rzxes elasticsearch-head]$ grunt server 结果如下:(如下是再导入数据之后,后面会详细写)
- 访问9100端口:http://192.168.230.150:9100/
- 如此,分布式就搭建完成了,这里默认的是5个分片(0,1,2,3,4)一个副本。
3、分布式搭建可能遇到的问题:
- [ERROR]:with the same id but is a different node instance
解决:删除data,logs目录(所有节点都要删除)重新启动。(这也是我在前面配置文件中提到的Cluster ID不同造成的问题)
注意:
1、所有复制粘贴的空格重新敲一遍,配置的冒号“:”后面必须跟空格,一旦提示找不到":"则说明是空格有问题。
2、Es不能以root启动,需要创建自己的用户:[因为我是直接在用户目录下操作的,不存在这种问题,所以放在后面写给用root角色启动的用户]
# 创建用户名为 rzxes的用户 useradd rzxes -p # 设置 rzxes 用户的密码 passwd 123456 # 将es目录的拥有者设置为 es chown -R rzxes:rzxes /home/rzxes/elasticsearch-5.3.1
转载于:https://my.oschina.net/u/1867229/blog/1507397
Elasticsearch5.3.1+Kibana5.3.1从单机到分布式的安装与使用1相关推荐
- Ubuntu系统安装Hadoop3.1.3并进行单机/伪分布式配置
Ubuntu系统安装Hadoop3.1.3并进行单机/伪分布式配置 文章目录 Ubuntu系统安装Hadoop3.1.3并进行单机/伪分布式配置 前言 详细流程 创建Hadoop用户 安装Java 配 ...
- Ubuntu安装HBase2.2.4并进行单机/伪分布式配置
Ubuntu安装HBase2.2.4并进行单机/伪分布式配置 文章目录 Ubuntu安装HBase2.2.4并进行单机/伪分布式配置 前言 版本兼容性 详细流程 安装HBase2.2.4 HBase单 ...
- 单机和分布式场景下,有哪些流控方案?
简介:不同的场景下所需的流控算法不尽相同,那应该如何选择适用的流控方案呢?本文分享单机及分布式流控场景下,简单窗口.滑动窗口.漏桶.令牌桶.滑动日志等几种流控算法的思路和代码实现,并总结了各自的复杂度 ...
- apollo 配置中心_apollo-1:apollo配置中心单机模拟分布式部署
原创:微信公众号:千里行走: 受限图片大小限制,有些图片不是很清晰,可以到微信公众号查看: 1.随着微服务和容器化大行起到,配置中心的重要性越来越高,携程的apollo(几月eureka)是其中的佼佼 ...
- python并行计算numpy_【Nature文章摘录】NumPy: 从单机到分布式并行计算
原标题:[Nature文章摘录]NumPy: 从单机到分布式并行计算 点击上图,查看详情 本公众号的推送以互联网大数据技术为主,是<互联网大数据处理技术与应用><Python爬虫大数 ...
- Win7 单机Spark和PySpark安装
Win7 单机Spark和PySpark安装 欢呼一下先.软件环境菜鸟的我终于把单机Spark 和 Pyspark 安装成功了.加油加油!!! 1. 安装方法参考: 已安装Pycharm 和 Inte ...
- Hadoop单机伪分布式安装(完整版)
在学习Hadoop时,我发现网上的各种安装的资料要不不全,要不前后不匹配(比如有的是伪分布式,有的是完全分布式).此篇文章,我总结了身边的同学在安装Hadoop时遇到的毛病,在前面安装配置环节,尽可能 ...
- Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)
厦门大学(林子雨老师)Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)
- Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04
给力星 追逐内心的平和 首页 笔记 搜藏 代码 音乐 关于 Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04 2014-08-09 (updated: 2016 ...
最新文章
- 在Sun Enterprise Server上配置SCSI磁带机
- 阵列卡缓存电池充放电问题详解
- Tomcat下log4j设置文件路径和temp目录
- 判断一个字符串中的字符是否唯一
- swoole安装全纪录
- nodeJs配置相关以及JSON.parse
- 18、数据的备份和还原
- Python四大金刚之四:集合
- html 转word c#,c#操作word类,进行html和word文档的互相转换
- c#中base64加密解密
- kodi pvr 不能安装_Kodi添加m3u8直播源教程 使用PVR IPTV Simple Client看电视直播
- 替换swf文件中的图片
- linux虚拟网卡卸载,virbr0虚拟网卡如何卸载?virbr0虚拟网卡的卸载方法
- SpringCloud Gateway详解与配置
- 生产环境突然编译报错:‘XXXX‘ is not defined no-undef
- Spring 你让我伤透了个心啊!
- Unity 使用混音器AudioMixer改变语速而不改变音色
- 变异系数在线计算机,数理统计在线计算器
- 经营性ICP与非经营性ICP有什么区别?
- 如何下载知网上的论文?