当前已经进入大数据时代,大数据技术和产品百花齐放,在各自的应用场景发挥重要作用,Redis做为高性能的键值数据库与这些技术有着千丝万缕的联系,本文将介绍如何将Redis与Hadoop、ELK等技术进行结合。

一、Redis与Hadoop

Hadoop作为大数据时代的分布式计算平台,由于其高可用性、可扩展性、高容错、低成本等特性,已经是大数据系统的标配,但是Hadoop中HDFS的存储机制使得它无法面向终端用户(例如利用用户的历史浏览记录为用户推荐新闻、商品等),所以通常是将离线计算的结果导入到面向用户的存储中(例如Redis、HBase等)。

而Hadoop支持自定义OutPutFormat,如果需要自定义的输出,只需要继承OutPutFormat,整个流程如下所示,只需要在Reduce端定义RedisOutPutFormat完成映射即可。

hadoop和r Hadoop和redis_前端

当然也有一种不太多见的情况,就是Redis作为输入源,同样Hadoop提供了自定义的InputFormat。

hadoop和r Hadoop和redis_前端_02

在Redis的选用上,可以根据结果的规模决定使用Redis主从版还是集群版本。

二、Redis与ELK

ELK是ElasticSearch、Logstash、Kibana三个开源工具的组合,由于其处理方式灵活、配置简单、检索性能高效、前端界面绚丽等特性,在日志处理领域被广泛使用。

它的基本工作流如下:

  • LogStashAgent部署在各个目标机器上按照logstash的语法收集对应的数据,并发送的ElasticSearch上。
  • ElasticSearch负责存储和索引LogAgent上的数据
  • Kibana可直接与ElasticSearch交互,负责日志的可视化分析。

但是如果LogStashAgent个数太多或者索引数量较多,直接插入ElasticSearch中会使得其压力过大,所以在ElasticSearch和LogStash之间通常会设置一个缓冲,通常会选用Redis,而且ELK默认就支持Redis的集成,整个过程只需要修改配置即可完成,整个流程如下所示:

hadoop和r Hadoop和redis_ViewUI_03

了解更多关于阿里云Redis版,请点击此处:https://www.aliyun.com/product/kvstore