Spark не использует правильную конфигурацию из core-site.xml

Когда я пытаюсь прочитать паркетный файл из указанного места, например / test, с помощью spark.read.parquet (), я получаю сообщение об ошибке file: // test не существует. Когда я добавляю core-site.xml в качестве ресурса в код с

sc.hadoopConfiguration.addResource(new Path(<path-to-core-site.xml>))

он смотрится в hdfs. Однако я не хочу добавлять ресурс в код. У меня вопрос: как убедиться, что Spark читает core-site.xml и использует hdfs в качестве файловой системы по умолчанию.

Я установил сервер ubuntu 18.04.2LTS с hadoop 3, spark 2.4.2 и yarn в качестве диспетчера ресурсов на виртуальной машине. Я настроил core-site.xml, указав для fs.defaultFS значение hdfs: // localhost: 9000. Я также настроил HADOOP_CONF_DIR в файле bash.


person Hypnotise    schedule 25.06.2019    source источник


Ответы (2)


Это общий вопрос с множеством возможных ответов. Я постараюсь ответить как можно лучше: https://spark.apache.org/docs/latest/configuration.html#inheriting-hadoop-cluster-configuration В ссылке объясняется, что вы можете установить переменную среды HADOOP_CONF_DIR в каталог, содержащий основной сайт. xml и до тех пор, пока вы не переопределите его в spark-env.sh или чем-то еще, он должен работать.

Кстати, вы уверены, что выполнили экспорт в HADOOP_CONF_DIR, потому что я знаю по опыту, что он работает со Spark 2.4.2, поэтому, если вы думаете, что основной сайт не загружен, это, вероятно, потому, что вы неправильно определили переменную или, возможно, ваш spark-env.sh маскирует ваше предыдущее определение.

person Ilya Brodezki    schedule 25.06.2019

Пара вариантов
1. Убедитесь, что core-site.xml доступен в пути к классам драйвера. Таким образом, core-site.xml будет загружен автоматически.
2. Если требуется только установка uri файловой системы по умолчанию, мы можем установить это в spark-defaults.conf или в объекте SparkConf, созданном для приложения с помощью spark.hadoop.fs.defaultFS, и установить его значение кому: hdfs:///

person DaRkMaN    schedule 25.06.2019