Elasticsearch-Spark 体验

Elasticsearch-Spark 体验

Elastcisearch和Spark都是我非常喜欢的开源产品,如果能把两者整合起来进行应用当然是最好了。所以elastic在官网上发布了Elasticsearch for Apache Hadoop 2.1.0 (后面简写成ES-AH)版本后,我也很快尝试了下。虽然名字是for Hadoop,但是里面有一个模块是for spark的。

地址在这里:

https://www.elastic.co/guide/en/elasticsearch/hadoop/current/spark.html

关于Hadoop的内容都是可以不看的,Confinguration这个章节还是要看下

https://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html

主要的功能包括

  1. Spark通过RDD将数据写入到Elasticsearch
  2. Spark sql通过Dataframe或者SchemaRDD将数据写入到Elasticsearch
  3. Spark从Elasticsearch读取数据,构造Dataframe
  4. 将Elasticsearch作为数据库,执行Sql脚本,包括执行创建临时表的动作
  5. 还可以通过Map/Reduce层来访问数据,但是并不推荐

代码贴个最简单的,本地测试通过了,官网的文档写的很清楚,没必要饶舌了。

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.elasticsearch.spark._
import org.elasticsearch.spark.rdd.EsSpark

object EsSparkTest{

  def main(args: Array[String]) {  
    val conf = new SparkConf().setAppName("Test").setMaster("local")

    conf.set("es.index.auto.create", "true")
    val sc = new SparkContext(conf)
    val numbers = Map("one"->1,"two"->2,"three"->3)
    val airports = Map("arrival" -> "Otopeni", "SFO" -> "San Fran")
    // implicit
    sc.makeRDD(Seq(numbers, airports)).saveToEs("spark/docs")
  }

最开始遇到的一个问题就是不知道在那里设置Elasticsearch的访问,看看Confinguration就清楚了,有es.nodes和es.port,如果在本地测试,就不用设置了。
欢迎大家讨论!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值