Nano Hash - криптовалюты, майнинг, программирование

Не удалось подключиться к красному смещению от искры

Я пытаюсь прочитать данные из красного смещения в искру 1.5, используя scala 2.10.

Я собрал пакет spark-redshift и добавил в проект соединитель JDBC amazon, но продолжаю получать эту ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: com/amazonaws/auth/AWSCredentials

Я аутентифицировался следующим образом:

val hadoopConf = sc.hadoopConfiguration
hadoopConf.set("fs.s3n.impl","org.apache.hadoop.fs.s3native.NativeS3FileSystem")
hadoopConf.set("fs.s3n.awsAccessKeyId", "ACCESSKEY")
hadoopConf.set("fs.s3n.awsSecretAccessKey","SECRETACCESSKEY")

val df: DataFrame = sqlContext.read.format("com.databricks.spark.redshift")
.option("url","jdbc:redshift://AWS_SERVER:5439/warehouseuser=USER&password=PWD")
.option("dbtable", "fact_time")
.option("tempdir", "s3n://bucket/path")
.load()

df.show()

  • Вы забыли отправить JAR-файл зависимостей AWS в приложение Spark. 03.10.2015
  • спасибо, я добавил следующие зависимости: aws-java-sdk-core-1.10.22, aws-java-sdk-s3-1.10.22, aws-java-sdk-sts-1.10.22. теперь я получаю эту ошибку: java.lang.NoClassDefFoundError: org/apache/http/protocol/HttpContext 03.10.2015

Ответы:


1

Что касается вашей первой ошибки java.lang.NoClassDefFoundError: com/amazonaws/auth/AWSCredentials, я повторяю то, что сказал в комментарии: вы забыли отправить банку зависимостей AWS в банку приложения spark.

А что касается второй ошибки, я не уверен в пакете, но, скорее всего, это http://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore/4.4.3 нужная вам библиотека. (Я не знаю, для чего вы его используете!)

Вы можете добавить следующее к своим зависимостям maven:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpcore</artifactId>
    <version>4.4.3</version>
</dependency>

и вам нужно будет собрать все.

PS: вам всегда нужно предоставлять библиотеки, если они не установлены. Вы также должны быть осторожны с размером файла jar, который вы отправляете, потому что это может снизить производительность.

03.10.2015
  • спасибо, я действительно добавил httpclient-4.5.1 и httpcore-4.4.3. теперь я получаю эту ошибку: Не удалось инициализировать класс com.amazonaws.services.s3.internal.ServiceUtils. Я читал, что библиотека spark-redshift - это кошмар зависимостей 03.10.2015
  • Ага. Верно! Но я не эксперт по красному смещению. Пока он остается в искровом прицеле, я могу помочь. В противном случае вам придется задавать новые вопросы для этого, извините! 03.10.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..