【问题标题】:Is it possible to store HBase data on AWS S3 for online application? How?是否可以在 AWS S3 上存储 HBase 数据以供在线申请?如何?
【发布时间】:2017-01-14 19:58:18
【问题描述】:

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

【问题讨论】:

    标签: amazon-web-services amazon-s3 hbase amazon-emr


    【解决方案1】:

    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>
    

    【讨论】:

    • 我明白了。感谢您快速回复拉克什。但是,如果使用 S3 速度太慢,那么我必须考虑一些替代的更好的解决方案。
    【解决方案2】:

    不,你不能。这不是性能,而是 HBase 如何实现更新的原子提交:它依赖于重命名为 O(1) 原子事务,create(path, overwrite=false) 也是如此。 Hadoop s3a 客户端实现的重命名很慢,而且不是事务:它们是目录内容的一份一份副本。至于create-no-overwrite,是先检查后写;容易出现竞争状况。哦,然后是最终的一致性,尤其是在列表中。

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

    我是作为目前维护 Hadoop 的 S3a 客户端的人来写这篇文章的:我是根据对代码库的了解以及 HBase 工作所需的知识。

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

    【讨论】:

      【解决方案3】:

      你有一些信息here

      现在可以使用 S3 作为 HBase 的存储。

      当您在 Amazon EMR 版本 5.2.0 或更高版本上运行 HBase 时,您可以 启用 Amazon S3 存储模式,该模式具有以下优势:

      HBase 根目录存储在 Amazon S3 中,包括存储文件 (HFiles) 和表元数据。此数据在 集群,跨 Amazon EC2 可用区可用,而您不 需要使用快照或其他方法进行恢复。与存储文件 Amazon S3,您可以为您的计算调整 Amazon EMR 集群的大小 需求而不是数据需求,在 HDFS。

      这也由 Finra 完成,描述为 here

      【讨论】:

        猜你喜欢
        • 2021-12-16
        • 2018-09-13
        • 2018-11-23
        • 1970-01-01
        • 1970-01-01
        • 2015-07-27
        • 1970-01-01
        • 1970-01-01
        • 2020-01-12
        相关资源
        最近更新 更多