【问题标题】:PySpark: Can saveAsNewAPIHadoopDataset() be used as bulk loading to HBase?PySpark:saveAsNewAPIHadoopDataset() 可以用作 HBase 的批量加载吗?
【发布时间】:2015-08-24 06:21:54
【问题描述】:

我们目前使用 saveAsNewAPIHadoopDataset() 通过 Spark RDD (pyspark) 将数据导入 HBase 表。

此函数是否通过 mapreduce 使用 HBase 批量加载功能?也就是说,直接导入到HBase的saveAsNewAPIHadoopDataset()会不会等价于使用saveAsNewAPIHadoopFile()将Hfiles写入HDFS,然后调用org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles加载到HBase?

这是我们 HBase 加载例程的示例 sn-p:

conf = {"hbase.zookeeper.quorum": config.get(gethostname(),'HBaseQuorum'),
        "zookeeper.znode.parent":config.get(gethostname(),'ZKznode'),
        "hbase.mapred.outputtable": table_name,
        "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"}

keyConv = "org.apache.spark.examples.pythonconverters.StringToImmutableBytesWritableConverter"
valueConv = "org.apache.spark.examples.pythonconverters.StringListToPutConverter"

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

【问题讨论】:

    标签: python hadoop apache-spark hbase bulkloader


    【解决方案1】:

    不完全是。 RDD.saveAsNewAPIHadoopDatasetRDD.saveAsNewAPIHadoopFile 做几乎相同的事情。他们的 API 只是有点不同。每个都提供了不同的“机制与政策”选择。

    【讨论】:

    • 感谢您的回答!
    • 嘿,你能接受我的回答吗?那太棒了!
    猜你喜欢
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多