hadoop - vertica jar

hadoop - vertica jar

我正在尝试将数据从 Vertica 传输到配置单元。根据手册,应将以下设置为输入格式:

-inputformat com.vertica.hadoop.deprecated.VerticaStreamingInput 

但是 hadoop-vertica jar 有 org.apache.hadoop.vertica.VerticaStreamingInput class 而不是上面的。

所以它抛出以下异常:

Exception in thread "main" java.lang.RuntimeException:
  class org.apache.hadoop.vertica.VerticaStreamingInput not
  org.apache.hadoop.mapred.InputFormat

完整的命令是:

$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/contrib/streaming/hadoop-streaming-*.jar \  
-libjars $HADOOP_HOME/lib/hadoop-vertica.jar \   
-Dmapred.vertica.hostnames=VerticaHost \  
-Dmapred.vertica.database=ExampleDB \  
-Dmapred.vertica.username=ExampleUser \  
-Dmapred.vertica.password=password123 \  
-Dmapred.vertica.port=5433 \  
-Dmapred.vertica.input.query="SELECT * FROM allTypes ORDER BY key" \   
-Dmapred.vertica.input.delimiter=, \   
-Dmapred.map.tasks=1 \  
 -inputformat com.vertica.hadoop.deprecated.VerticaStreamingInput \  
 -input /tmp/input -output /tmp/output -reducer /bin/cat -mapper /bin/cat

Hive是CDH-4.4.0-1.cdh4.4.0.p0.39/环境,vertica是7.1.

如果我有错误的 hadoop-vertica jar,我在哪里可以得到正确的?如果这不是问题,我做错了什么?

那么这个com.vertica.hadoop.deprecated.VerticaStreamingInputclass是从哪里来的呢?我通过安装 Vertica 连接器获得它。(第 9 页,第 5 步)https://my.vertica.com/docs/7.0.x/PDF/HP_Vertica_7.0.x_HadoopIntegration.pdf

我刚刚从 the downloads page on my.vertica.com 下载了适用于 MapReduce 的 Hadoop 连接器。我拿的是 2.0 版本(支持 CDH 4),因为那是你说的你正在使用的 Hadoop 版本。

我查看了下载文件 (yarn-vertica_1.6.0.zip) 中的 hadoop-vertica.jar 文件,class 文件位于正确的位置(com.vertica.hadoop.deprecated)。该 zip 文件还包含源代码,因此您可以查看它。

我不知道 org.apache.hadoop.vertica.VerticaStreamingInput 的来源,但下载连接器的新副本应该可以解决您的问题。确保下载 JDBC 驱动程序并执行文档中描述的其他 Java 配置。