大數據入門第二十五天——elasticsearch入門


一、概述

  推薦路神的ES權威指南翻譯:https://es.xiaoleilu.com/010_Intro/00_README.html

  官網:https://www.elastic.co/cn/products/elasticsearch

  精品博文:https://blog.csdn.net/laoyang360/article/details/52244917

  1.es是什么

  官網的中文介紹:

  Elasticsearch 是一個分布式的 RESTful 風格的搜索和數據分析引擎,能夠解決不斷涌現出的各種用例。作為 Elastic Stack 的核心,它集中存儲您的數據,幫助您發現意料之中以及意料之外的情況。

  權威指南的入門介紹:

Elasticsearch是一個實時分布式搜索和分析引擎。它讓你以前所未有的速度處理大數據成為可能。

它用於全文搜索、結構化搜索、分析以及將這三者混合使用

  2.特征

    查詢、分析、速度、可拓展性、彈性、靈活

    // 更多詳細特征介紹,參考官網

二、安裝

  安裝es需要先安裝JDK,這里我們安裝es5.6,提請安裝一下JDK8

  1.下載

    https://www.elastic.co/cn/downloads/elasticsearch

    選擇一個合適的版本,下載即可

  2.解壓

    #es啟動時需要使用非root用戶!如果非要使用,另行配置,這里暫不展開

[hadoop@mini1 ~]$ tar -zxvf elasticsearch-5.6.9.tar.gz -C /es

  // 相應的目錄需要有權限

  3.修改配置

[hadoop@mini1 config]$ vim elasticsearch.yml 

  主要需要修改的項如下:

#集群名稱,通過組播的方式通信,通過名稱判斷屬於哪個集群
cluster.name: es #節點名稱,要唯一
node.name: es-1
#數據存放位置
path.data: /es/data #日志存放位置
path.logs: /es/log
#es綁定的ip地址
network.host: 192.168.137.128
#初始化時可進行選舉的節點
discovery.zen.ping.unicast.hosts: ["mini1", "mini2", "mini3"]

  4.拷貝到其他節點

[hadoop@mini1 es]$ scp -r elasticsearch-5.6.9/ mini2:/es/
[hadoop@mini1 es]$ scp -r elasticsearch-5.6.9/ mini3:/es/

  5.修改其他節點配置

  需要修改的有node.name和network.host

  6.啟動 

  bin/elasticsearch -h查看幫助文檔)
  bin/elasticsearch -d

  啟動時會報:Cannot allocate memory,原因是內存不足,ES默認JVM內存為2G

  解決方案參考自:https://blog.csdn.net/qq942477618/article/details/53414983

  其他也會有一些啟動問題,根據日志與博文排查即可:https://blog.csdn.net/feinifi/article/details/73633235?utm_source=itdadao&utm_medium=referral

  7.驗證

    根據以上兩篇博文排查完問題后就可以啟動了,啟動后訪問默認的9200端口即可:mini1:9200

{ "name" : "es-1", "cluster_name" : "es", "cluster_uuid" : "qO0_NjifRiOnPUnWA-9W-Q", "version" : { "number" : "5.6.9", "build_hash" : "877a590", "build_date" : "2018-04-12T16:25:14.838Z", "build_snapshot" : false, "lucene_version" : "6.6.1" }, "tagline" : "You Know, for Search" }

   8.停止

    可以通過jps查看到其PID,也可以直接使用kill一步到位:

kill `ps -ef | grep Elasticsearch | grep -v grep | awk '{print $2}'`

    當然,通過Jps也是可以輕松找出es的pid的:

jps | grep Elasticsearch | awk '{print $1}'

    那停止命令也可以長這樣:

kill -9 `jps | grep Elasticsearch | awk '{print $1}'`

   9.一鍵啟動腳本

    如果要編寫一個一鍵啟動腳本,那一個簡單的示例如下:

#!/bin/bash SERVERS="192.168.137.128 192.168.137.138 192.168.137.148"
echo "start es..."
for SERVER in $SERVERS do
    ssh $SERVER "source /etc/profile&&/es/elasticsearch-5.6.9/bin/elasticsearch -d"
done

  chmod +x以后就可以啟動了

  10.安裝head管理插件

    在線安裝:

bin/plugin install mobz/elasticsearch-head

   離線安裝需要先去github下載

./plugin install file:///home/bigdata/elasticsearch-head-master.zip

  這里通過查看es-head的github,發現已經不支持5.x了:

  

   獨立server安裝方式,參考:https://blog.csdn.net/xgjianstart/article/details/78780176

三、基本概念

    和之前的lucene是比較類似的,主要概念如下:

      node/cluster:Node是集群的節點,cluster表示集群;

      Index:數據管理的頂層單位叫index(索引),概念上類似數據庫;

      Document:數據庫中的記錄就叫Document,一條條document組成了一個index;

      Type:Document的邏輯虛擬分組,概念上類似表,主要用來過濾Document;

    完整參考http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html

四、基本操作

  es提供RESTful形式的操作,基本形式如下:

http://localhost:9200/<index>/<type>/[<id>]

  // 其中[]為可選,<>為必選

  1.新建與刪除index

  使用linux的curl來完成,新增index:

[hadoop@mini1 elasticsearch-5.6.9]$ curl -X PUT '192.168.137.128:9200/weather'

  刪除同樣簡單,換成DELETE請求即可

[hadoop@mini1 elasticsearch-5.6.9]$ curl -X DELETE '192.168.137.128:9200/weather'

  2.安裝IK中文分詞器

    https://github.com/medcl/elasticsearch-analysis-ik

    使用在線安裝即可(安裝博文參考:http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html

 ###更多操作,待更新


免責聲明!

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



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