Sqoop使用Java从Mysql导入到Hadoop hdfs

时间:2016-11-16 12:49:11

标签: hadoop sqoop

我正在尝试使用Java从Mysql加载到HDFS。我的Hadoop版本2.7.2和Sqoop 1.4.6。我收到以下异常

  

错误security.UserGroupInformation:PriviledgedActionException   as:xxxx原因:org.apache.hadoop.ipc.RemoteException:服务器IPC   版本9无法与客户端版本4 16/11/16 17:40:57进行通信   错误工具.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

帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

您正在使用Hadoop版本2.7.2。

但依赖它有hadoop-core-1.2.1.jar,这是针对hadoop 1.x

用hadoop-common.jar替换hadoop-core-1.2.1.jar - > https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common/2.7.2

希望这会有所帮助