В настоящее время я работаю над проектом, который компилируется с использованием JDK1.7, создает и запускает задания Hadoop с использованием Cascading 1.2 (скоро будет обновлен до 2.1) и использует дистрибутив Cloudera для Hadoop (0.20.2-cdh3u3).
Я смотрю, как изменить мои задания Cascading / Hadoop для чтения и записи всех данных в / из базы данных MySQL. Похоже, что SQOOP сможет с этим справиться.
Однако из того, что я видел до сих пор, мало информации или документации о том, как это сделать на Java (я понимаю, что SQOOP в основном предполагается использовать для пакетных заданий, вызываемых из оболочки) - примеры Java, за которыми я следил, убежище ' у меня сработало. Я попытался использовать SQOOP 1.4 и переключить свой проект на использование JDK1.6, поскольку я считаю, что это необходимо (хотя это нарушит другие части моего проекта), но я все еще не мог заставить его работать.
Кто-нибудь знает, возможно ли то, чего я пытаюсь достичь? Как другие люди справляются с этой проблемой? Поможет ли вообще выпуск SQOOP2?
Когда я пытаюсь запустить org.apache.sqoop.tool.ExportTool для экспорта CSV в таблицу, возникают следующие ошибки:
Не удается инициализировать процессор javac из-за (скорее всего) проблемы с загрузчиком классов: java.lang.NoClassDefFoundError: com / sun / tools / javac / processing / JavacProcessingEnvironment
Примечание. \ Tmp \ sqoop-my.name \ compile \ 9031edc8e43167c10f9f895b64aa79d5 \ MyTableName.java использует или переопределяет устаревший API.
Обнаружено исключение IOException при выполнении задания экспорта: java.io.IOException: не удалось загрузить файл jar \ tmp \ sqoop-my.name \ compile \ 9031edc8e43167c10f9f895b64aa79d5 \ MyTableName.jar в JVM. (Не удалось найти класс MyTableName.)