Не будет пытаться аутентифицироваться с использованием SASL (неизвестная ошибка) - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь запросить данные у Solr через Spark. У меня проблема с подключением ZooKeeper. Я начал Solr следующим образом: solr start (не solr cloud), а также zkserver на другом cmd.

Пожалуйста, посмотрите на мой код:

object solr extends App {

  val zkHost = "127.0.0.1:57864"
  val collection = "website"
  val queryStr = "*:*"

  val conf = new SparkConf().setMaster("local").setAppName("My App")
  val sc = new SparkContext(conf)

  val solrRDD: SelectSolrRDD = new SelectSolrRDD(zkHost, collection, sc)
  val rdd: RDD[SolrDocument]  = solrRDD.query(queryStr)

  val words: RDD[String] = rdd.map(doc => if (doc.containsKey("the")) doc.get("the").toString else "")

  val counts = words
    .map(word => (word, 1))
    .reduceByKey(_ + _)

  counts.foreach(println)
  System.out.println("Total words: " + counts.count());

  sc.stop()
}

Я также пытался с val zkHost = "localhost:2181", но я получаю ту же ошибку.

Моя ошибка выглядит так:

19/03/12 15:59:09 INFO ClientCnxn: Opening socket connection to server 127.0.0.1/127.0.0.1:57864. Will not attempt to authenticate using SASL (unknown error)
19/03/12 15:59:10 INFO ClientCnxn: Socket error occurred: 127.0.0.1/127.0.0.1:57864: Connection refused: no further information
19/03/12 15:59:11 INFO ClientCnxn: Opening socket connection to server 127.0.0.1/127.0.0.1:57864. Will not attempt to authenticate using SASL (unknown error)
19/03/12 15:59:12 INFO ClientCnxn: Socket error occurred: 127.0.0.1/127.0.0.1:57864: Connection refused: no further information

... и это постоянно. И в конце:

Exception in thread "main" com.google.common.util.concurrent.UncheckedExecutionException: org.apache.solr.common.SolrException: java.util.concurrent.TimeoutException: Could not connect to ZooKeeper 127.0.0.1:57864 within 60000 ms

Кто-нибудь знает, что мне не хватает?

1 Ответ

0 голосов
/ 12 марта 2019

Я думаю, что ваша проблема в том, что вам нужно запустить solr cloud, потому что для одного узла solr не требуется Zookeeper.

Когда вы создаете SelectSolrRDD, вы передаете хост Zookeeper, который подразумевает подключение к экземпляру Solr Cloud, а не к одному узлу, поэтому, вероятно, Zookeeper не знает, о чем вы говорите.

Кроме того, ваш ансамбль solr zookeeper обычно должен выглядеть следующим образом:

val zkHost = "zkhost1:2181,zkhost2:2181,zkhost2:2181/solr"

Обратите внимание на /solr в конце, который является путем в Zookeeper, где Solr Cloud хранит свои вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...