Kafka编程一


点击(此处)折叠或打开



  1. import java.io.IOException;
  2. import java.text.MessageFormat;
  3. import java.util.*;

  4. import kafka.javaapi.producer.Producer;
  5. import kafka.producer.KeyedMessage;
  6. import scala.util.control.Exception.Catch;

  7. import org.apache.hadoop.conf.Configuration;
  8. import org.apache.hadoop.hbase.HBaseConfiguration;
  9. import org.apache.hadoop.hbase.client.HTable;
  10. import org.apache.hadoop.hbase.client.Result;
  11. import org.apache.hadoop.hbase.client.ResultScanner;
  12. import org.apache.hadoop.hbase.client.Scan;
  13. import org.apache.hadoop.hbase.util.Bytes;
  14. import org.apache.kafka.clients.producer.*;

  15. public class kafkaProducer {

  16.     public static void main(String[] args) throws IOException {

  17.         Properties props = new Properties();
  18.         props.put("zk.connect",
  19.                 "datanode01.isesol.com,datanode02.isesol.com,datanode03.isesol.com,datanode04.isesol.com:2181");
  20.         props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
  21.         props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
  22.         props.put("bootstrap.servers",
  23.                 "namenode01.isesol.com:9092,namenode02.isesol.com:9092,datanode03.isesol.com:9092");
  24.         KafkaProducer<String, String> producer = new KafkaProducer<String, String>(props);
  25.         Result result = null;
  26.         StringBuilder builder = new StringBuilder();
  27.         while (getResult().iterator().hasNext()){
  28.             result = getResult().next();
  29.             for (int i = 0; i <= result.listCells().size() - 1; i++) {
  30.                 builder.append(new String(result.getValue("cf".getBytes(), result.listCells().get(i).getQualifier())) + "#");
  31.                 System.out.println(new String(result.getValue("cf".getBytes(), result.listCells().get(i).getQualifier())));
  32.             }
  33.             
  34.             System.out.println("the data is " + builder.toString());
  35.             ProducerRecord<String, String> record = new ProducerRecord<String, String>("jlwang",builder.toString());

  36.             try {
  37.                 producer.send(record, new Callback() {

  38.                     @Override
  39.                     public void onCompletion(RecordMetadata metadata, Exception e) {
  40.                         if (e != null) {
  41.                             e.printStackTrace();
  42.                         }
  43.                         System.out.println("offset: {} " + metadata.offset() + " partition: {}" + " " + metadata.partition()
  44.                                 + " " + metadata.topic());
  45.                     }
  46.                 });
  47.             } catch (Exception ex) {
  48.                 ex.printStackTrace();
  49.             } finally {
  50.                 System.out.println("finish to put data into kafka");
  51.                 //producer.close();
  52.             }
  53.             
  54.             

  55.         }
  56.         
  57.         producer.close();
  58.     }

  59.     public static ResultScanner getResult() throws IOException {

  60.         Configuration hbaseconf = HBaseConfiguration.create();
  61.         hbaseconf.set("hbase.zookeeper.quorum",
  62.                 "datanode01.isesol.com,datanode02.isesol.com,datanode03.isesol.com,datanode04.isesol.com,cmserver.isesol.com");
  63.         hbaseconf.set("hbase.zookeeper.property.clientPort", "2181");
  64.         hbaseconf.set("user", "hdfs");
  65.         HTable htable = new HTable(hbaseconf, "t_axes_feeding_secutrity_zero");
  66.         Scan scan = new Scan();
  67.         scan.setCaching(300);
  68.         ResultScanner scaner = htable.getScanner(scan);        
  69.         return scaner;

  70.     }
  71. }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17036462/viewspace-2142045/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/17036462/viewspace-2142045/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值