主要功能
编辑主要功能编辑
Elasticsearch for Apache Hadoop 的主要功能包括:
- 可扩展的 Map/Reduce 模型
- elasticsearch-hadoop 构建于 Map/Reduce 之上:在 elasticsearch-hadoop 中执行的_每个_操作都会产生多个 Hadoop 任务(基于目标分片的数量),这些任务与 Elasticsearch 并行交互。
- 基于 REST
- elasticsearch-hadoop 使用 Elasticsearch REST 接口进行通信,通过最大限度地减少网络中需要打开的端口数量来实现灵活的部署。
- 自包含
- 该库设计精简高效。elasticsearch-hadoop 大约 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 之间进行切换 - 它们都由相同的类同时支持。 - Apache Hive 支持
- 对 Elasticsearch 运行 Hive 查询,以进行高级分析和_实时_响应。 elasticsearch-hadoop 将 Elasticsearch 作为 Hive 表公开,因此您的脚本可以比以往更快地处理数据。
- Apache Spark
- 通过流式传输数据或索引_任意_
RDD
,直接对 Elasticsearch 运行快速转换。提供 Java 和 Scala 版本。