我是AWS的新手。我计划将HBase用作我的系统的数据库,并将其安装在EC2及其S3上的实际数据文件中,因为它具有较低的存储成本并且与EMR具有良好的集成。我不想将Amazon EMR仅用于HBase,它可以全天候使用并避免额外费用。但是稍后会将其用于某些分析。知道如何为这种设置配置HBase吗?
答案 0 :(得分:7)
除特殊情况外,S3本身还有一些东西可以提供锁定和锁定功能。管理这些操作所需的租赁,您不得尝试将S3用作HBase的后备存储。 Azure具有以下功能; EMR可能,它仍然是Hadoop的S3A的进展中的工作,即使在那里,目标不是HBase在S3之上,它更快地提交Hive和spark工作。
我把这个写成当前正在维护Hadoop的S3a客户端的人:我从代码库的知识以及HBase的工作方式开始说话。
更新:2018年11月 Amazon EMR确实支持将S3用作目标
答案 1 :(得分:3)
您有一些信息here:
现在可以使用S3作为HBase的存储空间。
在Amazon EMR 5.2.0或更高版本上运行HBase时,您可以 启用Amazon S3存储模式,具有以下优势:
HBase根目录存储在Amazon S3中,包括商店文件 (HFiles)和表元数据。这个数据是持久的 群集,可在Amazon EC2可用区域中使用,但您不能 需要使用快照或其他方法进行恢复。使用商店文件 在Amazon S3中,您可以为计算机调整Amazon EMR集群的大小 要求而不是数据要求,3x复制 HDFS。
这也是Finra所做的,描述了here。
答案 2 :(得分:2)
HBase可以使用Hadoop支持的任何文件系统,包括S3,但如果你不使用EMR,它将会太慢。
要使用S3作为数据源,您需要将Hadoop文件系统配置为s3。
hbase-site.xml可能如下所示:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>s3://ebucketrkr.s3.amazonaws.com:80/</value>
</property>
</configuration>
hadoop-site.xml可能如下所示:
<configuration>
<property>
<name>fs.default.name</name>
<value>s3://hbase</value>
</property>
<property>
<name>fs.s3.awsAccessKeyId</name>
<value>id</value>
</property>
<property>
<name>fs.s3.awsSecretAccessKey</name>
<value>pass</value>
</property>
</configuration>