java .io.IOException: не удалось открыть собственное соединение с Cassandra в 127.0.0.1:9042 - PullRequest
0 голосов
/ 02 мая 2020

Я нашел похожий пост , но это не помогло.

Я немного поработал с Кассандрой, и теперь я пытаюсь настроить свечи и свечи. Cassandra-разъем. Я использую IntelliJ IDEA для этого (в первый раз с IntelliJ IDEA и Scala тоже так, вы получите картинку)

Моя ОС Windows 10. Вот что я сделал:

Внутри .. / spark-2.4.5-bin-hadoop2.7 / bin : spark-class.cmd org.apache.spark.deploy.master.Master

Внутри .. / spark-2.4.5 -bin-hadoop2.7 / bin : spark-class.cmd org.apache.spark.deploy.worker.Worker -c 1 spark://192.168.0.3:7077

build.gradle

apply plugin: 'scala'
apply plugin: 'idea'
apply plugin: 'eclipse'

repositories {
    mavenCentral()
}

idea {
    project {
        jdkName = '1.8'
        languageLevel = '1.8'
    }
}

dependencies {
    compile group: 'org.apache.spark', name: 'spark-core_2.11', version: '2.4.5'
    compile group: 'org.apache.spark', name: 'spark-sql_2.11', version: '2.4.5'
    compile group: 'org.scala-lang', name: 'scala-library', version: '2.11.11'
    compile group: 'com.datastax.spark', name: 'spark-cassandra-connector_2.11', version: '2.4.0'
}

configurations.all {
    resolutionStrategy {
        force 'com.google.guava:guava:12.0.1'
    }
}

compileScala.targetCompatibility = "1.8"
compileScala.sourceCompatibility = "1.8"

SparkModule. scala

package org.sentinel.spark_module

import org.apache.spark.{SparkConf, SparkContext}
import com.datastax.spark.connector._

object SentinelSparkModule {
  def main(args: Array[String]) {
    val conf = new SparkConf().set("spark.cassandra.connection.host", "127.0.0.1")
      .set("spark.cassandra.connection.port", "9042")
      .setAppName("Sentinel").setMaster("spark://192.168.0.3:7077")

    val sc = new SparkContext(conf)
    val rdd = sc.cassandraTable("keyspace", "table")
    val values = rdd.groupBy((CassandraRow) => {
      @throws[Exception]
      def call(row: Nothing) = CassandraRow.getString("column")
    }).take(10).foreach(println)    
  }
}

Даже при возникновении ошибки я могу видеть приложение, работающее в http://localhost: 8080 / , пока я не остановлю выполнение в IDE. enter image description here

Выдержка из дампа полного стека:

Исключение в потоке "main" java .io.IOException: Не удалось открыть собственное соединение с Кассандрой по адресу {127.0.0.1}: 9042

Причина: com.datastax.driver.core.exceptions.NoHostAvailableException: Все хосты попытались выполнить запрос (неудачно: /127.0.0.1:9042 (com.datastax.driver.core.exceptions.OperationTimedOutException: [/ 127.0.0.1 : 9042] Время ожидания истекло))

Наконец, несмотря на то, что время истекло, я также запрашиваю Cassandra из своего веб-приложения (node.js), так как я кодирую это и запросы работают нормально. Итак, я не знаю, почему это будет проблемой со стороны Кассандры, но, я думаю, это может быть.

Спасибо

РЕДАКТИРОВАТЬ:

Я включил compile group: 'com.datastax.cassandra', name: 'cassandra-driver-core', version: '3.0.0' и та же ошибка. ( версия таблицы совместимости )

РЕДАКТИРОВАТЬ:

nodetool status показывает:

Datacenter: datacenter1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load        Tokens       Owns (effective)  Host ID                               Rack
UN  127.0.0.1  138.59 MiB  256          100.0%            77d808e6-5c57-494a-b6fb-7e73593dbb46  rack1

РЕДАКТИРОВАТЬ:

cqlsh 127.0.0.1 9042 показывает:

WARNING: console codepage must be set to cp65001 to support utf-8 encoding on Windows platforms.
If you experience encoding problems, change your console codepage with 'chcp 65001' before starting cqlsh.

Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.4 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
WARNING: pyreadline dependency missing.  Install to enable tab completion.
cqlsh>

1 Ответ

0 голосов
/ 02 мая 2020

Кассандра тоже работает на 192.168.0.3? Вы пытались изменить spark.cassandra.connection.host на 192.168.0.3 вместо этого? Причина, по которой вы видите эту ошибку, заключается в том, что ваш исполнитель Spark не может подключиться к Cassandra на 127.0.0.1. Я ничего не знаю о вашей настройке, и вы, возможно, уже пробовали это, но, возможно, решение так просто.

...