摘要:是當前最流行的大數(shù)據(jù)集分析平臺之一,對于日志聚合商業(yè)智能以及機器學習等各類用例而言,都是一個很有用的工具。是在大型非結構化數(shù)據(jù)集上運行分析的最佳方法之一,在從日志聚合機器學習到商業(yè)智能等許多領域中皆被廣泛使用。
Elasticsearch是當前最流行的大數(shù)據(jù)集分析平臺之一,對于日志聚合、商業(yè)智能以及機器學習等各類用例而言,Elasticsearch都是一個很有用的工具。Elasticsearch基于 REST的簡單的API,使得創(chuàng)建索引、添加數(shù)據(jù)和進行復雜的查詢變得非常簡單,這也是它大受歡迎的一大原因。但是,在你開始構建數(shù)據(jù)集和運行查詢之前,您需要設置一個Elasticsearch集群,這可能會有點難。現(xiàn)在我們來看看Rancher Catalog是如何讓配置一個可擴展、高可用的Elasticsearch集群變容易的。
假設你已經有一個運行中的Rancher集群,那么讓Elasticsearch在你的集群上運行起來非常簡單 。只要通過頂部菜單打開 Catalog,然后搜索Elasticsearch。Elasticsearch條目有兩個版本,我們假設你使用的是2.x,這是最新的穩(wěn)定版本。要從集群啟動stack,請選擇查看詳細信息(View Detail),然后在后續(xù)屏幕中選擇stack名稱( Stack Name),集群名稱(Cluster Name),然后選擇啟動。
這個stack會啟動以下服務:kopf、client(s)、datanode(s) 和master(s)。kopf容器提供了web界面,用來管理你的elasticsearch 集群。Datanodes儲存實際的索引。主節(jié)點運行集群管理任務,客戶端節(jié)點發(fā)起和協(xié)調你的搜索和其他操作。開始時,你的Elasticsearch集群各種類型的容器都只有一個(master、client、datanodes有兩個輔助容器)。但是,您可以根據(jù)查詢負載和索引的大小擴展每個組件。請注意,你需要不同的物理主機才能使每個datanode容器正常工作。因此,您可能需要注冊更多Rancher計算節(jié)點。
當所有容器都處于active狀態(tài)時,您就可以到運行著kopf容器的主機中,啟動kopf界面。點擊 nodes選項卡,就會看到我之前提過的各種組件。如你所見,為了為我的索引提供冗余存儲,我啟動了第二個數(shù)據(jù)節(jié)點。我們將很快看到,當創(chuàng)建索引時,我們可以控制數(shù)據(jù)片的數(shù)量和每個片的備份。這樣不僅可以提供冗余,還可以提升查詢處理的速度。
在kopf的頂部的菜單中,選擇更多(more),然后選擇創(chuàng)建索引(create index)。在之后的頁面中,你會被要求輸入索引名稱(Index Name),分片數(shù)(Number of Shards)和副本數(shù)(Number of replicas)。默認值為5個分片和1個副本。為索引設置的分片數(shù)和副本數(shù)高度依賴于數(shù)據(jù)集和查詢模型。shard數(shù)有助于將數(shù)據(jù)擴展到多個節(jié)點,并且并行處理查詢。如果你只有一個datanote,多分片可能看不到很多好處。此外,如果你期望數(shù)據(jù)快速增長,你可能需要更多分片,以便于你稍后添加節(jié)點并將數(shù)據(jù)移動到這些分片上。另外要注意的一點是,Elasticsearch建議最大的堆大小為32GB,所以最大的分片大小應該約為該大小,以便它可以盡可能地保存在內存中。
另一方面,副本與數(shù)據(jù)大小不太相關,它與冗余和性能的關系更緊密。所有對索引的查詢都需要查看每個分片的一個副本,如果一個分片有多個副本,當一個節(jié)點不可用時,數(shù)據(jù)也依然可用。此外,使用多個副本,對指定分片的查詢負載會分散在多個節(jié)點間。多個副本只有在集群中具有多個數(shù)據(jù)容器或節(jié)點時才有意義,而且在擴展越來越大的集群時會變得更加重要。
舉例來說,我們來定義一個叫movies的索引,給它設置2個分片和2個副本。現(xiàn)在從頂部菜單中選擇Rest選項卡,以便我們向索引中添加一些文檔并測試一些查詢。Elasticsearch是無模式的,所以我們可以向索引中添加任意形式的數(shù)據(jù),只要它是合法的JSON格式就行。將path字段更新為 /movies/movie/1。path的格式為 /INDEX_NAME/TYPE/ID,movies是我們剛剛創(chuàng)建的索引,movie是我們給即將提交的文檔類型的名稱,id是這個索引中文檔的唯一ID。ID是可選的,如果你在path中省略了,那么你的文檔會被創(chuàng)建一個隨機的ID。添加了path之后,選擇POST方法,在底部的文本字段中輸入你的JSON文檔,點擊發(fā)送。這樣將把這個文檔添加到索引中,并且向你發(fā)送一個確認消息。
在添加了幾個movie到索引中之后,我們就可以用同樣的界面從索引中搜索和聚合數(shù)據(jù)了。將path字段更新為 /movies/movie/_search。path的格式為 /INDEX_NAME/TYPE/_search,INDEX_NAME,TYPE都是可選的。如果省略type,則會搜索所有類型,如果省略索引名,則會搜索所有索引。
Elasticsearch支持多種不同類型的查詢,我們在這里只介紹幾種常見的類型。第一種類型是自由文本查詢,查詢字符串參數(shù)允許使用Elasticsearch Query DS進行相當復雜的查詢。當然我可只輸入簡單的字符串進行匹配,這將匹配文檔任何字段中指定的詞。
{ "query": { "query_string": { "query": "Apocalypse" } } }
例如,上面的查詢會返回下面的結果。結果中包含處理查詢花費的時間、搜索的分片數(shù)、結果總數(shù)以及每個結果的詳細信息。
{ "took": 139, "timed_out": false, "_shards": { "total": 2, "successful": 2, "failed": 0 }, "hits": { "total": 2, "max_score": 0.5291085, "hits": [{ "_index": "movies", "_type": "movie", "_id": "AVSvEC1fG_1bjVtG66mm", "_score": 0.5291085, "_source": { "title": "Apocalypse Now", "director": "Francis Ford Coppola", "year": 1979, "genres": [ "Drama", "War" ] } } ....
除了查詢文本之外,你還可以指定一個字段或一些字段的估計值,從而將查詢限制為搜索文檔的一個子集。比如,下面的查詢會返回與之前一樣的結果,但是必須查看文檔的一個子集,且更大的數(shù)據(jù)集會有更好的性能。這里還有很多其他操作。
{ "query": { "query_string": { "query": "Apocalypse" "fields": ["title"] } } }
我們可以把查詢字符串包裹在filtered對象中,這樣會對查詢的結果進行過濾。這允許我們對初始數(shù)據(jù)集保持任意格式的查詢,但隨后過濾出我們查找的特定數(shù)據(jù)。
{ "query": { "filtered": { "query_string": { "query": "Apocalypse" "fields": ["title"] } "filter": { "term": { "year": 1979 } } } } }
最后,聚合可能是你會運行的另外一種形式的查詢,它對于計算有關數(shù)據(jù)的統(tǒng)計信息很有用。下面展示了這些類型的聚合的兩個例子。第一個將返回每個導演指揮的電影的數(shù)量,第二個將返回我們的數(shù)據(jù)集中所有電影的平均評分。
{ "aggs": { "group_by_director": { "terms": { "field": "director" } } } } { "aggs" : { "avg_rating" : { "avg" : { "field" : "rating" } } } }
Elasticsearch是在大型非結構化數(shù)據(jù)集上運行分析的最佳方法之一,在從日志聚合、機器學習到商業(yè)智能等許多領域中皆被廣泛使用。本文中,我們看到了使用Catalog在Rancher上設置一個功能齊全的Elasticsearch集群是多么簡單。此外,我們還快速了解了Elasticsearch使用REST API的強大功能。只要你有Elasticsearch可用并且運行了起來,你就可以使用它作為許多不同的用例與許多可用的可視化和聚合框架的主機,比如實時可視化的Kibana或業(yè)務分析的Pentaho框架。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26919.html
摘要:在中默認開啟端口用于偵聽發(fā)送過來的日志報文。至此,在中如何部署一套完整系統(tǒng)已經介紹完了,下面我將介紹如何將容器日志發(fā)送到中。下面我將介紹如何收集容器日志。目前日志顯的雜亂無序。,現(xiàn)在我們再去查看發(fā)現(xiàn)我們的容器日志已經展示在這里了。 相信大家對于容器和 docker 這個概念并不陌生,很高興的是 docker 為我們提供了多種log-driver。 showImg(https://se...
摘要:在這篇文章中,我們將使用來部署,并將它用于追蹤上的和。我們將使用創(chuàng)建一個索引模板,來調整相關配置。這樣,一個配置正確的已經準備好被使用了后續(xù)我們還將會對它進行一些配置。雖然和已經部署好了,我們還是需要對進行一些操作。 介紹 Elasticsearch是ELK(Elasticsearch/Logstash/Kibana)的基石。在這篇文章中,我們將使用Rancher Catalog來部署...
摘要:本文就探討一下,平臺內如何做容器日志收集。當然完整的日志體系中,并不僅僅是采集,還需要有日志存儲和展現(xiàn)。是可以理解微的助手,它可以識別容器內的日志卷文件,通知進行采集。 引言 一個完整的容器平臺,容器日志都是很重要的一環(huán)。尤其在微服務架構大行其道狀況下,程序的訪問監(jiān)控健康狀態(tài)很多都依賴日志信息的收集,由于Docker的存在,讓容器平臺中的日志收集和傳統(tǒng)方式很多不一樣,日志的輸出和采集點...
閱讀 2676·2021-11-16 11:53
閱讀 2737·2021-07-26 23:38
閱讀 2073·2019-08-30 15:55
閱讀 1751·2019-08-30 13:21
閱讀 3650·2019-08-29 17:26
閱讀 3306·2019-08-29 13:20
閱讀 875·2019-08-29 12:20
閱讀 3192·2019-08-26 10:21