在hadoop上安装和配置elasticsearch

时间:2016-03-09 19:51:26

标签: hadoop elasticsearch apache-spark

我已经阅读了这些页面和其他相关链接,以便在hadoop上安装和配置elasticsearch。 Install and Configure elasticsearch on hadoop?

但是,我还没有提出一些问题。

我正在分别使用elasticsearch和spark / hadoop;具体来说,我正在使用cloudera hadoop和elasticsearch正在其他Linux机器上运行。 在hadoop中,我有一个边缘节点提交spark作业,并且作业通过带有config的执行程序在其他6个节点上运行。

  1. 下面的安装指南对我来说信息量不大。
  2. (1)当我在每个节点上安装elasticsearch-hadoop二进制文件时,Elasticsearch会在HDFS上保留索引吗? (2)如果是这样,我需要把jar二进制文件放在哪里? elasticsearch-spark_2.11-2.2.0.jar elasticsearch-Hadoop的2.2.0.jar

    实际上,使用elasticsearch-hadoop-2.2.0.jar,我可以在/从运行在linux机器上的elasticsearch读取/写入文件。

    sc.makeRDD(docs).saveToEs(indexname + "/" + typename, Map( "es.nodes" -> ES_HOSTN_ODE_ADDRESS, "es.port" -> ES_HOST_PORT))
    

    (3)如何设置hdfs的数据路径? 目前elasticsearch已配置为

    path.data: /data1,/data2,/data3,/data4
    

    (4)还有其他一些好的文件/页面可供参考吗?

    elasticsearch-hadoop binaries can be obtained either by downloading them from the elastic.co site as a ZIP (containing project jars, sources and documentation) or by using any Maven-compatible tool with the following dependency:
    
    
    <dependency>
          <groupId>org.elasticsearch</groupId>
          <artifactId>elasticsearch-hadoop</artifactId>
          <version>2.2.0</version>
        </dependency>
    
    jar above contains all the features of elasticsearch-hadoop and does not require any other dependencies at runtime; in other words it can be used as is.        elasticsearch-hadoop binary is suitable for both Hadoop 1.x and Hadoop 2.x (also known as YARN) environments without any changes.
    
    1. 在spark上使用scala,我可以从elasticsearch查询文档,但查询的数据并不是每个执行者的并行化。 如果我使用elasticsearch-hadoop和查询来自hdfs的数据,数据将自动并行化(RDD),如镶木地板文件,而不必

      sc.parallelize(数据);

    2. 对我来说,推送/拉动大数据对于使用Kibana等多种工具进行可视化非常重要。 对弹性搜索有弹性搜索有什么强大的优势吗?

1 个答案:

答案 0 :(得分:4)

来自Elasticsearch的{​​{3}}

  

Elasticsearch for Apache Hadoop是一个开源的,独立的,自包含的小型库,允许Hadoop作业(无论是使用Map / Reduce还是基于它构建的库,如Hive,Pig或Cascading或新的即将推出的库,如Apache Spark)与Elasticsearch交互。人们可以将其视为允许数据双向流动的连接器,以便应用程序可以透明地利用Elasticsearch引擎功能来显着丰富其功能并提高性能。

根据我对你的问题的理解答案:

  

(1)当我在每个节点上安装elasticsearch-hadoop二进制文件时,Elasticsearch会在HDFS上保留索引吗?

不,Elasticsearch-Hadoop是一个库,Hadoop作业可以通过它从Elasticsearch加载或存储数据。

  

(2)如果是这样,我需要把jar二进制文件放在哪里? elasticsearch-spark_2.11-2.2.0.jar elasticsearch-hadoop-2.2.0.jar

这些库必须存在于Spark的类路径中:website 或Hadoop:Add exteranl jars to classpath作业。

  

(3)我如何设置hdfs的数据路径?

我不认为在Hadoop / Spark Job中访问elasticsearch数据需要此步骤。

  

(4)还有其他一些好的文件/页面可以参考吗?

为了我的目的,我提到了Add exteranl jars to classpath

  
      
  1. 在spark上使用scala,我可以从elasticsearch查询文档,但查询的数据并不是每个执行程序的并行化。如果我使用elasticsearch-hadoop和查询来自hdfs的数据,数据会像镶木地板文件一样自动并行化(RDD),而不必   sc.parallelize(数据);
  2.   

是的,你是对的。使用Elasticsearch-Hadoop&amp; amp; Elasticsearch-spark over Elasticsearch Java / Scala Client与使用Hadoop或Spark的固有优势相同,即在群集上分配处理负载。

  
      
  1. 对我来说,推送/拉动大数据对于使用Kibana等多种工具进行可视化非常重要。 elasticsearch-hadoop对弹性搜索有什么强大的优势吗?
  2.   

如前所述'elasticsearch-hadoop'只是一个图书馆。