10-11
2018
龙芯平台快速搭建Elasticsearch:开源的搜索和大数据分析引擎
一、Elasticsearch背景![](/uploads/allimg/181012/2-1Q012135Q3291.jpg)
(4)解压完成后,启动elasticsearch服务
![](/uploads/allimg/181012/2-1Q01214393C27.jpg)
(5)在浏览器输入http://localhost:9200,可看到elasticsearch-5.2.0服务已启动。
![](/uploads/allimg/181012/2-1Q012144000251.jpg)
![](/uploads/allimg/181012/2-1Q012144031508.jpg)
(2)在安装nodejs的过程中,如遇到上图问题,证明中标的yum源不可用,我们需要修改yum源的配置文件
![](/uploads/allimg/181012/2-1Q012144103218.jpg)
(3)打开ns7-mips.repo配置文件,将下图的ftp改为http,保存后退出。
![](/uploads/allimg/181012/2-1Q01214412J38.jpg)
(4)修改好中标的yum源后,重新安装nodejs
![](/uploads/allimg/181012/2-1Q012144142H2.jpg)
由于npm是随同nodejs一起安装的包管理工具,能解决nodejs代码部署上的很多问题,所以在安装nodejs过程中,npm也一并安装了。
(5)验证nodejs和npm是否安装成功
![](/uploads/allimg/181012/2-1Q012144202625.jpg)
(2)然后开始安装grunt
![](/uploads/allimg/181012/2-1Q012144243T4.jpg)
![](/uploads/allimg/181012/2-1Q01214431Q93.jpg)
(4)在执行过程中会出现缺少插件的报错,接下来我们会有一系列grunt插件的安装,他们的安装过程和grunt一样。但是他们的执行都是基于grunt的,因此才能把grunt叫做一个“构建工具”。grunt没有具体的作用,但是它能把有具体作用的一个一个插件组合起来,形成一个整体效应。
开始一个一个插件安装:
![](/uploads/allimg/181012/2-1Q012144543Q2.jpg)
![](/uploads/allimg/181012/2-1Q012144Q1301.jpg)
![](/uploads/allimg/181012/2-1Q012144R4Z3.jpg)
![](/uploads/allimg/181012/2-1Q012144S5616.jpg)
![](/uploads/allimg/181012/2-1Q012144Tc02.jpg)
![](/uploads/allimg/181012/2-1Q012144Z62Q.jpg)
![](/uploads/allimg/181012/2-1Q012145003E7.jpg)
![](/uploads/allimg/181012/2-1Q012145020396.jpg)
(2)修改_site/app.js文件,可根据需要修改head的连接地址。
![](/uploads/allimg/181012/2-1Q0121450403a.jpg)
![](/uploads/allimg/181012/2-1Q012145100504.jpg)
(2)在网页上访问Elasticsearch服务的前端插件head:http://localhost:9100(注意该端口号已经不是之前的9200,而是head 插件中的 9100 )
![](/uploads/allimg/181012/2-1Q012145213633.jpg)
(3)上图所示的页面“集群健康值:未连接”,说明连接还存在问题。解决方案是修改 elasticsearch-5.2.0/config/ elasticsearch.yml文件,在文件最下方添加 :
http.cors.enabled: true
http.cors.allow-origin: “*”
![](/uploads/allimg/181012/2-1Q012145233222.jpg)
![](/uploads/allimg/181012/2-1Q012145250K4.jpg)
(4)elasticsearch.yml文件修改完成保存后,重新启动elasticsearch服务即可。
![](/uploads/allimg/181012/2-1Q012145311W4.jpg)
(5)再次访问http://localhost:9100
![](/uploads/allimg/181012/2-1Q012145329116.jpg)
![](/uploads/allimg/181012/2-1Q012135Q3291.jpg)
▲ Elasticsearch形象标识
互联网产品中的检索功能随处可见。当你的项目规模是百度搜索这种体量的时候,自己开发一个搜索引擎,加入各种定制的需求和优化,是非常自然的事情。但如果只是普通的中小型项目,直接用一个搜索引擎的基础服务即可。Elasticsearch就是这样一个搜索引擎的基础服务。更重要的是,除去常规的全文检索功能之外,它还具有基础的统计分析功能(最常见的就是聚合),这也让他变得更加强大和实用。还在用数据库的like来实现产品的全文检索吗?抛弃它,用Elasticsearch吧。
Elasticsearch是一个分布式可扩展的实时搜索和分析引擎,建立在全文搜索引擎 Apache Lucene(TM) 基础上,Elasticsearch并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:
(1)分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
(2)实时分析的分布式搜索引擎。
(3)可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
![](/uploads/allimg/181012/2-1Q012135T6252.jpg)
▲ Elasticsearch分布式架构
我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。因此,集合了运行速度快、零配置和免费、简单地使用JSON通过HTTP来索引数据、搜索服务器始终可用、可扩展、实时,多用户等特点的Elasticsearch对于我们来说是一个非常好的解决方案。
二、龙芯平台环境
本文以elasticsearch-5.2.0版本为例进行介绍,旨在为基于龙芯平台开发的同仁提供Elasticsearch基础服务以及前段管理插件head的搭建经验。
本文搭建所用环境:龙芯3B3000双路服务器+中标麒麟服务器操作系统V7.0
三、下载并安装Elasticsearch
Elasticsearch是基于Java开发的开源工具,具有跨平台等特点,只需在Elastic官网下载即可。
(1)浏览器打开以下链接:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.0.zip
(2)将下好的elasticsearch-5.2.0.zip包,放到合适的位置,本文以/root/桌面为例。
(3)解压elasticsearch-5.2.0.zip
![](/uploads/allimg/181012/2-1Q0121439115N.jpg)
![](/uploads/allimg/181012/2-1Q01214393C27.jpg)
(5)在浏览器输入http://localhost:9200,可看到elasticsearch-5.2.0服务已启动。
![](/uploads/allimg/181012/2-1Q012144000251.jpg)
▲ Elasticsearch服务启动成功
四、下载Elasticsearch-head插件
ealsticsearch只在后端提供各种api,那么我们如何管理elasticsearch呢,下一步我们就要安装elasticsearch-head。该插件作为一个入门级的elasticsearch前端插件,是一款专门针对于elasticsearch的客户端工具。
(1)首先在github下载elasticsearch-head,浏览器打开以下连接:
https://github.com/mobz/elasticsearch-head/archive/master.zip
(2)将下好的elasticsearch-head-master.zip包,放到/root/桌面。
(3)解压elasticsearch-head-master.zip
五、安装nodejs
head插件是nodejs实现的,所以必须安装nodejs。
(1)直接在线安装:
![](/uploads/allimg/181012/2-1Q012144031508.jpg)
(2)在安装nodejs的过程中,如遇到上图问题,证明中标的yum源不可用,我们需要修改yum源的配置文件
![](/uploads/allimg/181012/2-1Q012144103218.jpg)
(3)打开ns7-mips.repo配置文件,将下图的ftp改为http,保存后退出。
![](/uploads/allimg/181012/2-1Q01214412J38.jpg)
(4)修改好中标的yum源后,重新安装nodejs
![](/uploads/allimg/181012/2-1Q012144142H2.jpg)
由于npm是随同nodejs一起安装的包管理工具,能解决nodejs代码部署上的很多问题,所以在安装nodejs过程中,npm也一并安装了。
(5)验证nodejs和npm是否安装成功
![](/uploads/allimg/181012/2-1Q012144202625.jpg)
五、安装grunt
由于head 插件的执行文件是有grunt 命令来执行的,所以这个命令必须安装。
(1)安装grunt-CLI,“CLI”被翻译为“命令行”。要想使用grunt,首先必须将grunt-cli安装到全局环境中。
![](/uploads/allimg/181012/2-1Q01214422S50.jpg)
![](/uploads/allimg/181012/2-1Q012144243T4.jpg)
这里需要解释的是,“--save-dev”的意思是,在当前目录安装grunt的同时,顺便把grunt保存为这个目录的开发依赖项。
(3)进入elasticsearch-head-master文件夹,利用grunt命令执行head插件的执行文件。
![](/uploads/allimg/181012/2-1Q01214431Q93.jpg)
(4)在执行过程中会出现缺少插件的报错,接下来我们会有一系列grunt插件的安装,他们的安装过程和grunt一样。但是他们的执行都是基于grunt的,因此才能把grunt叫做一个“构建工具”。grunt没有具体的作用,但是它能把有具体作用的一个一个插件组合起来,形成一个整体效应。
开始一个一个插件安装:
![](/uploads/allimg/181012/2-1Q012144543Q2.jpg)
![](/uploads/allimg/181012/2-1Q012144Q1301.jpg)
![](/uploads/allimg/181012/2-1Q012144R4Z3.jpg)
![](/uploads/allimg/181012/2-1Q012144S5616.jpg)
![](/uploads/allimg/181012/2-1Q012144Tc02.jpg)
![](/uploads/allimg/181012/2-1Q012144Z62Q.jpg)
以上插件安装过程中出现的warning可忽略。
六、修改Elasticsearch-head插件的配置文件
(1)修改配置文件,vim打开elasticsearch-head-master 文件夹下的Gruntfile.js文件:增加hostname属性,设置为*。
![](/uploads/allimg/181012/2-1Q012145003E7.jpg)
![](/uploads/allimg/181012/2-1Q012145020396.jpg)
(2)修改_site/app.js文件,可根据需要修改head的连接地址。
![](/uploads/allimg/181012/2-1Q0121450403a.jpg)
![](/uploads/allimg/181012/2-1Q012145100504.jpg)
本文使用默认的head的连接地址,不做修改。
七、运行Elasticsearch-head插件
(1)运行head插件
![](/uploads/allimg/181012/2-1Q012145132495.jpg)
![](/uploads/allimg/181012/2-1Q012145213633.jpg)
(3)上图所示的页面“集群健康值:未连接”,说明连接还存在问题。解决方案是修改 elasticsearch-5.2.0/config/ elasticsearch.yml文件,在文件最下方添加 :
http.cors.enabled: true
http.cors.allow-origin: “*”
![](/uploads/allimg/181012/2-1Q012145233222.jpg)
![](/uploads/allimg/181012/2-1Q012145250K4.jpg)
(4)elasticsearch.yml文件修改完成保存后,重新启动elasticsearch服务即可。
![](/uploads/allimg/181012/2-1Q012145311W4.jpg)
(5)再次访问http://localhost:9100
![](/uploads/allimg/181012/2-1Q012145329116.jpg)
▲ Elasticsearch前端插件head启动成功
这样本文的Elasticsearch服务以及Elasticsearch前端插件head就搭建完成了。
八、总 结
Elasticsearch在搭建的过程中比较顺利,没有遇到无法解决的问题,基本上实现了无障碍迁移。说明龙芯软件生态环境已经非常完善,有能力作为搜索引擎、分布式实时文件存储、大数量分析这样的基础平台。
在打造龙芯平台软件丰富性的过程中,龙芯公司已经走出了一条坚实的道路,希望产业链能够一起把龙芯的软件生态完善起来!
参 考
[1] http://www.tuicool.com/articles/7fueUbb
[2] http://zhaoyanblog.com/archives/495.html
[3]《Elasticsearch服务器开发》
[4]《实战Elasticsearch、Logstash、Kibana》
[5]《Elasticsearch In Action》
[6]《某ES大牛PPT》