在 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 导入错误 Error: java.io.IOException: SQLException in nextKeyValue
由于java.io.IOException:nextKeyValue中的SQLException,Sqoop导入失败