【问题标题】:spark python script not writing to hbase火花python脚本不写入hbase
【发布时间】:2016-01-30 03:36:53
【问题描述】:

我正在尝试从 blog 运行脚本

import sys  
import json  
from pyspark import SparkContext  
from pyspark.streaming import StreamingContext  
def SaveRecord(rdd):  
    host = 'sparkmaster.example.com'  
    table = 'cats'  
    keyConv = "org.apache.spark.examples.pythonconverters.StringToImmutableBytesWritableConverter"  
    valueConv = "org.apache.spark.examples.pythonconverters.StringListToPutConverter"  
    conf = {"hbase.zookeeper.quorum": host,  
        "hbase.mapred.outputtable": table,  
        "mapreduce.outputformat.class": "org.apache.hadoop.hbase.mapreduce.TableOutputFormat",  
        "mapreduce.job.output.key.class": "org.apache.hadoop.hbase.io.ImmutableBytesWritable",  
        "mapreduce.job.output.value.class": "org.apache.hadoop.io.Writable"}  
    datamap = rdd.map(lambda x: (str(json.loads(x)["id"]),[str(json.loads(x)["id"]),"cfamily","cats_json",x]))  
    datamap.saveAsNewAPIHadoopDataset(conf=conf,keyConverter=keyConv,valueConverter=valueConv)  

if __name__ == "__main__":  
    if len(sys.argv) != 3:  
      print("Usage: StreamCatsToHBase.py <hostname> <port>")  
      exit(-1)  

    sc = SparkContext(appName="StreamCatsToHBase")  
    ssc = StreamingContext(sc, 1)  
    lines = ssc.socketTextStream(sys.argv[1], int(sys.argv[2]))  
    lines.foreachRDD(SaveRecord)  

    ssc.start()       # Start the computation  
    ssc.awaitTermination() # Wait for the computation to terminate

我无法运行它。我尝试了三种不同的命令行选项,但都没有产生输出,也没有将数据写入 hbase 表

这是我尝试过的命令行选项

spark-submit --jars /usr/local/spark/lib/spark-examples-1.5.2-hadoop2.4.0.jar --jars /usr/local/hbase/lib/hbase-examples-1.1.2.jar sp_json.py localhost 2389 &gt; sp_json.log

spark-submit --driver-class-path /usr/local/spark/lib/spark-examples-1.5.2-hadoop2.4.0.jar sp_json.py localhost 2389 &gt; sp_json.log

spark-submit --driver-class-path /usr/local/spark/lib/spark-examples-1.5.2-hadoop2.4.0.jar --jars /usr/local/hbase/lib/hbase-examples-1.1.2.jar sp_json.py localhost 2389 &gt; sp_json.log

这里是logfile。它太冗长了。这也是 Apache spark 调试困难的原因之一,因为它会吐出太多信息。

【问题讨论】:

    标签: python apache-spark hbase


    【解决方案1】:

    终于可以使用下面的命令语法spark-submit --jars /usr/local/spark/lib/spark-examples-1.5.2-hadoop2.4.0.jar,/usr/local/hbase/lib/hbase-examples-1.1.2.jar sp_json.py localhost 2399 > sp_json.log

    【讨论】:

      猜你喜欢
      • 2016-07-31
      • 1970-01-01
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      • 2020-10-21
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多