Как импортировать Sqoop в сжатую многораздельную таблицу Hive из Oracle - PullRequest
0 голосов
/ 21 мая 2019

Как импортировать Sqoop из Oracle в Hive в сжатой таблице

Попробовал импорт Sqoop из Oracle в Hive в текстовой многораздельной таблице, и это сработало. При попытке сделать то же самое в сжатой таблице (SNAPPY, ZLIB, BZIP2) при сжатии данных с помощью Sqoop с соответствующим кодеком он создает файлы. Но при попытке выбрать Hive я получаю сообщение об ошибке: Ошибка: java.io.IOException: java.lang.RuntimeException: генерация разделения ORC завершилась с исключением: org.apache.orc.FileFormatException: искаженный файл ORC maprfs: ///envir.../2019/4/20190416/part- м-00000.snappy. Неверный постскриптум. (Состояние =, код = 0)

Тесты идут так: - Создать таблицу - изменить файл параметров sqoop - запустить Sqoop - Изменить таблицу .. добавить раздел - попробуйте выбрать, что приводит к ошибке

SQOOP: --delete-мишень-Dir --target-Dir "/Environ..3/2019/4/20190416" --compression-кодек "Org.apache.hadoop.io.compress.BZip2Codec" --hive стол »... tmp_member3" --hcatalog-хранения-строфы 'сохранено как orc tblproperties ("orc.compress" = "BZIP2")' --hive-разбиение ключ "'год месяц день'" --hive-разбиение значение " '2019', '4', '20190416'"

Улей: СОЗДАЙТЕ ВНЕШНЮЮ ТАБЛИЦУ xx.tmp_member3 (STRING, kpi_name STRING, b STRING, c STRING), РАЗДЕЛЕННЫЙ (ГОД INT, МЕСЯЦ INT, ДЕНЬ INT) СТРОК ФОРМАТА С РАЗМЕЩЕННЫМИ ПОЛЯМИ, ПРЕКРАЩЕННЫМИ ',' ХРАНЕНО В РАМКАХ ORC '/envir../ 2019/4/20190416 'TBLPROPERTIES (' orc.compress '=' BZIP2 ');

Я уже попробовал 'set hive.exec.orc.split.strategy = BI', но безуспешно.

1 Ответ

1 голос
/ 21 мая 2019

Я бы лично решил это в 2 этапа.

1-ым будет получение данных из Oracle в обычную таблицу этапов текстового формата улья, а затем из этапа в таблицу орков улья с форматом сжатия в соответствии с вашими требованиями.

...