首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >星星之火- ElasticSearch索引创建性能太慢

星星之火- ElasticSearch索引创建性能太慢
EN

Stack Overflow用户
提问于 2016-03-09 09:45:09
回答 1查看 886关注 0票数 1

我试图使用Apache在弹性搜索中创建一个索引(将海量数据写入ES),.I已经完成了一个Scala程序来使用ApacheS以来创建索引,我不得不索引巨大的数据,这是作为我的产品bean在一个LinkedList中得到的。Then.Then我尝试遍历产品bean列表并创建索引。下面是我的代码。

代码语言:javascript
复制
val conf = new SparkConf().setAppName("ESIndex").setMaster("local[*]")
    conf.set("es.index.auto.create", "true").set("es.nodes", "127.0.0.1")
      .set("es.port", "9200")
      .set("es.http.timeout", "5m")
      .set("es.scroll.size", "100")

    val sc = new SparkContext(conf)

    //Return my product bean as a in a linkedList.
    val list: util.LinkedList[product] = getData() 

    for (item <- list) {
      sc.makeRDD(Seq(item)).saveToEs("my_core/json")
    }

这种方法的问题在于创建索引花费了太多的时间。有没有更好的方法来创建索引?

EN

回答 1

Stack Overflow用户

发布于 2016-03-09 10:24:39

  1. 除非有必要,否则不要通过驱动程序传递数据。根据从getData返回的数据源的不同,您应该使用相关的输入方法或创建自己的输入方法。如果数据来自MongoDB,例如使用mongo-hadoopSpark-MongoDB或钻取JDBC连接。然后使用map或类似的方法来构建所需的对象,并在转换的RDD上使用saveToEs
  2. 使用as单个元素创建RDD是没有意义的。它根本没有从星火建筑中受益。您只需启动大量的任务,而这些任务只需要一个活动执行器即可完成。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35887978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档