安裝和使用 Elasticsearch

jopen 10年前發布 | 34K 次閱讀 ElasticSearch 搜索引擎

Elasticsearch 是開源搜索平臺的新成員,實時數據分析的神器,發展迅猛,基于 Lucene、RESTful、分布式、面向云計算設計、實時搜索、全文搜索、穩定、高可靠、可擴展、安裝+使用方便,介紹都說的很好聽,好不好用拿出來遛一遛。

做了個簡單測試,在兩臺完全一樣的虛擬機上,2000萬條左右數據,Elasticsearch 插入數據速度比 MongoDB 慢很多(可以忍受),但是搜索/查詢速度快10倍以上,這只是單機情況,多機集群情況下 Elasticsearch 表現更好一些。以下安裝步驟在 Ubuntu Server 14.04 LTS 上完成。

安裝 Elasticsearch

升級系統后安裝 Oracle Java 7,既然 Elasticsearch 官方推薦使用 Oracle JDK 7 就不要嘗試 JDK 8 和 OpenJDK 了:

$ sudo apt-get update
$ sudo apt-get upgrade

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update

$ sudo apt-get install oracle-java7-installer

加入 Elasticsearch 官方源后安裝 elasticsearch:

$ wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | apt-key add -
$ sudo echo "deb http://packages.elasticsearch.org/elasticsearch/1.1/debian stable main" >> /etc/apt/sources.list

$ sudo apt-get update
$ sudo apt-get install elasticsearch

加入到系統啟動文件并啟動 elasticsearch 服務,用 curl 測試一下安裝是否成功:

$ sudo update-rc.d elasticsearch defaults 95 1

$ sudo /etc/init.d/elasticsearch start

$ curl -X GET 'http://localhost:9200'
{
  "status" : 200,
  "name" : "Fer-de-Lance",
  "version" : {
    "number" : "1.1.1",
    "build_hash" : "f1585f096d3f3985e73456debdc1a0745f512bbc",
    "build_timestamp" : "2014-04-16T14:27:12Z",
    "build_snapshot" : false,
    "lucene_version" : "4.7"
  },
  "tagline" : "You Know, for Search"
}

Elasticsearch 的集群和數據管理界面 Marvel 非常贊,可惜只對開發環境免費,如果這個工具也免費就無敵了,安裝很簡單,完成后重啟服務訪問 http://192.168.2.172:9200/_plugin/marvel/ 就可以看到界面:

$ sudo /usr/share/elasticsearch/bin/plugin -i elasticsearch/marvel/latest

$ sudo /etc/init.d/elasticsearch restart
 * Stopping Elasticsearch Server                                           [ OK ]
 * Starting Elasticsearch Server                                           [ OK ]

elasticsearch.png

安裝 Python 客戶端驅動

和 MongoDB 一樣,我們一般用程序和 Elasticsearch 交互,Elasticsearch 也支持多種語言的客戶端驅動,這里僅安裝 Python 驅動,其他語言可以參考官方文檔。

$ sudo apt-get install python-pip
$ sudo pip install elasticsearch

寫個簡單程序把 gene_info.txt 的數據導入到 Elasticsearch:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os, os.path, sys, re
import csv, time, string
from datetime import datetime
from elasticsearch import Elasticsearch

def import_to_db():
    data = csv.reader(open('gene_info.txt', 'rb'), delimiter='\t')
    data.next()

    es = Elasticsearch()
    for row in data:
        doc = {
            'tax_id': row[0],
            'GeneID': row[1],
            'Symbol': row[2],
            'LocusTag': row[3],
            'Synonyms': row[4],
            'dbXrefs': row[5],
            'chromosome': row[6],
            'map_location': row[7],
            'description': row[8],
            'type_of_gene': row[9],
            'Symbol_from_nomenclature_authority': row[10],
            'Full_name_from_nomenclature_authority': row[11],
            'Nomenclature_status': row[12],
            'Other_designations': row[13],
            'Modification_date': row[14]
        }
        res = es.index(index="gene", doc_type='gene_info', body=doc)

def main():
    import_to_db()

if __name__ == "__main__":
    main()

Kibana 是一個功能強大的數據顯示客戶端,通過插件方式和 Elasticsearch 集成在一起,安裝很容易,下載解壓就可以了,然后重啟 Elasticsearch 服務訪問 http://192.168.2.172:9200/_plugin/kibana/ 就能看到界面:

$ wget https://download.elasticsearch.org/kibana/kibana/kibana-3.0.1.tar.gz
$ tar zxvf kibana-3.0.1.tar.gz
$ sudo mv kibana-3.0.1 /usr/share/elasticsearch/plugins/_site
$ sudo /etc/init.d/elasticsearch restart

kibana3.png
來自:http://www.vpsee.com/2014/05/install-and-play-with-elasticsearch/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!