HBase 写:batch 和 put(List<Put>) 哪个性能更好?
HBase write: which one better on performance, batch or put(List<Put>)?
开始学习HBase写数据流了。我使用 HTableInterface 并且在性能上有问题。只插入 500 行就花了很多时间,我插入的每批 List 将近 500,000 毫秒。
有任何使用 HTableInterface 批量写入 HTable 的示例或建议吗?
我正在使用 HBase 0.94
谢谢
它们本质上是相同的:batch(List<? extends Row> actions, Object[] results)
不仅允许放置,还允许获取、删除、递增... put(List<Put> puts)
只需执行一批放置(它还在客户端验证它们).
您还可以通过禁用 table.setAutoFlush(false)
、向 table 发出标准 put 并随后使用 table.flushCommits()
刷新缓冲区来执行批处理。
我不知道你的行的大小,但除非它们很大,否则你的配置似乎有某种问题(可能是网络延迟?),即使逐行执行 500 次放置也应该执行一次快很多。
开始学习HBase写数据流了。我使用 HTableInterface 并且在性能上有问题。只插入 500 行就花了很多时间,我插入的每批 List 将近 500,000 毫秒。
有任何使用 HTableInterface 批量写入 HTable 的示例或建议吗? 我正在使用 HBase 0.94
谢谢
它们本质上是相同的:batch(List<? extends Row> actions, Object[] results)
不仅允许放置,还允许获取、删除、递增... put(List<Put> puts)
只需执行一批放置(它还在客户端验证它们).
您还可以通过禁用 table.setAutoFlush(false)
、向 table 发出标准 put 并随后使用 table.flushCommits()
刷新缓冲区来执行批处理。
我不知道你的行的大小,但除非它们很大,否则你的配置似乎有某种问题(可能是网络延迟?),即使逐行执行 500 次放置也应该执行一次快很多。