2016-01-28 3 views
0

Я пытаюсь импортировать таблицу 70 + GB в Hive на песочнице HDP 2.3.2, я установил соединение между SQL Server и песочницей, но, при попытке импортировать таблицу, используя следующую команду:Ошибка при импорте таблицы через Sqoop в HDP 2.3.2 sandbox

sudo -u hdfs sqoop import --connect "jdbc:sqlserver://XX.XX.XX.XX;database=XX;username=XX;password=XX" --table XX --split-by ID --target-dir "/user/hdfs/Kunal/2" --hive-import -- --schema dbo 

Но его дает мне следующую ошибку

Error: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.UnsupportedOperationException: Java Runtime Environment (JRE) version 1.7 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0. 
    at org.apache.sqoop.mapreduce.db.DBInputFormat.setConf(DBInputFormat.java:167) 
    at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:76) 
    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:136) 
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:749) 
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) 
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) 
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) 
Caused by: java.lang.RuntimeException: java.lang.UnsupportedOperationException: Java Runtime Environment (JRE) version 1.7 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0. 
    at org.apache.sqoop.mapreduce.db.DBInputFormat.getConnection(DBInputFormat.java:220) 
    at org.apache.sqoop.mapreduce.db.DBInputFormat.setConf(DBInputFormat.java:165) 
    ... 9 more 
+0

В заголовке вопроса упоминается проблема, связанная с первичными ключами, однако ошибка связана с проблемой Java-версии и совместимости с jdbc. Что мне не хватает? – Legato

+0

В таблице нет первичного ключа, я могу видеть базы данных после того, как я сделаю sqoop list-databases; но пока я выполняю импортный запрос, я получаю исключение во время выполнения с sqljdbc4.jar –

ответ

0

Вариант 1: для использования одного картографа (-m 1), отметьте одно - символ. Но все 70 ГБ будут прочитаны в потоке sigle, вы можете столкнуться с проблемой в завершении, может также быть записано в один файл hdfs.

Вариант 2: Использовать --split-by с разреженным распределением, --split-by Колонка таблицы, используемая для разделения рабочих единиц. Ex. Employee_id в таблице emp будет уникальной и разреженной.

Refer: http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html Последняя инструкция пользователя sqoop.

+0

Ну, я прочитал документ и отредактировал вопрос. все еще столкнувшись с проблемой, упомянул запрос и ошибку в конце вопроса –

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