关键特性

编辑

Apache Hadoop 版 Elasticsearch 的关键特性包括:

可扩展的 Map/Reduce 模型
elasticsearch-hadoop 基于 Map/Reduce 构建:每个在 elasticsearch-hadoop 中执行的操作都会产生多个 Hadoop 任务(基于目标分片的数量),这些任务会与 Elasticsearch 并行交互。
基于 REST
elasticsearch-hadoop 使用 Elasticsearch REST 接口进行通信,通过最大限度地减少网络中需要打开的端口数量,从而实现灵活的部署。
自包含
该库的设计小巧高效。大约 300KB,并且无需 Hadoop 本身之外的任何额外依赖项,因此在集群中分发 elasticsearch-hadoop 简单快捷。
通用 jar 包
无论您使用的是普通 Apache Hadoop 还是某个特定发行版,同一个 elasticsearch-hadoop jar 包都能在所有发行版中透明地工作。
内存和 I/O 高效
elasticsearch-hadoop 关注性能。从基于拉取的解析,到批量更新和直接转换为/从原生类型转换,elasticsearch-hadoop 都对其内存和网络 I/O 使用进行了精细调整。
自适应 I/O
elasticsearch-hadoop 会自动检测传输错误并重试。如果 Elasticsearch 节点失效,则会将请求重新路由到可用的节点(这些节点会自动发现)。此外,如果 Elasticsearch 过载,elasticsearch-hadoop 会检测到被拒绝的数据并重新发送,直到数据被处理或用户定义的策略生效。
促进数据共址
elasticsearch-hadoop 与 Hadoop 完全集成,公开其网络访问信息,允许共址的 Elasticsearch 和 Hadoop 集群相互感知并减少网络 I/O。
支持 Map/Reduce API
elasticsearch-hadoop 的核心使用低级别的 Map/Reduce API 来读取和写入 Elasticsearch 数据,从而实现最大的集成灵活性和性能。
支持旧版(mapred) 和新版(mapreduce) Map/Reduce API
elasticsearch-hadoop 会自动调整到您的环境;无需在使用 mapredmapreduce API 之间切换 - 同一个类同时支持两者。
支持 Apache Hive
对 Elasticsearch 执行 Hive 查询,以进行高级分析和实时响应。elasticsearch-hadoop 将 Elasticsearch 公开为 Hive 表,因此您的脚本可以比以往更快地处理数据。
Apache Spark
通过流式传输数据或索引任意 RDD,直接对 Elasticsearch 执行快速转换。提供 Java 和 Scala 版本。