не удалось создать таблицу в улье из спарк-оболочки для данных твиттера - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть данные из твиттера, хранящиеся в пути hdfs.Я могу прочитать данные с помощью spark dataframe как:

val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)

val df= hiveContext.read.json("/nifi/data/twitter/")

df.printSchema и df.show команды показывают результат без проблем.

, но когда я пытаюсь сохранитьфрейма данных в таблицу кустов, я сталкиваюсь с ошибками ниже:

df.write.saveAsTable("tweets_32")

org.apache.hadoop.ipc.RemoteException (org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException): нетарендовать /apps/hive/warehouse/tweets_32/_tevent/0/_teven/attempt_201809260508_0002_m_000002_0/part-r-00002-c204b592-dc2a-4b2f-bc39-54afb237a6cb.gz.parquet: не существует в файле 117 (узел).[Аренда.Организатор: DFSClient_NONMAPREDUCE_14557453_1, pendingcreates: 1]>

Может кто-нибудь сообщить мне, что может быть причиной этого?

1 Ответ

0 голосов
/ 02 октября 2018

Значение этой ошибки: другая программа обработала и удалила этот файл tmp.Убедитесь, что нет другой задачи, выполняемой параллельно вашей.Другая причина - ваша задача может быть медленной.Hadoop не пытается диагностировать и исправлять медленно выполняющиеся задачи, вместо этого он пытается их обнаружить и запускает для них задачи резервного копирования.Вы можете попытаться исправить это, закрыв спекулятивную версию spark и Hadoop:

sparkConf.set("spark.speculation", "false");
sparkConf.set("spark.hadoop.mapreduce.map.speculative", "false");
sparkConf.set("spark.hadoop.mapreduce.reduce.speculative", "false");

Существует обсуждение этой проблемы: введите описание ссылки здесь

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