前言
1、這里我的系統(tǒng)是阿里云的 CentOS 7.2 64位,2核4G
2、$開始的命令表示你要輸入的命令
一、JAVA環(huán)境配置
ElasticSearch是基于lucence開發(fā)的,也就是運(yùn)行需要java支持。所以要先安裝JAVA環(huán)境。
由于ElasticSearch 5.x 依賴于JDK 1.8的,所以現(xiàn)在我們下載JDK 1.8或者更高版本。以下命令將會(huì)下載最新的jdk
$ yum install java
安裝完畢后測(cè)試
$ java -version
二、Elasticsearch引擎安裝
1、創(chuàng)建帳號(hào)和分配權(quán)限
官方文檔上說(shuō)Elasticsearch不適合在root管理員帳號(hào)下運(yùn)行,所以要先建立一個(gè)賬號(hào)專門運(yùn)行Elasticsearch.
創(chuàng)建一個(gè)elsearch賬戶
$ adduser elsearch
設(shè)置密碼
$ passwd elsearch
按照提示輸入密碼和確認(rèn)密碼就成功創(chuàng)建elsearch賬戶了。
修改用戶權(quán)限,這一步非常重要
使用vim 編輯器打開文件打開/etc 目錄下面的文件sudoers
$ vim /etc/sudoers
找到如下位置:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
在這個(gè)區(qū)塊下面添加一行命令,使elsearch這個(gè)帳號(hào)可以獲得更高的操作權(quán)限
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
elsearch ALL=(ALL) NOPASSWD: ALL
ok保存。
2、引擎下載
退出root賬戶,使用剛剛創(chuàng)建的elsearch賬戶登錄服務(wù)器想,下載Elasticsearch安裝包。
$ wget -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.2.zip
文件校驗(yàn)
$ sha1sum elasticsearch-5.3.2.zip
解壓
$ unzip elasticsearch-5.3.2.zip
解壓完將有兩個(gè)文件,zip可以刪掉。
$ ls
elasticsearch-5.3.2 elasticsearch-5.3.2.zip
3、引擎啟動(dòng)
進(jìn)到elasticsearch-5.3.2目錄下
# cd elasticsearch-5.3.2/
啟動(dòng)引擎(-d表示為后臺(tái)啟動(dòng))
$ ./bin/elasticsearch -d
查看elasticsearch進(jìn)程情況
$ ps -ef |grep elasticsearch
如果看到如下一串東西則表示啟動(dòng)成功
elsearch 22042 1 20 00:36 pts/2 00:00:09 /bin/java -Xms2g -Xmx2g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -server -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -Djdk.io.permissionsUseCanonicalPath=true -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi=true -XX:+HeapDumpOnOutOfMemoryError -Des.path.home=/home/elsearch/elasticsearch-5.3.2 -cp /home/elsearch/elasticsearch-5.3.2/lib/elasticsearch-5.3.2.jar:/home/elsearch/elasticsearch-5.3.2/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
或者使用 curl測(cè)試,es端口默認(rèn)情況下是9200
$ curl "localhost:9200"
返回如下信息則說(shuō)明啟動(dòng)成功
{
"name" : "nHlYWW8",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "SNUvV-1fQLKaGnfXrA4UXg",
"version" : {
"number" : "5.3.2",
"build_hash" : "3068195",
"build_date" : "2017-04-24T16:15:59.481Z",
"build_snapshot" : false,
"lucene_version" : "6.4.2"
},
"tagline" : "You Know, for Search"
}
4、引擎健康情況
$ curl "localhost:9200/_cat/health?v"
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1493916286 00:44:46 elasticsearch green 1 1 0 0 0 0 0 0 - 100.0%
如果出現(xiàn)這條信息,說(shuō)明你的elastic search已經(jīng)正常運(yùn)行了,恭喜你
| 標(biāo)題 | 含義 |
|---|---|
| epoch | unix 的時(shí)間 |
| timestamp | 時(shí)間戳 |
| cluster | 集群 |
| status | 健康狀態(tài):紅為異常, 綠黃為健康 |
| node.total | 節(jié)點(diǎn)的總數(shù) |
| node.data | 節(jié)點(diǎn)的數(shù)據(jù) |
| shards | 分片 |
| pri | active_primary_shards 已激活的主要分片 |
| relo | 回收的切片 |
| init | 已經(jīng)初始的切片數(shù)量 |
| unassign | 未分配切片數(shù)量 |
| pending_tasks | 被擱置的任務(wù)數(shù)量 |
| max_task_wait_time | 任務(wù)等待的最大時(shí)間 |
| active_shards_percents | 激活分片的百分比 |
注意 status黃色和綠色的區(qū)別:
- 紅色:所有的分片沒(méi)有全部激活
- 黃色:主要分片全部啟動(dòng),但是備份的分片沒(méi)有啟動(dòng)
- 綠色:主要分片和其備份都已經(jīng)啟動(dòng)
官方詳情請(qǐng)參閱https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html
5、安裝中文分詞插件 smartcn
仍然使用elsearch登錄,然后切換目錄到elsearchsearch 所在的文件夾
$ cd elasticsearch-5.3.2
執(zhí)行安裝命令
$ sudo ./bin/elasticsearch-plugin install analysis-smartcn
卸載命名
$ sudo ./bin/elasticsearch-plugin remove analysis-smartcn
測(cè)試分詞,使用"人人編程,世界和平"為例子,進(jìn)行測(cè)試,使用站長(zhǎng)工具 將例子中的字?jǐn)噢D(zhuǎn)換成unicode編碼的字?jǐn)?在的終端中,調(diào)用下面方法,驗(yàn)證smartcn分詞插件是否已經(jīng)成功運(yùn)行
$ curl -XGET 'localhost:9200/_analyze?pretty' -d '{"analyzer":"smartcn", "text": "\u4eba\u4eba\u7f16\u7a0b\uff0c\u4e16\u754c\u548c\u5e73"}'
出現(xiàn)如下結(jié)果證明分詞成功。若沒(méi)有添加"analyzer":"smartcn"指定分詞,將使用默認(rèn)分詞。對(duì)于中文來(lái)講,將會(huì)把所有的字單獨(dú)分出來(lái)。
{
"tokens" : [
{
"token" : "人人",
"start_offset" : 0,
"end_offset" : 2,
"type" : "word",
"position" : 0
},
{
"token" : "編程",
"start_offset" : 2,
"end_offset" : 4,
"type" : "word",
"position" : 1
},
{
"token" : "世界",
"start_offset" : 5,
"end_offset" : 7,
"type" : "word",
"position" : 3
},
{
"token" : "和平",
"start_offset" : 7,
"end_offset" : 9,
"type" : "word",
"position" : 4
}
]
}
6、配置elasticsearch.yml
$ cd elasticsearch-5.3.2
$ vim ./config/elasticsearch.yml
根據(jù)需求修改一下節(jié)點(diǎn):
cluster.name: es-5.3-test #換個(gè)集群的名字,免得跟別人的集群混在一起
node.name: node-es-101 #換個(gè)節(jié)點(diǎn)名字
network.host: 0.0.0.0 #修改一下ES的監(jiān)聽地址,這樣別的機(jī)器也可以訪問(wèn)
http.port: 9200 #端口號(hào),默認(rèn)就好
# 增加新的參數(shù),這樣head插件可以訪問(wèn)es
http.cors.enabled: true
http.cors.allow-origin: "*"
#增加新的參數(shù),這樣ES可以通過(guò)外網(wǎng)進(jìn)行訪問(wèn),只設(shè)置network.host: 0.0.0.0 公網(wǎng)仍舊無(wú)法訪問(wèn)
transport.host: localhost
transport.tcp.port: 9300
@注意,設(shè)置參數(shù)的時(shí)候:后面要有空格!
7、Sense安裝使用
對(duì)于不熟悉Linux的人來(lái)講,使用curl是個(gè)硬傷,所以 Chrome有個(gè)插件Sense可以幫我們很方便的操作Elasticsearch。國(guó)內(nèi)需要翻墻。

先來(lái)測(cè)試下分詞

三、安裝 Kibaba
Kibana是一個(gè)開源為elasticsearch 引擎提供數(shù)據(jù)和數(shù)據(jù)分析
1、下載安裝
切換到root賬戶,按順序依次執(zhí)行以下命令
$ wget -c https://artifacts.elastic.co/downloads/kibana/kibana-5.3.2-x86_64.rpm
$ sha1sum kibana-5.3.2-x86_64.rpm
$ sudo rpm --install kibana-5.3.2-x86_64.rpm
2、配置Kibana的host
$ whereis kibana
kibana: /etc/kibana /usr/share/kibana
如果顯示以上結(jié)果表明kibana已經(jīng)正確安裝完成,兩個(gè)目錄
/etc/kibana 為kibana config文件所在的目錄
/usr/share/kibana 為程序所在的目錄
修改Kibana的配置文件,允許公網(wǎng)訪問(wèn)
$ vim /etc/kibana/kibana.yml
將server.host修改為
server.host: "0.0.0.0"
3、啟動(dòng)Kibana
配置kibana能夠自動(dòng)啟動(dòng)
$ sudo chkconfig --add kibana
啟動(dòng)和停止
$ sudo -i service kibana start
$ sudo -i service kibana stop
接下來(lái)即可使用公網(wǎng)訪問(wèn)http://IP:5601打開Kibana了。
官方詳情請(qǐng)參閱https://www.elastic.co/guide/en/kibana/5.3/targz.html