2017-02-01 20 views
0

Я должен дублировать таблицы Hive в другой кластер, сохраняя схему и иерархию моих таблиц, поэтому мой вопрос: что является самым безопасным и правильным способом сделать это, чтобы иметь точные таблицы (и базы данных) копии Кластер1 в Cluseter2.Как перенести данные между кластерами?

Я нашел способы, которые глобально сказали:

- hive > export TABLE1; 
- distcp hdfs:source_Path hdfs:dest_Path 
- hive > import TABLE1; #in Cluster 2 
- hive> MSCK REPAIR TABLE TABLE1; 

Но, как я должен копировать многочисленное количество баз данных и таблиц, есть ли быстрый и безопасный способ, как дублировать состояние или снимок Datawarehouse1 в Datawarehouse1 ... и т. Д.?

Заранее спасибо.

+0

Скопируйте свои метаданные в новый кластер. мы используем базу данных mysql как метастабильность улья. Мы скопировали метаданные в новый кластер и использовали distcp для копирования всей папки хранилища (данных) на HDFS (i.e)/apps/hive/storage – yoga

ответ

1

Миграция схемы (Предполагается, что улей metastore хранится в MySQL)

Возьмите дамп базы данных metastore

mysqldump -u **** -p***** metastoredb > metastore.sql 

Заменить CLUSTER1 FS URI с Cluster2 в FS URI

sed -i 's_hdfs://namenode1:port1_hdfs://namenode2:port2_g' metastore.sql 

Переместите дамп в целевой кластер и восстановите его.

mysql> create database metastoredb; 
mysql> use metastoredb; 
mysql> source metastore.sql; 

Если целевой улей имеет разную версию, запустите соответствующие сценарии обновления.

Смещение склада и внешних столов должно быть выполнено с distcp, сохраняя структуру каталогов.

hadoop distcp hdfs://namenode1:port1/hive/data hdfs://namenode2:port2/hive/data 

улей export и import не имеет возможностей для баз данных.

 Смежные вопросы

  • Нет связанных вопросов^_^