我需要通过JDBC从Java程序连接到Hive.我搜索了谷歌,发现了许多这样的指南和示例: HiveServer2客户端
但是,我无法在任何地方找到JDBC驱动程序本身(jar文件).似乎有一个jar文件可以从Cloudera下载,但它需要注册.
有谁知道从哪里获得普通的Apache Hive JDBC驱动程序本身?
我编写了一个小型 Java 程序,该程序应该监视新文件的目录,并以 binay Avro 格式将它们发送到 Kafka 主题。我是 Avro 的新手,我是使用 Avro 文档和在线示例编写的。监控部分运行良好,但程序在运行时遇到 Avro 序列化失败。我得到这个错误堆栈:
Exception in thread "main" java.lang.ClassCastException: [B cannot be cast to java.nio.ByteBuffer
at org.apache.avro.generic.GenericDatumWriter.writeBytes(GenericDatumWriter.java:260)
at org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:116)
at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:73)
at org.apache.avro.generic.GenericDatumWriter.writeField(GenericDatumWriter.java:153)
at org.apache.avro.generic.GenericDatumWriter.writeRecord(GenericDatumWriter.java:143)
at org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:105)
at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:73)
at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:60)
at producers.AvroBinaryProducer.buildAvroData(AvroBinaryProducer.java:90)
at producers.AvroBinaryProducer.start(AvroBinaryProducer.java:120)
at producers.AvroBinaryProducer.main(AvroBinaryProducer.java:140)
C:\Users\guys\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 7 seconds)
Run Code Online (Sandbox Code Playgroud)
这一行失败了: writer.write(datum,encoder);
似乎它在期待一个 ByteBuffer,而文档和示例说我应该通过 GenericRecord。我究竟做错了什么 ?
这是我的代码(还有另一个名为 Config 的实用程序类从文件中读取配置参数,但我没有在此处包含它):
package producers;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.file.FileSystems;
import java.nio.file.Files; …Run Code Online (Sandbox Code Playgroud)