Читать все таблицы из одного улья, а затем записывать в другой куст другого кластера с помощью искры - PullRequest
0 голосов
/ 20 декабря 2018

Мы можем читать или записывать таблицы из улья, помещая hive-site.xml в направлении "conf" в spark. Но теперь у меня есть два кластера, которые могут быть связаны друг с другом. Скажем, улей 1 на кластере, и улей2 в другом кластере

Теперь мне нужно прочитать данные из улья 1 и выполнить какое-то преобразование, а затем записать в куст 2, проблема в том, что я могу поместить только один hive-site.xml файл в spark conf, то есть когда я выполняю

someDataFrame.write.saveAsTable("dbName.tableName")

, он будет сохранен в улье 1, а не в улье 2, потому что искра распознает только один улей (улья 1)

У меня вопрос: можно ли читать и писать в разные ульи в разных кластерах?используя искру?

1 Ответ

0 голосов
/ 20 декабря 2018

Поскольку во время этой операции будет активен только один контекст Hive, я скажу, что это невозможно.

Как минимум, вам фактически нужно зарегистрировать таблицу в "локальном" Hive.metastore как внешнюю таблицу с LOCATION hdfs://othernamenode:9000/table/path, затем заставьте Spark записать в нее таким образом, но я не пробовал

В качестве альтернативы, посмотрите проект Circus Train для переноса таблиц Hive

...