您的位置:首頁>正文

Redis大資料應用場景

當前已經進入大資料時代, 大資料技術和產品百花齊放, 在各自的應用場景發揮重要作用, Redis做為高性能的鍵值資料庫與這些技術有著千絲萬縷的聯繫, 本文將介紹如何將Redis與Hadoop、ELK等技術進行結合。

一、Redis與Hadoop

Hadoop作為大資料時代的分散式運算平臺, 由於其高可用性、可擴展性、高容錯、低成本等特性, 已經是大資料系統的標配, 但是Hadoop中HDFS的存儲機制使得它無法面向終端使用者(例如利用使用者的歷史流覽記錄為使用者推薦新聞、商品等), 所以通常是將離線計算的結果導入到面向使用者的存儲中(例如Redis、HBase等)。

而Hadoop支援自訂OutPutFormat,

如果需要自訂的輸出, 只需要繼承OutPutFormat, 整個流程如下所示, 只需要在Reduce端定義RedisOutPutFormat完成映射即可。

當然也有一種不太多見的情況, 就是Redis作為輸入源, 同樣Hadoop提供了自訂的InputFormat。

在Redis的選用上, 可以根據結果的規模決定使用Redis主從版還是集群版本。

二、Redis與ELK

ELK是ElasticSearch、Logstash、Kibana三個開源工具的組合, 由於其處理方式靈活、配置簡單、檢索性能高效、前端介面絢麗等特性, 在日誌處理領域被廣泛使用。

它的基本工作流如下:

LogStashAgent部署在各個目的機器上按照logstash的語法收集對應的資料, 並發送的ElasticSearch上。

ElasticSearch負責存儲和索引LogAgent上的資料

Kibana可直接與ElasticSearch交互, 負責日誌的視覺化分析。

但是如果LogStashAgent個數太多或者索引數量較多, 直接插入ElasticSearch中會使得其壓力過大, 所以在ElasticSearch和LogStash之間通常會設置一個緩衝, 通常會選用Redis, 而且ELK默認就支持Redis的集成, 整個過程只需要修改配置即可完成, 整個流程如下所示:

作者:carlosfu

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示