2015-07-19 4 views
0

Можем ли мы импортировать таблицы из Hive DataSource в Hive DataSource, используя Sqoop.Sqoop Импорт из улья в улей

запрос как -

sqoop import --connect jdbc:hive2://localhost:10000/default --driver org.apache.hive.jdbc.HiveDriver --username root --password root --table student1 -m 1 --target-dir hdfs://localhost:9000/user/dummy/hive2result 

Прямо сейчас ее метание ниже исключение

15/07/19 19:50:18 ERROR manager.SqlManager: Error reading from database: java.sql.SQLException: Method not supported 
java.sql.SQLException: Method not supported 
    at org.apache.hive.jdbc.HiveResultSetMetaData.isSigned(HiveResultSetMetaData.java:141) 
    at org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:290) 
    at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:240) 
    at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:226) 
    at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:295) 
    at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1773) 
    at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1578) 
    at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:96) 
    at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478) 
    at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:601) 
    at org.apache.sqoop.Sqoop.run(Sqoop.java:143) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179) 
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218) 
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227) 
    at org.apache.sqoop.Sqoop.main(Sqoop.java:236) 

ответ

0

Sqoop не является инструментом для передачи данных из одного улья экземпляра к другому улья экземпляра. Похоже, ваше требование заключается в передаче данных в куст из одного кластера в другой кластер. Это может быть достигнуто с помощью hadoop distcp. Полная форма sqoop сама по себе - это SQl to hadOOP и наоборот.

Если вы хотите перенести несколько баз данных и таблиц из одного куста в другой экземпляр куста, наилучшим подходом является передача данных с помощью distop с помощью hadoop distcp и запуск DDL во втором экземпляре куста. Если у вас нет доступных DDL, вам не нужно беспокоиться. Просто возьмите дамп базы данных метастор. Открыть файл дампа с помощью блокнота или текстовой панели Заменить hdfs uri новым hdfs uri. Импортируйте дамп mysql в метастор второго экземпляра куста. Обновить таблицы. Пример приведен в нижнем сообщении в блоге https://amalgjose.wordpress.com/2013/10/11/migrating-hive-from-one-hadoop-cluster-to-another-cluster-2/

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