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相关推荐

  1. Ubuntu系统安装Hadoop3.1.3并进行单机/伪分布式配置

    Ubuntu系统安装Hadoop3.1.3并进行单机/伪分布式配置 文章目录 Ubuntu系统安装Hadoop3.1.3并进行单机/伪分布式配置 前言 详细流程 创建Hadoop用户 安装Java 配 ...

  2. Ubuntu安装HBase2.2.4并进行单机/伪分布式配置

    Ubuntu安装HBase2.2.4并进行单机/伪分布式配置 文章目录 Ubuntu安装HBase2.2.4并进行单机/伪分布式配置 前言 版本兼容性 详细流程 安装HBase2.2.4 HBase单 ...

  3. 单机和分布式场景下,有哪些流控方案?

    简介:不同的场景下所需的流控算法不尽相同,那应该如何选择适用的流控方案呢?本文分享单机及分布式流控场景下,简单窗口.滑动窗口.漏桶.令牌桶.滑动日志等几种流控算法的思路和代码实现,并总结了各自的复杂度 ...

  4. apollo 配置中心_apollo-1:apollo配置中心单机模拟分布式部署

    原创:微信公众号:千里行走: 受限图片大小限制,有些图片不是很清晰,可以到微信公众号查看: 1.随着微服务和容器化大行起到,配置中心的重要性越来越高,携程的apollo(几月eureka)是其中的佼佼 ...

  5. python并行计算numpy_【Nature文章摘录】NumPy: 从单机到分布式并行计算

    原标题:[Nature文章摘录]NumPy: 从单机到分布式并行计算 点击上图,查看详情 本公众号的推送以互联网大数据技术为主,是<互联网大数据处理技术与应用><Python爬虫大数 ...

  6. Win7 单机Spark和PySpark安装

    Win7 单机Spark和PySpark安装 欢呼一下先.软件环境菜鸟的我终于把单机Spark 和 Pyspark 安装成功了.加油加油!!! 1. 安装方法参考: 已安装Pycharm 和 Inte ...

  7. Hadoop单机伪分布式安装(完整版)

    在学习Hadoop时,我发现网上的各种安装的资料要不不全,要不前后不匹配(比如有的是伪分布式,有的是完全分布式).此篇文章,我总结了身边的同学在安装Hadoop时遇到的毛病,在前面安装配置环节,尽可能 ...

  8. Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)

    厦门大学(林子雨老师)Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)

  9. Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    给力星 追逐内心的平和 首页 笔记 搜藏 代码 音乐 关于 Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04 2014-08-09 (updated: 2016 ...

最新文章

  1. 在Sun Enterprise Server上配置SCSI磁带机
  2. 阵列卡缓存电池充放电问题详解
  3. Tomcat下log4j设置文件路径和temp目录
  4. 判断一个字符串中的字符是否唯一
  5. swoole安装全纪录
  6. nodeJs配置相关以及JSON.parse
  7. 18、数据的备份和还原
  8. Python四大金刚之四:集合
  9. html 转word c#,c#操作word类,进行html和word文档的互相转换
  10. c#中base64加密解密
  11. kodi pvr 不能安装_Kodi添加m3u8直播源教程 使用PVR IPTV Simple Client看电视直播
  12. 替换swf文件中的图片
  13. linux虚拟网卡卸载,virbr0虚拟网卡如何卸载?virbr0虚拟网卡的卸载方法
  14. SpringCloud Gateway详解与配置
  15. 生产环境突然编译报错:‘XXXX‘ is not defined no-undef
  16. Spring 你让我伤透了个心啊!
  17. Unity 使用混音器AudioMixer改变语速而不改变音色
  18. 变异系数在线计算机,数理统计在线计算器
  19. 经营性ICP与非经营性ICP有什么区别?
  20. 如何下载知网上的论文?

热门文章

  1. scrollTo与smoothScrollTo的区别
  2. 运维的shell小编(6)
  3. 『中级篇』Minikube快速搭建K8S单节点环境(61)
  4. 六周第四次课(5月2日)
  5. Oracle维护常用SQL语句
  6. 十种工具审核网络安全
  7. 网站SEO优化、IIS日志分析工具 IISLogViewer V2.0 发布
  8. Spring Cloud分布式微服务云架构—源码结构图
  9. 如何选择合适的分布式机器学习平台
  10. FuncT、ActionT 的区别于说明