Java 插入HBase读取卡夫卡消息
我对卡夫卡+Hbase很陌生。谢谢你的帮助 我们得到了一个Kafka消息流,希望将数据插入到从Kafka读取的Hbase中 我已经编写了一个java使用者(单主题、单分区和一个线程)来读取主题中的消息。一切都很好。在线程中,我正在尝试连接Hbase以将消息插入不起作用的表中。当它试图连接到hbase(创建HTable实例)时,读取流的kafka线程就被杀死了。如何克服这一问题,将数据插入Hbase?非常感谢您在这个问题上的想法和帮助 卡夫卡高级消费代码Java 插入HBase读取卡夫卡消息,java,kafka-consumer-api,apache-kafka,Java,Kafka Consumer Api,Apache Kafka,我对卡夫卡+Hbase很陌生。谢谢你的帮助 我们得到了一个Kafka消息流,希望将数据插入到从Kafka读取的Hbase中 我已经编写了一个java使用者(单主题、单分区和一个线程)来读取主题中的消息。一切都很好。在线程中,我正在尝试连接Hbase以将消息插入不起作用的表中。当它试图连接到hbase(创建HTable实例)时,读取流的kafka线程就被杀死了。如何克服这一问题,将数据插入Hbase?非常感谢您在这个问题上的想法和帮助 卡夫卡高级消费代码 public void run(){ Co
public void run(){
ConsumerIterator it=m_stream.iterator();
while(it.hasNext())
//阅读信息
System.out.println(“Thread”+m_threadNumber+”:“+新字符串(it.next().message());
//加载到HBase中
//实例化配置类
Configuration config=HBaseConfiguration.create();
config.clear();
//config.set(“hbase.zookeeper.quorum”、“localhost”);
//config.set(“hbase.zookeeper.property.clientPort”、“2181”);
config.set(“hbase.zookeeper.quorum”、“localhost”);
config.set(“hbase.zookeeper.property.clientPort”、“2181”);
config.set(“hbase.master”、“localhost”);
//实例化HTable类
HTable HTable=新的HTable(配置,“设备”);
//实例化Put类
//接受行名称。
Put p=新的Put(字节数。toBytes(“id14”);
//使用add()方法添加值
//接受列族名称、限定符/行名称、值
p、 添加(Bytes.toBytes(“d_name”)、Bytes.toBytes(“primary”)、Bytes.toBytes(“ios”);
//将put实例保存到HTable。
hTable.put(p);
//关闭HTable
hTable.close();
}为什么要在代码中的config对象中设置属性?应用程序类路径中应该有hbase-site.xml属性文件。我想这就是问题所在。谢谢。我通过创建一个单独的线程来管理hbase连接,并将该类作为一个单例进行管理,从而解决了这个问题。@Suri,请将您所做的作为答案发布。为什么要在代码中的config object中设置属性?应用程序类路径中应该有hbase-site.xml属性文件。我想这就是问题所在。谢谢。我通过创建一个单独的线程来管理hbase连接,并将该类作为一个单例进行管理,从而解决了这个问题。@Suri,请将您所做的作为答案发布。
public void run() {
ConsumerIterator<byte[], byte[]> it = m_stream.iterator();
while (it.hasNext())
// Read Message
System.out.println("Thread " + m_threadNumber + ": " + new String(it.next().message()));
//Load into HBase
// Instantiating Configuration class
Configuration config = HBaseConfiguration.create();
config.clear();
//config.set("hbase.zookeeper.quorum", "localhost");
//config.set("hbase.zookeeper.property.clientPort","2181");
config.set("hbase.zookeeper.quorum", "localhost");
config.set("hbase.zookeeper.property.clientPort","2181");
config.set("hbase.master", "localhost");
// Instantiating HTable class
HTable hTable = new HTable(config, "device");
// Instantiating Put class
// accepts a row name.
Put p = new Put(Bytes.toBytes("id14"));
// adding values using add() method
// accepts column family name, qualifier/row name ,value
p.add(Bytes.toBytes("d_name"), Bytes.toBytes("primary"),Bytes.toBytes("ios"));
// Saving the put Instance to the HTable.
hTable.put(p);
// closing HTable
hTable.close();