主要特性

编辑

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