在 sqoop 中使用 java api 导入 avro 数据

Posted

技术标签:

【中文标题】在 sqoop 中使用 java api 导入 avro 数据【英文标题】:importing avro data using java api in sqoop 【发布时间】:2019-08-05 05:51:55 【问题描述】:

问题是如何运行java程序进行sqoop导入?

我正在使用 sqoop 1.4.7 版和 hadoop 2.7.2 版,我 我正在尝试在 net beans ide 8.1 上运行 这是代码:

 package sqoop5;
 import java.io.File;
 import java.io.FileInputStream;
 import java.util.Properties;
 import com.cloudera.sqoop.SqoopOptions;
 import com.cloudera.sqoop.tool.BaseSqoopTool;
 import com.cloudera.sqoop.tool.ImportTool;
 import java.io.BufferedReader;
 import java.io.InputStreamReader;

 public class Sqoop5 

    public static void main(String[] args) throws Exception  
      String driver = "org.postgresql.Driver";
      Class.forName(driver).newInstance();
      SqoopOptions options = new SqoopOptions();
      options.setConnectString(("jdbc:postgresql://
      127.0.0.1:5432/postgres"));
      options.setTableName(("new"));
      options.setUsername(("postgres"));
      options.setPassword(("********"));
      options.setNumMappers(1);
      options.setTargetDir(("hdfs://  
      127.0.0.1:9000/usr/new11"));     
      options.setFileLayout(com.cloudera.sqoop.
      SqoopOptions.FileLayout.AvroD ataFile);
      new ImportTool().run((com.cloudera.sqoop.SqoopOptions) 
      options);
        
 

报错信息如下:

cause:org.apache.hadoop.ipc.RemoteException: Server IPC 
         version 9 
         cannot communicate with client version 4
         Aug 05, 2019 10:46:29 AM org.apache.sqoop.tool.ImportTool run
         SEVERE: Encountered IOException running import job: 
         org.apache.hadoop.ipc.RemoteException: Server IPC version 9 
         cannot 
         communicate with client version 4
         at org.apache.hadoop.ipc.Client.call(Client.java:1113)
         at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:229)
         at com.sun.proxy.$Proxy6.getProtocolVersion(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod) 

【问题讨论】:

【参考方案1】:

如果您阅读this 帖子,您会发现它与您的问题类似。 可能是应用程序之间的版本不匹配。检查您包含的 hadoop 版本与集群中的 hadoop 版本。

【讨论】:

以上是关于在 sqoop 中使用 java api 导入 avro 数据的主要内容,如果未能解决你的问题,请参考以下文章

使用sqoop将MySQL数据库中的数据导入Hbase

Sqoop 导入错误 Error: java.io.IOException: SQLException in nextKeyValue

由于java.io.IOException:nextKeyValue中的SQLException,Sqoop导入失败

使用Sqoop,最终导入到hive中的数据和原数据库中数据不一致解决办法

sqoop把hive中的数据导入mysql

Sqoop 将hdfs上的文件导入到oracle中,关于date类型的问题