HBase聚合、Get And Put操作、Bulk操作
HBase aggregation, Get And Put operation, Bulk Operation
我想知道如何映射键的值。
我知道它可以通过 Get 然后 Put 操作来完成。有没有其他方法可以有效地做到这一点? 'checkAndPut' 不是很有帮助
可以用类似的东西来完成吗:
(key,value) => value+g()
我读过 HBase 权威指南 这本书,似乎 Map Reduce Job 解释为 HBase 之上的 Put/Get 操作。这是否意味着它不是 'Bulk Operation' (因为它是每个键的操作)?
Spark 与此处有什么关系?
- HBase 有扫描(1) to retrieve multiple rows; and MapReduce jobs can and do use this command (2)。
- 对于 HBase 'bulk' 大部分 [或仅] 是 'bulk load'/'bulk import',其中通过构建 HFile 添加数据并将它们 'injecting' 添加到 HBase 集群(相反到 PUT-s) (3).
- 您的任务可以作为 MapReduce 作业以及 Spark 应用程序来实现 (4 being one of examples, maybe not the best one), or a Pig script, or a Hive query if you use HBase table from Hive (5);选择你的毒药。
如果您使用计数器设置 Table,那么您可以使用 Increment 在原子操作中将一定数量添加到现有值。
从 MapReduce 作业中,您将以微批次的方式汇总您的输入(无论您有增量计数),按 key/value 对它们进行分组,对它们求和,然后从您的 Put 发出一个 Put作业(每个键 1 个 Put)。
我上面提到的不是 'bulk' 操作,但如果您在每个批次中修改的行数与 table.
如果您希望在每批中修改整个 table,那么您应该查看 Bulk Loads。这将要求您编写一个作业来读取 HBase 中的现有值和来自增量源的新值,将它们相加,然后将它们写回 HBase(以 'bulk load' 方式,而不是直接)
Bulk Load 直接将 HFiles 写入 HDFS,而不通过 HBase 'write pipeline'(Memstore、minor compactions、major compactions 等),然后发出命令将现有文件与新文件交换。交换是快速的!请注意,您还可以在 HBase 集群外部生成新的 HFile(不要使其过载),然后将它们复制过来并发出交换命令。
我想知道如何映射键的值。 我知道它可以通过 Get 然后 Put 操作来完成。有没有其他方法可以有效地做到这一点? 'checkAndPut' 不是很有帮助 可以用类似的东西来完成吗:
(key,value) => value+g()
我读过 HBase 权威指南 这本书,似乎 Map Reduce Job 解释为 HBase 之上的 Put/Get 操作。这是否意味着它不是 'Bulk Operation' (因为它是每个键的操作)?
Spark 与此处有什么关系?
- HBase 有扫描(1) to retrieve multiple rows; and MapReduce jobs can and do use this command (2)。
- 对于 HBase 'bulk' 大部分 [或仅] 是 'bulk load'/'bulk import',其中通过构建 HFile 添加数据并将它们 'injecting' 添加到 HBase 集群(相反到 PUT-s) (3).
- 您的任务可以作为 MapReduce 作业以及 Spark 应用程序来实现 (4 being one of examples, maybe not the best one), or a Pig script, or a Hive query if you use HBase table from Hive (5);选择你的毒药。
如果您使用计数器设置 Table,那么您可以使用 Increment 在原子操作中将一定数量添加到现有值。
从 MapReduce 作业中,您将以微批次的方式汇总您的输入(无论您有增量计数),按 key/value 对它们进行分组,对它们求和,然后从您的 Put 发出一个 Put作业(每个键 1 个 Put)。
我上面提到的不是 'bulk' 操作,但如果您在每个批次中修改的行数与 table.
如果您希望在每批中修改整个 table,那么您应该查看 Bulk Loads。这将要求您编写一个作业来读取 HBase 中的现有值和来自增量源的新值,将它们相加,然后将它们写回 HBase(以 'bulk load' 方式,而不是直接)
Bulk Load 直接将 HFiles 写入 HDFS,而不通过 HBase 'write pipeline'(Memstore、minor compactions、major compactions 等),然后发出命令将现有文件与新文件交换。交换是快速的!请注意,您还可以在 HBase 集群外部生成新的 HFile(不要使其过载),然后将它们复制过来并发出交换命令。