插入HBase阅读Kafka Message

时间:2015-07-02 18:41:52

标签: java kafka-consumer-api apache-kafka

我对Kafka + Hbase很新。感谢您的帮助。

我们收到了Kafka消息流,并希望将数据插入到Kafka的Hbase读取中。

我已经编写了一个java使用者(Single Topic,Single Partition和One thread)来读取该主题中的消息。一切都很好。在线程中我试图连接Hbase将消息插入到无法正常工作的表中。在它尝试连接到hbase(创建HTable实例)的那一刻,读取流的kafka线程正在被杀死。如何克服这个问题将数据插入Hbase?非常感谢您对此问题的想法和帮助。

Kafka高级消费者代码

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();             

}

0 个答案:

没有答案