1. 程式人生 > >ELK搭建與hbase關聯

ELK搭建與hbase關聯

ELK(ElasticSearch Logstash Kibana)是三個開源工具,最常用的功能就是檢查日誌。如果開動腦洞,還會有更多的用途,這三個組合在一起確實功能很強大,每一種工具都有自己的功能的實現(按照日誌處理的順序來說):

(1)Logstash:具備了日誌的“收集-過濾-輸出”功能,其實也就這三個功能最常用。通過命令列來指定相關的配置,且配置的命令列都是固定(要根據官網提供的模板進行配置:Logstash配置檔案)。按照官網的解釋,Logstash中的輸入input與輸出output定義好了介面,也就是說只能有官網提供的開源的工具(sqlite、redis、stdin等)進行檔案的輸入與輸出。然而這個工具也是具有將資料進行過濾進行簡化,然後傳送到目的工具。和hbase完全沒有關係,況且也沒有提供hbase的介面,也只是提供了hdfs的輸入介面。

(2)ElasticSearch:這個其實就是一個分散式的資料儲存工具與快速搜尋功能,但是和其他的分散式不同的是它提供了視覺化介面或者說是外掛的提供。這個工具還是蠻強大的,在介面中提供了索引的搜尋功能,介面方面還是有待研究的,但是冒號與值之間必須有空格,還有就是這個是禁止root的

該工程的配置檔案:

分片與分片副本的關係:分片都是儲存在一個節點上,然後在其他的節點儲存相應的節點副本。

預設有5個主分片,1個分片副本,叢集中只有兩個節點。

其配置檔案中相應的引數是:index.number_of_shards: 5 、index.number_of_replicas: 1、 gateway.expected_nodes: 2,配置之後副本之後在其他節點看不到反應,可能是沒有配置叢集中最大節點數。

(3)Kibana:是一個web介面的工具,主要提供了視覺化搜尋與視覺化介面,預設與ElasticSearch介面連線。

與hbase連線解決的方法是:

1.首先將hbase資料檔案讀入檔案中,然後在logstash定義好輸入也就是檢測該資料檔案的變化,輸出定義到elasticSearch中。

2.在elasticSearch的官網上給了一套api用於將資料儲存到elasticSearch中。

大致過程是:

  1. 首先建立一個客戶端client,建立與elasticSearch主節點(ip地址)的連線,裡面需要定義好叢集的名稱。
  2. 使用client中的函式,將資料進行傳送,函式中定義好(index、type、id)。

在這裡開始很猶豫的地方是:在以往的資料庫中,都是先建表,然後在儲存資料,但是在elasticSearch中不存在直觀建表的行為,或者說建表與儲存資料是一體化的。