在Linux上安裝Elasticsearch5.x


之前講過在Windows上安裝Elasticsearch5.x,但實際生產環境還是需要Linux支持,而且ES在Linux環境下運行要比Windows環境下要高,So...Linux上還是要學會安裝。經過自己的研究還有同事的幫助,終於搞定Linux下安裝Elasticsearch5.x了。

前言

1、這里我的系統是阿里雲的 CentOS 7.2 64位,2核4G

2、$開始的命令表示你要輸入的命令

一、JAVA環境配置

ElasticSearch是基於lucence開發的,也就是運行需要java支持。所以要先安裝JAVA環境。
由於ElasticSearch 5.x 依賴於JDK 1.8的,所以現在我們下載JDK 1.8或者更高版本。以下命令將會下載最新的jdk

$ yum install java

安裝完畢后測試

$ java -version

二、Elasticsearch引擎安裝

1、創建帳號和分配權限

官方文檔上說Elasticsearch不適合在root管理員帳號下運行,所以要先建立一個賬號專門運行Elasticsearch.

創建一個elsearch賬戶

$ adduser elsearch

設置密碼

$ passwd elsearch

按照提示輸入密碼和確認密碼就成功創建elsearch賬戶了。

修改用戶權限,這一步非常重要

使用vim 編輯器打開文件打開/etc 目錄下面的文件sudoers

$ vim /etc/sudoers

找到如下位置:

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL

在這個區塊下面添加一行命令,使elsearch這個帳號可以獲得更高的操作權限

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
elsearch        ALL=(ALL)       NOPASSWD: ALL 

ok保存。

2、引擎下載

退出root賬戶,使用剛剛創建的elsearch賬戶登錄服務器想,下載Elasticsearch安裝包。

$ wget -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.2.zip

文件校驗

$ sha1sum elasticsearch-5.3.2.zip 

解壓

$ unzip elasticsearch-5.3.2.zip

解壓完將有兩個文件,zip可以刪掉。

$ ls
elasticsearch-5.3.2  elasticsearch-5.3.2.zip
3、引擎啟動

進到elasticsearch-5.3.2目錄下

# cd elasticsearch-5.3.2/ 

啟動引擎(-d表示為后台啟動)

$ ./bin/elasticsearch -d

查看elasticsearch進程情況

$ ps -ef |grep elasticsearch

如果看到如下一串東西則表示啟動成功

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測試,es端口默認情況下是9200

$ curl "localhost:9200"

返回如下信息則說明啟動成功

{
  "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%

如果出現這條信息,說明你的elastic search已經正常運行了,恭喜你

標題 含義
epoch unix 的時間
timestamp 時間戳
cluster 集群
status 健康狀態:紅為異常, 綠黃為健康
node.total 節點的總數
node.data 節點的數據
shards 分片
pri active_primary_shards 已激活的主要分片
relo 回收的切片
init 已經初始的切片數量
unassign 未分配切片數量
pending_tasks 被擱置的任務數量
max_task_wait_time 任務等待的最大時間
active_shards_percents 激活分片的百分比

注意 status黃色和綠色的區別:

  • 紅色:所有的分片沒有全部激活
  • 黃色:主要分片全部啟動,但是備份的分片沒有啟動
  • 綠色:主要分片和其備份都已經啟動

官方詳情請參閱https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html

5、安裝中文分詞插件 smartcn

仍然使用elsearch登錄,然后切換目錄到elsearchsearch 所在的文件夾

$ cd elasticsearch-5.3.2

執行安裝命令

$ sudo ./bin/elasticsearch-plugin install analysis-smartcn

卸載命名

$ sudo ./bin/elasticsearch-plugin remove analysis-smartcn

測試分詞,使用"人人編程,世界和平"為例子,進行測試,使用站長工具 將例子中的字斷轉換成unicode編碼的字斷 在的終端中,調用下面方法,驗證smartcn分詞插件是否已經成功運行

$ curl -XGET 'localhost:9200/_analyze?pretty' -d '{"analyzer":"smartcn", "text": "\u4eba\u4eba\u7f16\u7a0b\uff0c\u4e16\u754c\u548c\u5e73"}'

出現如下結果證明分詞成功。若沒有添加"analyzer":"smartcn"指定分詞,將使用默認分詞。對於中文來講,將會把所有的字單獨分出來。

{
  "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

根據需求修改一下節點:

cluster.name: es-5.3-test   #換個集群的名字,免得跟別人的集群混在一起

node.name: node-es-101     #換個節點名字

network.host: 0.0.0.0       #修改一下ES的監聽地址,這樣別的機器也可以訪問
http.port: 9200             #端口號,默認就好


# 增加新的參數,這樣head插件可以訪問es
http.cors.enabled: true 
http.cors.allow-origin: "*"


#增加新的參數,這樣ES可以通過外網進行訪問,只設置network.host: 0.0.0.0 公網仍舊無法訪問
transport.host: localhost
transport.tcp.port: 9300

@注意,設置參數的時候:后面要有空格!
7、Sense安裝使用

對於不熟悉Linux的人來講,使用curl是個硬傷,所以 Chrome有個插件Sense可以幫我們很方便的操作Elasticsearch。國內需要翻牆。

先來測試下分詞

三、安裝 Kibaba

Kibana是一個開源為elasticsearch 引擎提供數據和數據分析

1、下載安裝

切換到root賬戶,按順序依次執行以下命令

$ 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

如果顯示以上結果表明kibana已經正確安裝完成,兩個目錄

/etc/kibana 為kibana config文件所在的目錄

/usr/share/kibana 為程序所在的目錄

修改Kibana的配置文件,允許公網訪問

$ vim /etc/kibana/kibana.yml

server.host修改為

server.host: "0.0.0.0"
3、啟動Kibana

配置kibana能夠自動啟動

$ sudo chkconfig --add kibana

啟動和停止

$ sudo -i service kibana start
$ sudo -i service kibana stop

接下來即可使用公網訪問http://IP:5601打開Kibana了。

官方詳情請參閱https://www.elastic.co/guide/en/kibana/5.3/targz.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM