火花流向Hbase写入数据,并在saveAsNewAPIHadoopDataset上阻止了python

时间:2015-04-24 17:30:07

标签: apache-spark hbase spark-streaming

我正在使用spark-streaming python读取kafka并写入hbase,我发现saveAsNewAPIHadoopDataset阶段的工作很容易被阻止。如下图: 你会发现这个阶段的持续时间是8小时。火花是通过Hbase api写入数据还是通过HDFS api直接写入数据?enter image description here

1 个答案:

答案 0 :(得分:0)

有点晚了,但这是一个类似的例子  要将RDD保存到hbase:

考虑一个包含单行的RDD:

{"id":3,"name":"Moony","color":"grey","description":"Monochrome kitty"}

转换RDD
我们需要将RDD转换为具有以下内容的(键,值)对:

(rowkey,[row key,column family,column name,value])

datamap = rdd.map(lambda x: (str(json.loads(x)["id"]),[str(json.loads(x)["id"]),"cfamily","cats_json",x]))

保存到HBase
我们可以使用本示例中使用的RDD.saveAsNewAPIHadoopDataset函数:PySpark Hbase example将RDD保存到HBase ?

datamap.saveAsNewAPIHadoopDataset(conf=conf,keyConverter=keyConv,valueConverter=valueConv)

您可以参考我的博客:pyspark-sparkstreaming hbase获取工作示例的完整代码。