Scala - 推文订阅 - Kafka主题和摄取到HBase

时间:2016-07-22 11:35:44

标签: scala hbase apache-kafka

我必须使用Kafka主题的推文并将其摄取到HBase中。以下是我写的代码,但这不能正常工作。

主要代码没有调用"转换"方法,因此没有记录被摄入HBase表。有人可以帮帮我吗。

tweetskafkaStream.foreachRDD(rdd => {
  println("Inside For Each RDD" )
  rdd.foreachPartition( record => {
    println("Inside For Each Partition" )
    val data = record.map(r => (r._1, r._2)).map(convert)
    })
  })

def convert(t: (String, String)) = {
    println("in convert")
    //println("first param value ", t._1)
    //println("second param value ", t._2)

  val hConf = HBaseConfiguration.create()
  hConf.set(TableOutputFormat.OUTPUT_TABLE,hbaseTableName)
  hConf.set("hbase.zookeeper.quorum", "192.168.XXX.XXX:2181")
  hConf.set("hbase.master", "192.168.XXX.XXX:16000")
  hConf.set("hbase.rootdir","hdfs://192.168.XXX.XXX:9000/hbase")
  val today = Calendar.getInstance.getTime
  val printformat =  new SimpleDateFormat("yyyyMMddHHmmss")

  val id =  printformat.format(today)
  val p = new Put(Bytes.toBytes(id))

  p.add(Bytes.toBytes("data"), Bytes.toBytes("tweet_text"),(t._2).getBytes())
  (id, p)

  val mytable = new HTable(hConf,hbaseTableName)
  mytable.put(p)
}

我不想使用当前日期时间作为键(t._1),因此在我的转换方法中构建它。

由于

巴拉

1 个答案:

答案 0 :(得分:0)

而不是foreachPartition,我把它改为foreach。这很有效。