设为首页 收藏本站
查看: 1642|回复: 0

[经验分享] ElasticSearch集群部署总结

[复制链接]

尚未签到

发表于 2017-5-20 11:00:19 | 显示全部楼层 |阅读模式
摘要:世上有三类书籍:1、介绍知识,2、阐述理论,3、工具书;世间也存在两类知识:1、技术,2、思想。以下是我在部署 ElasticSearch集群时的经验总结,它们大体属于第一类知识“techknowledge(技术)”。但其中也穿插一些我个人的理解。敬请指 正。
 
关键词:ElasticSearch, 搜索引擎, 集群, 大数据, Solr, 大数据
三类书籍 和 两类知识:
 
        有一些书是对某一新知识领域的介绍,将此知识领域从头到尾、从内而外剖开了分析,吸收这些知识主要在于“记忆”,(也有“领会”)。而有一些好书,往 往整本书就是在阐述一句或几句话,一个或数个思想,这些就是这本书最重要的部分,主要在于“领会”。还有一些书可能就像是工具,例如字典,遇到问题去查就 好,主要在“查找”。也有各种类型掺杂的书。这几类书各有其方向、着重点,阅读时方法也不尽相同。
 
        对于各种林林总总的技术,无论是它的安装步骤、使用说明还是其疑难杂症,电子书、在网络中的文章及FAQ中总是会有解决办法;或者技术它存有尚未解决 的问题、待修复的BUG,也大部分能在网上找到答案,(不能找到的就等你来发明和创造了,诺贝尔奖就靠你咯!)。上面这些都属于 “techknowledge(技术)”的范畴,就像第一类或第三类书,主要在于“记忆”或“查找”。可是,还有一些思想上的、认知上的东西,网上是很难 获取的,也很不容易表达清楚,它们应该归类于“Thinking(思想)”,像是第二类书籍,重点在于“领会”。在分享“techknowledge(技 术)”的同时,我更希望把这些“Thinking(思想)”分享出来。
 
        以下是我在部署ElasticSearch集群时的经验总结,它们大体属于第一类知识“techknowledge(技术)”。但其中也穿插一些我个人的理解。敬请指正。
 
  
  〇、环境配置
  服务器:3台(node1 -> node3)
  操作系统:Cent OS 5.6,添加普通用户deploy
  ElasticSearch版本:1.7.1
  JDK版本:1.8
  一、安装JDK(所有服务器)
  在每台服务器(node1 -> node3)上安装JDK,安装过程略。
  以下二至六步可以选取某台服务器执行。
  二、安装ElasticSearch
  1、下载elasticsearch-1.7.1.tar.gz
  2、解压:[deploy@node1 ~]$ tar -xf elasticsearch-1.4.2.tar.gz
  三、安装elasticsearch-head插件
  elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序。
  1、联网环境,执行下面语句进行安装:
  [deploy@node1 ~]$ ./elasticsearch-1.7.1/bin/plugin -install mobz/elasticsearch-head
  2、离线安装:
  [deploy@node190 ~]$ unzip elasticsearch-head-master.zip
  [deploy@node1 ~]$ mkdir ./elasticsearch-1.7.1/plugins
  [deploy@node1 ~]$ mkdir ./elasticsearch-1.7.1/plugins/head
  [deploy@node1 ~]$ mkdir ./elasticsearch-1.7.1/plugins/head/_site
  [deploy@node1 ~]$ cp -r ~/elasticsearch-head-master/* ./elasticsearch-1.7.1/plugins/head/_site
  在执行:[deploy@node190 ~]$ ./elasticsearch-1.7.1/bin/elasticsearch
  启动ElasticSearch后,可以通过访问: http://node1:9200/_plugin/head/,
  可以看到如下图:
DSC0000.jpg

  四、安装elasticsearch-sql插件
  elasticsearch-sql插件可以做到:Query elasticsearch using familiar SQL syntax. You can also use ES functions in SQL.
  执行下面语句进行安装:
  [deploy@node1 ~]$ ./bin/plugin -u https://github.com/NLPchina/elasticsearch-sql/releases/download/1.3.5/elasticsearch-sql-1.3.5.zip --install sql
  在启动ElasticSearch后,可以通过访问: http://localhost:9200/_plugin/sql/,
  可以看到如下图:
DSC0001.jpg

  看到这个界面你也能想像到它是做什么的了吧?更多的信息可以去  https://github.com/NLPchina/elasticsearch-sql 获取,当然不能通过elasticsearch-sql把elasticsearch当关系型数据库用,但毕竟elasticsearch的查询语句不如solr那般简洁,所以对于熟悉sql的朋友,这样拼sql语句也是很方便的吧。此工具的开发者真是体贴。
  五、安装elasticsearch-Bigdesk插件
  bigdesk是elasticsearch的一个集群监控工具,可以通过它来查看es集群的各种状态,如:cpu、内存使用情况,索引数据、搜索情况,http连接数等。
  1、联网环境
  [deploy@node1 ~]$ ./bin/plugin -install lukas-vlcek/bigdesk
  在启动ElasticSearch后,可以通过访问: http://node1:9200/_plugin/bigdesk/,
  可以看到如下图:
DSC0002.jpg

DSC0003.jpg

  这个插件使得elasticsearch太直观了,数据在哪、怎么变动的都显示的一清二楚,大赞!为啥Solr没有这样的东东呢?
  六、安装elasticsearch-servicewrapper插件
  elasticsearch-servicewrapper插件是ElasticSearch的服务化插件。
  在https://github.com/elasticsearch/elasticsearch-servicewrapper下载该插件后,解压缩。将service目录拷贝到elasticsearch目录的bin目录下。
  而后,可以通过执行以下语句安装、启动、停止ElasticSearch。(先不要执行)
  [iyunv@node1 service]# sh elasticsearch install(Must be root to perform this action.)
  [iyunv@node1 service]# sh elasticsearch start
  [iyunv@node1 service]# sh elasticsearch stop
  这个插件也是实用的不要不要的。没有此插件,有多少人还要写一个脚本来开机启动啊。需要的请举手!
  七、将配置好的ElasticSearch拷贝到各服务器
  在一台服务器上执行完成步骤二到步骤七后,得到最终的elasticsearch-1.7.1文件夹。将此文件夹打包并scp拷贝到各服务器。
  八、配置ElasticSearch集群
  在各服务器(node1 -> node3)中。
  执行下面语句对配置文件elasticsearch.yml中的内容进行修改:
  [deploy@node1 ~]$ vim elasticsearch-1.7.1/config/elasticsearch.yml
  修改elasticsearch.yml后的部分文件内容:
  ################################### Cluster ###################################
  # Cluster name identifies your cluster for auto-discovery. If you're running
  # multiple clusters on the same network, make sure you're using unique names.
  #
  cluster.name: elasticsearch_deploy
  #################################### Node #####################################
  # Node names are generated dynamically on startup, so you're relieved
  # from configuring them manually. You can tie this node to a specific name:
  #
  node.name: "node196"
  九、启动ElasticSearch集群
  可以通过执行sh elasticsearch start或./elasticsearch语句启动ElasticSearch。
  也 可以在通过执行[iyunv@node1 service]# sh elasticsearch install后,通过执行: [iyunv@node1 service]# chmod 777  /home/deploy/elasticsearch-1.7.1/bin /service/elasticsearch,分配给elasticsearch执行权限。执行[iyunv@node1 service]# /etc /init.d/elasticsearch start启动ElasticSearch服务。而后就可以执行 [iyunv@node1 service]# service elasticsearch start来启动ElasticSearch了。系统 reboot后也能开机启动。
  在所有服务器(node1 -> node3)上的ElasticSearch配置相同的cluster.name后,依次启动各服务器上的ElasticSearch,便可以通过bigdesk查看该集群下的所有node状态。集群启动结束。
  十、ElasticSearch集群功能测试
  可以在head页面新建索引、删除索引、数据浏览、查询等操作,新建索引时需要设置分片数、副本数,可以在bigdesk页面进行分片及副本的查看。
  数据均存储于elasticsearch-1.7.1/data目录下,以cluster.name进行分目录存储。下图说明了两个cluster.name的存储方式。
DSC0004.jpg  

  我们对已启动的(node1 -> node3)上的ElasticSearch进行监控。下面图1 -> 图4是当集群中一个node重启时,集群内数据复制移动的过程。索引的分片数为5,副本数为1。
DSC0005.jpg              DSC0006.jpg

  图1: 三个node稳定后                                                         图2: 关闭一个node196
DSC0007.jpg           DSC0008.jpg

  图3: 两个node稳定后                                              图4: 启动node196,恢复三个node稳定后
  可以通过上面的操作和形象的图形,看到宕机一个对这个集群真是一点关系都没有,数据在各服务器间自如流动、分布,各服务器并无主次之分。
  Solr 我也用过很久,我个人感觉,ElasticSearch比Solr好就好在有那么多好用的插件可以用,即有形象直观的显示,又有方便实用的工具,真是感谢 这些开源贡献者们,没有你们就没有这么一个好用的搜索引擎ElasticSearch了,很多的公司业务也便无法开展了!当然ElasticSearch 目前也有不少亟需解决的问题,以后有空再聊。

 
  http://itindex.net/detail/54467-elasticsearch-%E9%9B%86%E7%BE%A4-%E6%80%BB%E7%BB%93
  http://itindex.net/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-379278-1-1.html 上篇帖子: ElasticSearch初学【转载】 下篇帖子: Elasticsearch配置内存
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表