我想從使用Java的Mysql加載到HDFS中。我的Hadoop版本2.7.2和Sqoop 1.4.6。我收到以下異常Sqoop從Mysql導入到Hadoop hdfs使用Java
錯誤security.UserGroupInformation:PriviledgedActionException 爲:XXXX引起:org.apache.hadoop.ipc.RemoteException:服務器IPC 9版本無法與客戶端版本通信4 16/11/16十七點40分57秒 錯誤tool.ImportTool:遇到IOException異常運行導入作業: org.apache.hadoop.ipc.RemoteException:服務器IPC版本9不能 與客戶端版本通信4
下面是代碼
public void importData() {
SqoopOptions options = new SqoopOptions();
options.setConnectString("jdbc:mysql://localhost:3306/Sample");
options.setUsername("UserName");
options.setPassword("Password");
options.setNumMappers(1);
options.setSqlQuery("SELECT * FROM categories WHERE $CONDITIONS limit 10");
options.setHadoopMapRedHome(HADOOP_HOME);
options.setTargetDir(WAREHOUSE_DIR);
int ret = new ImportTool().run(options);
}
我已經添加了以下相關
apache-logging-log4j.jar
commons.io_2.0.1.jar
commons-cli-1.2.jar
commons-configuration-1.7.jar
commons-httpclient-3.0.1.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
hadoop-core-1.2.1.jar
jackson-core-asl-1.8.8.jar
jackson-mapper-asl-1.8.8.jar
mysql-connector-java-5.1.34.jar
sqoop-1.4.6.jar
幫我解決這問題。
我刪除了hadoop核心jar並添加了hadoop-common.jar 2.7.2它詢問了其他一些依賴關係,我補充說現在得到以下異常:java.lang.ClassNotFoundException:org.apache.hadoop.util.PlatformName。 –
添加此https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-auth/2.7.2 –
當sqoop提供替代方法將表導出到hdfs時,這樣做的必要性是什麼。一種方法是使用sql將數據寫入文件,然後將文件複製到hdfs.Field分隔符和行分隔符也可以被指定。示例