Не удается связаться с разделом таблицы кустов, после удаления файла hdfs, связанного с разделом

Мой кластер Hadoop выполняет пакетную работу для всех данных в 11:00.

Задание создает раздел таблицы кустов (например, p_date=201702,p_domain=0) и импортирует данные rdbms в раздел таблицы кустов, например ETL....(таблица кустов не является внешней таблицей)

но работа не удалась, и я удалил некоторый файл hdfs (расположение раздела => p_date=20170228,p_domain=0) для повторной обработки.

Это моя ошибка, я просто набираю запрос на удаление раздела в Билайн...

И я связываюсь с зависанием, когда я запрашиваю таким образом "select * from table_name, где p_date=20170228,p_domain=0", но "select * from table_name, где p_date=20170228,p_domain=6", является успешным.

Я не могу найти журнал ошибок и не появляется консольное сообщение

Как я могу решить эту проблему?

И я надеюсь, что вы понимаете мое отсутствие английского.

1 ответ

Решение

Вы не должны удалять свои разделы в таблице Hive таким способом. Для этого есть специальная команда:

ALTER TABLE table_name DROP IF EXISTS PARTITION (partitioncolumn = 'somevalue');

Удаление файлов из HDFS недостаточно. Вам нужно очистить данные от метастаза. Для этого вам нужно подключиться к вашей реляционной базе данных и удалить данные из таблицы разделов в базе данных MetaStore.

mysql

mysql> use hive;

mysql> SELECT PART_ID PARTITIONS WHERE PART_NAME like '%p_date=20170228,p_domain=0%'

+---------+-------------+------------------+--------------------+-------+--------+
| PART_ID | CREATE_TIME | LAST_ACCESS_TIME | PART_NAME          | SD_ID | TBL_ID |
+---------+-------------+------------------+--------------------+-------+--------+
|       7 |  1487237959 |                0 | partition name     |   336 |    329 |
+---------+-------------+------------------+--------------------+-------+--------+


mysql> DELETE FROM PARTITIONS WHERE PART_ID=7;

mysql> DELETE FROM PARTITION_KEY_VALS WHERE PART_ID=7;

mysql> DELETE FROM PARTITION_PARAMS WHERE PART_ID=7;

После этого Hive должен перестать использовать этот раздел в ваших запросах.

Другие вопросы по тегам