EN

新闻中心

LOONGSON NEWS

栏目导航

龙芯平台快速搭建Elasticsearch:开源的搜索和大数据分析引擎

发布时间:2018-10-12    已阅读:

一、Elasticsearch背景
▲ Elasticsearch形象标识
互联网产品中的检索功能随处可见。当你的项目规模是百度搜索这种体量的时候,自己开发一个搜索引擎,加入各种定制的需求和优化,是非常自然的事情。但如果只是普通的中小型项目,直接用一个搜索引擎的基础服务即可。Elasticsearch就是这样一个搜索引擎的基础服务。更重要的是,除去常规的全文检索功能之外,它还具有基础的统计分析功能(最常见的就是聚合),这也让他变得更加强大和实用。还在用数据库的like来实现产品的全文检索吗?抛弃它,用Elasticsearch吧。
Elasticsearch是一个分布式可扩展的实时搜索和分析引擎,建立在全文搜索引擎 Apache Lucene(TM) 基础上,Elasticsearch并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:
(1)分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
(2)实时分析的分布式搜索引擎。
(3)可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
▲ 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
(4)解压完成后,启动elasticsearch服务

(5)在浏览器输入http://localhost:9200,可看到elasticsearch-5.2.0服务已启动。

▲ 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)直接在线安装:

(2)在安装nodejs的过程中,如遇到上图问题,证明中标的yum源不可用,我们需要修改yum源的配置文件

(3)打开ns7-mips.repo配置文件,将下图的ftp改为http,保存后退出。

(4)修改好中标的yum源后,重新安装nodejs

由于npm是随同nodejs一起安装的包管理工具,能解决nodejs代码部署上的很多问题,所以在安装nodejs过程中,npm也一并安装了。
   (5)验证nodejs和npm是否安装成功

五、安装grunt
由于head 插件的执行文件是有grunt 命令来执行的,所以这个命令必须安装。
(1)安装grunt-CLI,“CLI”被翻译为“命令行”。要想使用grunt,首先必须将grunt-cli安装到全局环境中。
(2)然后开始安装grunt

这里需要解释的是,“--save-dev”的意思是,在当前目录安装grunt的同时,顺便把grunt保存为这个目录的开发依赖项。
(3)进入elasticsearch-head-master文件夹,利用grunt命令执行head插件的执行文件。

(4)在执行过程中会出现缺少插件的报错,接下来我们会有一系列grunt插件的安装,他们的安装过程和grunt一样。但是他们的执行都是基于grunt的,因此才能把grunt叫做一个“构建工具”。grunt没有具体的作用,但是它能把有具体作用的一个一个插件组合起来,形成一个整体效应。
  开始一个一个插件安装:






以上插件安装过程中出现的warning可忽略。
六、修改Elasticsearch-head插件的配置文件
   (1)修改配置文件,vim打开elasticsearch-head-master 文件夹下的Gruntfile.js文件:增加hostname属性,设置为*。


   (2)修改_site/app.js文件,可根据需要修改head的连接地址。


    本文使用默认的head的连接地址,不做修改。
七、运行Elasticsearch-head插件
    (1)运行head插件
(2)在网页上访问Elasticsearch服务的前端插件head:http://localhost:9100(注意该端口号已经不是之前的9200,而是head 插件中的 9100 )

  (3)上图所示的页面“集群健康值:未连接”,说明连接还存在问题。解决方案是修改 elasticsearch-5.2.0/config/ elasticsearch.yml文件,在文件最下方添加 :
        http.cors.enabled: true
        http.cors.allow-origin: “*”


(4)elasticsearch.yml文件修改完成保存后,重新启动elasticsearch服务即可。

(5)再次访问http://localhost:9100

▲ 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》