如何从Bluemix上的Apache Spark服务连接到ElasticSearch

时间:2015-11-18 12:22:10

标签: scala apache-spark ibm-cloud

我在Bluemix上使用Apache Spark服务来创建演示(收集/解析twitter数据)。我想传输弹性搜索。

我根据以下网址创建了我的scala应用[1]:

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

但是,在Bluemix上使用Jupyter笔记本时,我无法正常运行我的应用程序。一个特殊的解释器感知SparkContext" sc"已经在运行了,但我没有添加属性到" sc"例如" es.nodes"," es.port" ,依此类推,以便连接Elastic Search。

Q1。 有谁知道如何在Bluemix上为特殊的解释器感知SparkContext添加额外的属性?在我当地的火花环境中,它很容易添加。

Q2。 我尝试创建另一个SparkContext如下并用于流式传输,但它在Jupyter笔记本上无法控制..

var conf = sc.getConf
conf.set("es.index.auto.create", "true")
conf.set("es.nodes", "XXXXXXXX")
conf.set("es.port", "9020")
conf.set("spark.driver.allowMultipleContexts", "true")
val sc1 = new SparkContext(conf)

我认为,创建额外SparkContext的过程可能不对。 有谁知道如何在Bluemix上正确创建第二个SparkContext?

1 个答案:

答案 0 :(得分:3)

如果我没弄错的话,你已经在现有SparkContext中的配置对象上设置了属性。

这些行(纠正我认为是拼写错误)应该在现有的SparkContext配置上设置选项:

val conf = sc.getConf
conf.set("es.index.auto.create", "true")
conf.set("es.nodes", "XXXXXXXX")
conf.set("es.port", "9020")
conf.set("spark.driver.allowMultipleContexts", "true")

你提到你无法添加这些属性 - 你能详细说明它导致这样做的问题吗?