轉自mysql
小史是一個非科班的程序員,雖然學的是電子專業,可是經過本身的努力成功經過了面試,如今要開始迎接新生活了。程序員
隨着央視詩詞大會的熱播,小史開始對詩詞感興趣,最喜歡的就是飛花令的環節。面試
可是因爲小史好久沒有背過詩詞了,飛一個字很難說出一句,不少以前很熟悉的詩句也想不起來。sql
【倒排索引】數據庫
呂老師:可是我讓你說出帶「前」字的詩句,因爲沒有索引,你只能遍歷腦海中全部詩詞,當你的腦海中詩詞量大的時候,就很難在短期內獲得結果了。json
【索引量爆炸】api
【搜索引擎原理】數據結構
【elasticsearch簡介】架構
呂老師:可是lucene仍是一個庫,必需要懂一點搜索引擎原理的人才能用的好,因此後來又有人基於lucene進行封裝,寫出了elasticsearch。app
【elasticsearch基本概念】
呂老師:類型是用來定義數據結構的,你能夠認爲是mysql中的一張表。文檔就是最終的數據了,你能夠認爲一個文檔就是一條記錄。
呂老師:好比一首詩,有詩題、做者、朝代、字數、詩內容等字段,那麼首先,咱們能夠創建一個名叫poems的索引,而後建立一個名叫poem的類型,類型是經過mapping來定義每一個字段的類型,好比詩題、做者、朝代都是keyword類型,詩內容是text類型,而字數是integer類型,最後就是把數據組織成json格式存放進去了。
呂老師:這個問題問得好,這涉及到分詞的問題,keyword類型是不會分詞的,直接根據字符串內容創建反向索引,text類型在存入elasticsearch的時候,會先分詞,而後根據分詞後的內容創建反向索引。
呂老師:以前咱們說過,elasticsearch把操做都封裝成了http的api,咱們只要給elasticsearch發送http請求就行。好比使用curl -XPUT 'http://ip:port/poems',就能創建一個名爲poems的索引,其餘操做也是相似的。
【elasticsearch分佈式原理】
呂老師:沒錯,elasticsearch也是會對數據進行切分,同時每個分片會保存多個副本,其緣由和hdfs是同樣的,都是爲了保證分佈式環境下的高可用。
呂老師:沒錯,在elasticsearch中,節點是對等的,節點間會經過本身的一些規則選取集羣的master,master會負責集羣狀態信息的改變,並同步給其餘節點。
呂老師:注意,只有創建索引和類型須要通過master,數據的寫入有一個簡單的routing規則,能夠route到集羣中的任意節點,因此數據寫入壓力是分散在整個集羣的。
【elk系統】
呂老師:其實不少公司都用elasticsearch搭建elk系統,也就是日誌分析系統。其中e就是elasticsearch,l是logstash,是一個日誌收集系統,k是kibana,是一個數據可視化平臺。
呂老師:分析日誌的用處可大了,你想,假如一個分佈式系統有1000臺機器,系統出現故障時,我要看下日誌,還得一臺一臺登陸上去查看,是否是很是麻煩?
呂老師:可是若是日誌接入了elk系統就不同。好比系統運行過程當中,忽然出現了異常,在日誌中就能及時反饋,日誌進入elk系統中,咱們直接在kibana就能看到日誌狀況。若是再接入一些實時計算模塊,還能作實時報警功能。
【筆記】
小史學完了elasticsearch,在筆記本上寫下了以下記錄:
一、反向索引又叫倒排索引,是根據文章內容中的關鍵字創建索引
二、搜索引擎原理就是創建反向索引
三、elasticsearch在lucene的基礎上進行封裝,實現了分佈式搜索引擎
四、elasticsearch中的索引、類型和文檔的概念比較重要,相似於mysql中的數據庫、表和行
五、elasticsearch也是master-slave架構,也實現了數據的分片和備份
六、elasticsearch一個典型應用就是elk日誌分析系統
寫完,又高高興興背詩去了。
觀書有感
朱熹
半畝方塘一鑑開,天光雲影共徘徊。
問渠那得清如許?爲有源頭活水來。
猜你喜歡
歡迎關注本公衆號:iteblog_hadoop:
回覆 spark_summit_201806 下載 Spark Summit North America 201806 所有PPT
回覆 spark_summit_eu_2018 下載 Spark+AI Summit europe 2018 所有PPT
回覆 HBase_book 下載 2018HBase技術總結 專刊
回覆 all 獲取本公衆號全部資料
0、回覆 電子書 獲取 本站全部可下載的電子書
一、Elasticsearch如何作到億級數據查詢毫秒級返回?
三、深刻理解 Spark Delta Lake 的誕生及其工做原理
十一、更多大數據文章歡迎訪問https://www.iteblog.com及本公衆號(iteblog_hadoop)十二、Flink中文文檔:http://flink.iteblog.com1三、Carbondata 中文文檔:http://carbondata.iteblog.com