主要特性
编辑主要特性
编辑适用于 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 集群能够相互感知并减少网络 IO。
- Map/Reduce API 支持
- elasticsearch-hadoop 的核心是使用低级别的 Map/Reduce API 来读取和写入 Elasticsearch 中的数据,从而实现最大的集成灵活性和性能。
-
支持旧版(
mapred
) 和新版(mapreduce
) Map/Reduce API - elasticsearch-hadoop 会自动调整以适应您的环境;您不必在
mapred
或mapreduce
API 之间切换使用 - 同一类在同一时间支持这两种 API。 - Apache Hive 支持
- 针对 Elasticsearch 运行 Hive 查询,以进行高级分析和实时响应。elasticsearch-hadoop 将 Elasticsearch 公开为 Hive 表,因此您的脚本可以比以往更快地处理数据。
- Apache Spark
- 通过流式传输数据或索引任意的
RDD
,直接针对 Elasticsearch 运行快速转换。提供 Java 和 Scala 版本。