【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

Hazelcast 引入 MapReduce API

  • 2014-02-19
  • 本文字数:1874 字

    阅读完需:约 6 分钟

本文是对 Hazelcast 公司高级软件工程师 Christoph Engelbert 的采访。

InfoQ:您能向我们简单地介绍一下 Hazelcast 是什么以及您公司的商业模式吗?

Christoph:Hazelcast 是一个遵循 Apache License 2 许可的开源内存数据网格解决方案。它以一种分布式方式实现了许多典型的 Java API,如 Map、List、Set、Queue、Lock、ExecutorService 等,还针对分区的集群环境增加了功能,如分布式查询(Predicate)或者在特定节点上运行 Runnable/Callable。

此外,Hazelcast 公司负责该开源项目的开发、分发和支持。我们会提供商业支持、培训以及为用户在关键任务环境里所需要的一切提供帮助。而且,我们会提供商业扩展,包括集群监控和管理解决方案、更高的性能可预测性、集群安全和其它语言的本地 API 客户端,如 C++ 和 C#。虽然 Hazelcast 完全是用 Java 编写的,但我们通过兼容 Memcached 的 API 以及 RESTful 接口提供多语言支持。

InfoQ:Hazelcast 可以用在哪些应用、领域或者开源项目中,以及开发人员通常如何使用它?

Christoph:Hazelcast 当前在金融领域发展迅猛,用于低延迟交易应用、风险、金融交易和其它类似的应用。大型电信公司、网络设备制造商和云提供商也在用它。我们还看到,它开始应用在诸如互联网和移动支付、游戏和赌博、旅行和餐饮以及电子商务等领域。大部分应用场景是缓存或者应用扩展。此外,许多公司和项目都基于Hazelcast 构建了自己的解决方案,如 OrientDB Vert.X MuleSoft WSO2 或者 Apache Shiro

InfoQ:最近,你们发布了 MapReduce API ,据我了解,您是主要开发人员。您做这个的动机是什么?

Christoph:开始的时候,我将 CastMapR 当成一个研究项目。我想研究下新的 Hazelcast 3 API,而且由于那会我正致力于另一个针对 MapReduce 的 API(由于我正在使用 JBoss 集群),在我看来,它是个不错的选择。然后,当我在 2013 年底加入 Hazelcast 的时候,我们开始讨论使它成为 Hazelcast 主要发行版的一部分。

InfoQ:这样说,是您将 CastMapR 纳入了 Hazelcast?

Christoph:差不多,是的。最初的想法只是将基本代码移到核心发行版,但随着时间推移,我们觉得想要在反应式编程方面更进一步,因此我重写了大部分内部构件。此外,关于公开的 API,我们讨论了很多。CastMapR 主要是受 Infinispan 的 API 启发,因为我恰恰喜欢它。我们商定,新的 MapReduce API 采用一种更像 Hadoop 的 API(与最初的 Google 论文的描述更为相近),但我坚持使用 DSL 方式的作业定义。最终,旧实现中只有很少的部分得到重用。新实现在设计上完全并行。Mapping 和 Reducing 阶段完全并行,而且整个系统以流的方式工作(基于分块处理)。因此,旧实现目前已经停用,所有的精力都投入到 Hazelcast 内部的 MapReduce API。

InfoQ:喔,那很棒。现在,Hazelcast MapReduce API 的典型(预期)应用场景是什么?话说它与 MongoDB 的 MapReduce API 或者 Hadoop 相比如何?

Christoph:用户想要使用 Hazelcast MapReduce API 的典型场景是分布式计算,在这种情况下, EntryProcessor 并不合适。不管他是想要进行数据转换,还是想要使用多数据源。它也非常适合运行时间长的操作,由于当前所有的系统都直接工作在分区的线程上,所以用户不必为数据更新做显式锁定。在接下来的某个版本中,我会增加连续的 map 和 reduce 支持,那样用户就可以运行完全流分析。在这一点上,Twitter 永远是最好的例子,它实时处理微博收集信息,如转发、收藏和其它许多统计信息。它也可以用于风险管理和分析。

它与 Hadoop 的最大不同是在内存中和实时处理。Hadoop 有不同的阶段,每个阶段都是一个接一个的执行,而在 Hazelcast 中,由于内部采用并行设计,mapping 和 reducing 在所有节点上都是并行运行,所以用户可以获得全部性能。阶段本身与 Hadoop 中的非常类似,也有 mapping(和 combining)、shuffling(划分到节点)和 reducing 阶段,但是不像在 Hadoop 里那样分的那么清楚。

与 MongoDB 比较有些困难,因为我从没用过他们的 MapReduce API,但它似乎缺少 Combiner,这对于大型数据集非常有用,不过,我说过我并不了解他们的实现方式。

InfoQ:棒极了,最后一个问题:关于 Hazelcast MapReduce API,您还有什么想与我们的读者分享吗?

Christoph:是的,我有一个个人请求:我希望大家能够试用该 API,并向我们提供尽可能多的反馈。该 API 十分稳定,我对它非常满意。另外,我想了解真实世界的用户体验,以便找到更多需要调整的地方,因为我相信我们可以改善它。

非常感谢您抽出时间来接受我们的采访,Christoph!

查看英文原文:**** Hazelcast Introduces MapReduce API

2014-02-19 21:483472
用户头像

发布了 256 篇内容, 共 80.7 次阅读, 收获喜欢 11 次。

关注

评论

发布
暂无评论
发现更多内容

Qt | 深入了解Qt中的模型类

YOLO.

c++ qt 9月月更

Qt | 关于样式表的使用 QStyleSheet

YOLO.

c++ qt 9月月更

Qt | 关于矩形大小的使用 QSize

YOLO.

c++ qt 9月月更

软件测试 | 测试开发 | 基于Bert迁移学习点击未知弹框

测吧(北京)科技有限公司

软件测试 测试

Qt | 关于Qt的模型/视图架构

YOLO.

c++ qt 9月月更

Qt | 如何创建一个新的模型

YOLO.

c++ qt 9月月更

MySQL系列——索引、视图、DBA常用命令、数据库设计三范式

胖虎不秃头

MySQL 数据库· 9月月更

软件测试 | 测试开发 | 测试人生 | 入行未满3年拿下AI领域上市公司30W+ offer,他靠的是什么?

测吧(北京)科技有限公司

软件测试 测试

软件测试 | 测试开发 | 测试人生 | 00后0经验应届毕业生拿下2线城市15W offer,好励志~

测吧(北京)科技有限公司

软件测试 测试 offer

软件测试 | 测试开发 | 一次JVM内存泄漏排查过程

测吧(北京)科技有限公司

Java 测试

HarmonyOS 3百机升级计划,来了!

HarmonyOS开发者

HarmonyOS

软件测试 | 测试开发 | 测试人生 | 疫情之下,1个月内涨薪50%拿下亿级流量金融上市公司新 offer,我柠檬了~

测吧(北京)科技有限公司

软件测试 测试 offer

软件测试 | 测试开发 | 视频编辑SDK测试

测吧(北京)科技有限公司

软件测试 sdk

Qt | 关于目录操作的使用 QDir

YOLO.

c++ qt 9月月更

软件测试 | 测试开发 | 接口自动化测试如何进行认证?

测吧(北京)科技有限公司

测试 自动化测试

Qt | 关于颜色属性的使用 QColor

YOLO.

c++ qt 9月月更

NFT和元宇宙之间的关系是什么?

开源直播系统源码

NFT 区块链、 数字藏品 数字藏品系统

软件测试 | 测试开发 | 关于git日常用法,读懂这一篇,差不多就够了

测吧(北京)科技有限公司

git 测试

关于QPalette的使用

YOLO.

c++ qt 9月月更

Qt | 文件操作 QFile

YOLO.

qt 9月月更

FreeRTOS记录(三、RTOS任务调度原理解析_Systick、PendSV、SVC)

矜辰所致

Svc FreeRTOS 9月月更 Systick PendSV

软件测试 | 测试开发 | Sikuli 基于图形识别的自动化测试技术

测吧(北京)科技有限公司

软件测试

Qt | 关于重绘事件处理函数 paintEvent()

YOLO.

c++ qt 9月月更

软件测试 | 测试开发 | 接口自动化中如何完成接口加密与解密?

测吧(北京)科技有限公司

Python 测试 自动化测试

软件测试 | 测试开发 | 探索Java中如何执行python脚本

测吧(北京)科技有限公司

Python 测试

软件测试 | 测试开发 | Scrcpy工具码流格式化

测吧(北京)科技有限公司

软件测试 测试

软件测试 | 测试开发 | AI测试中的数据收集

测吧(北京)科技有限公司

人工智能 测试

Qt | 关于画笔的使用 QPen

YOLO.

c++ qt 9月月更

望繁信科技携手复旦大学教育发展基金会,齐心共助公益慈善义拍

望繁信科技

Qt | 文件信息 QFileInfo

YOLO.

c++ qt 9月月更

Qt | 关于点的坐标的使用 QPoint

YOLO.

c++ qt 9月月更

Hazelcast引入MapReduce API_DevOps & 平台工程_Michael Hausenblas_InfoQ精选文章