安裝和使用 Elasticsearch
創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、正定網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為正定等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。Elasticsearch 是開源搜索平臺(tái)的新成員,實(shí)時(shí)數(shù)據(jù)分析的神器,發(fā)展迅猛,基于 Lucene、RESTful、分布式、面向云計(jì)算設(shè)計(jì)、實(shí)時(shí)搜索、全文搜索、穩(wěn)定、高可靠、可擴(kuò)展、安裝+使用方便,介紹都說的很好聽,好不好用拿出來遛一遛。
做了個(gè)簡(jiǎn)單測(cè)試,在兩臺(tái)完全一樣的虛擬機(jī)上,2000萬條左右數(shù)據(jù),Elasticsearch 插入數(shù)據(jù)速度比 MongoDB 慢很多(可以忍受),但是搜索/查詢速度快10倍以上,這只是單機(jī)情況,多機(jī)集群情況下 Elasticsearch 表現(xiàn)更好一些。以下安裝步驟在 Ubuntu Server14.04 LTS 上完成。
安裝 Elasticsearch
升級(jí)系統(tǒng)后安裝 Oracle Java 7,既然 Elasticsearch 官方推薦使用 Oracle JDK 7 就不要嘗試 JDK 8 和 OpenJDK 了:
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get installsoftware-properties-common
$ sudo add-apt-repositoryppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get installoracle-java7-installer
加入 Elasticsearch 官方源后安裝 elasticsearch:
$ wget -O -http://packages.elasticsearch.org/GPG-KEY-elasticsearch | apt-key add -
$ sudo echo "debhttp://packages.elasticsearch.org/elasticsearch/1.1/debian stable main">> /etc/apt/sources.list
$ sudo apt-get update
$ sudo apt-get install elasticsearch
加入到系統(tǒng)啟動(dòng)文件并啟動(dòng)elasticsearch 服務(wù),用 curl 測(cè)試一下安裝是否成功:
$ sudo update-rc.d elasticsearch defaults95 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的集群和數(shù)據(jù)管理界面 Marvel 非常贊,可惜只對(duì)開發(fā)環(huán)境免費(fèi),如果這個(gè)工具也免費(fèi)就無敵了,安裝很簡(jiǎn)單,完成后重啟服務(wù)訪問 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]
安裝 Python 客戶端驅(qū)動(dòng)
和 MongoDB一樣,我們一般用程序和 Elasticsearch交互,Elasticsearch 也支持多種語(yǔ)言的客戶端驅(qū)動(dòng),這里僅安裝 Python 驅(qū)動(dòng),其他語(yǔ)言可以參考官方文檔。
$ sudo apt-get install python-pip
$ sudo pip install elasticsearch
寫個(gè)簡(jiǎn)單程序把 gene_info.txt 的數(shù)據(jù)導(dǎo)入到 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是一個(gè)功能強(qiáng)大的數(shù)據(jù)顯示客戶端,通過插件方式和 Elasticsearch 集成在一起,安裝很容易,下載解壓就可以了,然后重啟 Elasticsearch 服務(wù)訪問http://192.168.2.172:9200/_plugin/kibana/ 就能看到界面:
$ wgethttps://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
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。