是否可以在AWS S3上存储HBase数据以进行在线申请?怎么样?

NGR*_*NGR 3 hbase amazon-s3 amazon-web-services amazon-emr

我是AWS的新手.我计划将HBase用作我的系统的数据库,并将其安装在EC2及其S3上的实际数据文件中,因为它具有较低的存储成本并且与EMR具有良好的集成.我不想将Amazon EMR仅用于HBase,它可以全天候使用并避免额外费用.但是稍后会将其用于某些分析.知道如何配置HBase进行此类设置吗?

Ste*_*ran 9

不,你不能.它不是性能,而是HBase实现原子更新提交的方式:它依赖于重命名为O(1)原子事务,对于create(path,overwrite = false)也是如此.由Hadoop s3a客户端实现的重命名很慢而不是事务:它们是目录内容的逐个副本.对于create-no-overwrite,它是一个检查后跟一个写; 容易发生竞争.哦,然后最终的一致性,特别是在列表中.

除特殊情况外,S3本身还有一些东西提供管理这些操作所需的锁定和租赁,您不得尝试将S3用作HBase的后备存储.Azure具有以下功能; EMR可能,它仍然是Hadoop的S3A的进展中的工作,即使在那里,目标不是HBase在S3之上,它更快地提交Hive和spark工作.

我把它写成当前正在维护Hadoop的S3a客户端的人:我从代码库的知识以及HBase的工作方式开始讲述.

更新:2018年11月 Amazon EMR支持使用S3作为目标