<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Elasticsearch學習筆記(一)簡介 ## 什么是Elasticsearch? 以前我們學過標準信息搜索工具Lucene,但它不能夠在一個合理的時間內存儲和檢索海量數據,不具備良好的可擴展性,一般也不適合分布式大數據搜索、挖掘和云計算環境。 為了滿足大數據平臺下的信息檢索,并且高可靠性的性能要求,Elasticsearch就應運而生。 - 分布式實時文件存儲 - 實時分析的分布式搜索引擎 - 可以擴展到上百臺服務器 作為開源分布式搜索和數據處理平臺,Elasticsearch不僅僅是一個數據庫,同時它還是一個基于Lucene構建的開源、分布式、RESTful信息檢索框架,能夠實時搜索,并且穩定可靠,EIK架構為編程人員提供了一個分布式的可擴展的信息檢索和基于Lucene的全文搜索,基于Logstash的日志處理機制、基于Kibana的挖掘結果可視化的的機制。 Elasticsearch的支持插件機制,如與mongoDB、couchDB同步的River插件、中文分詞插件、Hadoop插件、腳本插件等。 ## 與Lucene的區別? Elasticsearch執行搜索的速度更快,可以簡單的通過HTTP方式,使用JSON來操作數據,并支持對分布式集群的搜索。 Elasticsearch對分布式支持,其索引功能分拆為多個分片,每個分片可有0個或多個副本,集群中的每個數據節點都可承載一個或多個分片,并且能協調和處理各種操作;負載再平衡(Rebalancing)和路由(Routing)在大多數情況下都是自動完成的。 ## 相關概念: (1)Cluster和Node——Elasticsearch中的Cluster是對外提供搜索服務的集群,組成這個集群的各個節點叫Node.集群Cluster是一組有著相同cluster.name的節點,他們協同工作,互相分享數據,提供了故障轉移和擴展的功能。Node又分為IndexNode、DataNode等。節點之間是對等關系的(去中心化),而弱化的Master節點只不過多了維護集群狀態的功能。 (2)Shards——Elasticsearch將一個完整的索引分成若干個部分,每個部分就是一個Shards,每個Shard實際上就是一個基于Lucene的索引。Shards的數量一般在索引創建前制定,且索引創建后不能更改。 (3)Replicas——Replics是索引的冗余備份,可用于防止數據丟失或用來做負載均衡。一般地,Elasticsearch會自動對索引請求進行負載均衡。 (4)Recover——在有節點加入或退出集群Cluster或故障節點重新啟動時,Elasticsearch會根據機器的負載情況,對索引分片Shards進行重新分配。 (5)River——River是一個運行在Elasticsearch集群內部的插件,主要用來從外部獲取以后數據,然后在Elasticsearch里創建索引。常見的有MongoDB、JDBC river Plugin等。 (6)Gateway——是Elasticsearch索引數據快照的存儲方式,當Elasticsearch集群關閉再重新啟動時,就會從Gateway中讀取索引數據快照。Elasticsearch支持多種類型的Gateway,本地文件系統、分布式文件系統、Hadoop的HDFS (7)Discover.zen——Discover.zen代表Elasticsearch的自動發現節點機制。Zen用來實現節點自動發現和Master節點選舉,Master節點負責節點的加入和退出以及分片shard的重新分配。 (8)Transport——Transport代表Elasticsearch內部節點或集群與客戶端的交互方式,默認內部是使用TCP協議進行交互的,同時支持HTTP協議(JSON格式)、Thrift、Servlet等傳輸協議。 (9)Index、Type、Document、Field——Index是數據存儲的地方,可以快速高效的堆索引中的數據進行全文索引,類似于RDBMS數據庫中的Database;在Index下一般會有多個存儲數據的Type,Type類似于Database的table,用來存放具體數據;Document類似于關系數據庫的一行數據,在一個Type里的每一個Document都有一個唯一的ID作為區分。 (10)Mapping——Mapping定義索引下的Type的字段處理規則,如索引如何建立、索引數據類型、是否保存原始索引JSON文檔,是否需要進行分詞處理、如何進行分詞處理等。一般地,一個索引文件下能存儲不同映像(Mapping)的類型文件(Types). 從圖中可以看出,Elasticsearch可以接受來自本機、共享以及云平臺上的數據;在Lucene提供的基本功能上,通過構建分布式索引,完成對大數據的索引、搜索等處理。其中,River作為Elasticsearch內部運行的插件,獲取其他存儲方式的數據到Elasticsearch.Zen用來作為節點自動發現和Master節點選舉;EC2(Elastic Copute Cloud)借由Web服務的方式讓使用者可以彈性的運行自己的Amazon機器映像,提供可調整的云計算能力。通過提供的Thrift、Memcached、HTTP等方式使用Elasticsearch的API。在頂層,用戶可以基于RESTful和客戶端的方式通過Elasticsearch API完成數據操作、管理等操作。 ## RESTful接口URL的格式是? curl?-X<VERB>?'<PROTOCOL>://<HOST>/<PATH>?<QUERY_STRING>'?-d?'<BODY>' - VERB?HTTP方法:GET(獲取),?POST(更新),?PUT(創建),?HEAD,?DELETE(刪除) - PROTOCOL:?http或者https協議(只有在Elasticsearch前面有https代理的時候可用) - HOST:?Elasticsearch集群中的任何一個節點的主機名,如果是在本地的節點,那么就叫localhost - PORT:?Elasticsearch?HTTP服務所在的端口,默認為9200 - QUERY_STRING:?一些可選的查詢請求參數,例如?pretty參數將使請求返回更加美觀易讀的JSON數據 - BODY:?一個JSON格式的請求主體(如果請求需要的話)![](https://box.kancloud.cn/2016-03-10_56e11d2413506.jpg) 這個是Elasticsearch的head插件,從這里可以看出主節點是Banshee,共用四個節點,71個主分片,至于Elasticsearch的插件機制、API操作等將在以后逐步的介紹。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看