2015-12-11 2 views
0

Я установил недавний кластер cloudera CDH5.5 Единственный узел, и я столкнулся с ошибкой ниже при импорте db из mysql в hdfs. умеет запускать список-dtabases успешно. Пожалуйста, дайте мне знать основную причину проблемы ниже.Sqoop iMport Isues

[Cloudera @ Quickstart ~] $ sqoop импорт --connect "JDBC: MySQL: //127.0.0.1/nvegesn" --username корень --password XXXX --table продукты Внимание:/USR/lib/sqoop /../ accumulo не существует! Импорт Accumulo не удастся. Пожалуйста, установите $ ACCUMULO_HOME в корень вашей установки Accumulo. 15/12/10 20:14:00 INFO sqoop.Sqoop: Запуск версии Sqoop: 1.4.6-cdh5.5.0 15/12/10 20:14:00 WARN tool.BaseSqoopTool: установка пароля на командном сервере, линия небезопасный. Подумайте об использовании -P вместо этого. 15/12/10 20:14:01 INFO manager.MySQLManager: подготовка к использованию набора результатов потоковой передачи MySQL. 15/12/10 20:14:01 INFO tool.CodeGenTool: начало генерации кода 15/12/10 20:14:01 INFO manager.SqlManager: Выполнение оператора SQL: SELECT t. * FROM products AS t LIMIT 1 15/12/10 20:14:01 ОШИБКА manager.SqlManager: Ошибка чтения из базы данных: java.sql.SQLException: набор результатов потоковой передачи [email protected] по-прежнему активен. Никакие заявления не могут быть выданы, если любые потоковые результирующие наборы открыты и используются при подключении . Убедитесь, что вы вызывали .close() на любом активном потоковых наборах результатов, прежде чем пытаться выполнить больше запросов. java.sql.SQLException: набор результатов потоковой передачи [email protected] по-прежнему активен. Никакие заявления не могут быть выданы, если любые потоковые результирующие наборы открыты и используются при подключении . Убедитесь, что вы вызывали .close() на любом активном потоковых наборах результатов, прежде чем пытаться выполнить больше запросов. на com.mysql.jdbc.SQLError.createSQLException (SQLError.java:934) при com.mysql.jdbc.SQLError.createSQLException (SQLError.java:931) в com.mysql.jdbc.MysqlIO.checkForOutstandingStreamingData (MysqlIO. Java: 2735) на com.mysql.jdbc.MysqlIO.sendCommand (MysqlIO.java:1899) при com.mysql.jdbc.MysqlIO.sqlQueryDirect (MysqlIO.java:2151) в com.mysql.jdbc.ConnectionImpl. execSQL (ConnectionImpl.java:2619) на com.mysql.jdbc.ConnectionImpl.execSQL (ConnectionImpl.java:2569) на com.mysql.jdbc.StatementImpl.executeQuery (StatementImpl.java:1524) на com.mysql. jdbc.ConnectionImpl.getMaxBytesPerChar (ConnectionImpl.java:3003) at com.mysql.jdbc.Field.getMaxBytesPerCharacter (Field.java:602) вcom.mysql.jdbc.ResultSetMetaData.getPrecision (ResultSetMetaData.java:445) на org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery (SqlManager.java:286) на org.apache.sqoop.manager.SqlManager .getColumnTypesForRawQuery (SqlManager.java:241) на org.apache.sqoop.manager.SqlManager.getColumnTypes (SqlManager.java:227) на org.apache.sqoop.manager.ConnManager.getColumnTypes (ConnManager.java:327) на org.apache.sqoop.orm.ClassWriter.getColumnTypes (ClassWriter.java:1834) на org.apache.sqoop.orm.ClassWriter.generate (ClassWriter.java:1646) в орг. apache.sqoop.tool.CodeGenTool.generateORM (CodeGenTool.java:107) на org.apache.sqoop.tool.ImportTool.importTable (ImportTool.java:478) на org.apache.sqoop.tool.ImportTool.run (ImportTool.java:605) по адресу org.apache.sqoop.Sqoop.run (Sqoop.java:143) в org.apache.hadoop.util.ToolRunner.run (ToolRunner.java:70) в org.apache.sqoop.Sqoop.runSqoop (Sqoop.java: 179) в org.apache.sqoop.Sqoop.runTool (Sqoop.java:218) в org.apache.sqoop.Sqoop.runTool (Sqoop.java:227) в org.apache.sqoop.Sqoop.main (Sqoop.java:236) 15/12/10 20:14:01 ОШИБКА tool.ImportTool: Обнаружен IOException не работает импорт задания: java.io.IOException: нет столбцов для создания для ClassWriter

+0

Существует связанный postoverflow post [http://stackoverflow.com/questions/29162447/sqoop-import-issue-with-mysql](http://stackoverflow.com/questions/29162447/sqoop-import-issue -with-mysql) надеюсь, что это поможет. – Abhiram

+0

Спасибо Abhi hoowever, поскольку я не могу изменить SQL-коннектор Jar, присутствующий в Cloudera Cluster. – Naveen

+0

Его работая отлично после добавлять водителя также в команде как ниже sqoop import --connect «jdbc: mysql: //127.0.0.1/nvegesn» --driver com.mysql.jdbc.Driver --username root --password XXXX - table products – Naveen

ответ

0

Incase, если таблица, которую вы пытаетесь импортировать, не имеет первичного ключа, тогда попробуйте дать «m 1», а затем завершить. Это вызовет только один обработчик.

По умолчанию sqoop выпустит 4 карты. В этом случае он может не знать, по какому диапазону столбцов данные должны разбиваться на 4 картона. Надеюсь, это поможет.

+0

Hi Abhi, все еще сталкиваясь с тем же, и я создал таблицу с основным ключом only.i мог видеть, что это исправлено в патче SQOOP-1400, проблема с sql-коннектором hoever, я не могу ничего редактировать в машине cloudera. – Naveen