Javaを使用してMysqlからHDFSにロードしようとしています。私のHadoopバージョン2.7.2とSqoop 1.4.6。 PriviledgedActionException :原因xxxxは:org.apache.hadoop.ipc.RemoteException:私は次の例外SqoopからMysqlをHadoopにインポートするhdfsを使用するJavaを使用する
ERRORのsecurity.UserGroupInformationを取得していますサーバーIPC バージョン9は、クライアントのバージョン4 16/11/16と通信できません夜05時40分57秒 ERRORのtool.ImportTool:インポートジョブを実行するにIOExceptionが発生しました: org.apache.hadoop.ipc.RemoteException:9 は、クライアントのバージョンと通信できないサーバのIPC版は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にエクスポートする別の方法を提供する場合、この方法を実行する必要があります。そのような方法の1つは、sqlを使用してファイルにデータを書き込んだり、そのファイルをhdfs.Fieldデリミタおよびラインデリミタにコピーすることです。例