关键特性
编辑关键特性
编辑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 会自动调整到您的环境;无需在使用
mapred
或mapreduce
API 之间切换 - 同一个类同时支持两者。 - 支持 Apache Hive
- 对 Elasticsearch 执行 Hive 查询,以进行高级分析和实时响应。elasticsearch-hadoop 将 Elasticsearch 公开为 Hive 表,因此您的脚本可以比以往更快地处理数据。
- Apache Spark
- 通过流式传输数据或索引任意
RDD
,直接对 Elasticsearch 执行快速转换。提供 Java 和 Scala 版本。