Spark (автономный режим): 2.2.1 Улей: 2.2.Все с настройками по умолчанию.Spark, Hive и Hadoop находятся в одном кластере, включая 3 узла (8G Mem, 8 2.1G ядер).
Мы использовали rabbitMQ для получения сообщений;в приемнике MQ мы преобразуем сообщения json в Dataframe (1 сообщение для 1 записи) и используем pyspark для вставки кадра данных в таблицу в формате Orc HIVE с помощью следующего кода pyspark:
df = self.spark.createDataFrame(df)
df.createOrReplaceTempView("tmp_table")
spark.sql("insert into table {} select * from tmp_table".format(table_name))
Функция spark.sql () стоит более 3 секунд.И с течением времени он становится медленнее и может стоить более 10 секунд.Мы проверяем журнал искр, на самом деле работа sql стоит менее 1 секунды, обычно 0,2 ~ 0,6 сек.
Мы пробуем паркет перед Orc, а также увеличиваем память исполнителя с 1G до 2G.Там нет большой разницы.Таблица Hive не разбита на разделы.
В чем может быть проблема ключа?