我阅读了有关 AWS 的文档,但有一点仍然不清楚。
S3 是 EMR 集群的主存储吗?还是数据在 EC2 中,而 S3 只是一个副本?
在文档中:
-
"Amazon EMR 上的 HBase 能够将您的 HBase 数据直接备份到 Amazon Simple Storage Service (Amazon S3)"
-
"在 Amazon EMR 上运行的 Hadoop 集群使用 EC2 实例作为主节点和从节点的虚拟 Linux 服务器,使用 Amazon S3 作为批量存储输入......"
-
"提供启动新群集并使用以前的 HBase 备份中的数据填充该群集的功能"
我的用例:使用HBASE存储TB数据。通过启动 emr 集群,每月只更新我的表三到两次。表存储在 S3 上。
从 EMR 5.2.0 开始,您可以直接在 AWS S3 上运行 HBase 1.3.0 及更高版本。
该设置将替换hbase-site.xml
文件中的hfds://
协议:
"hbase.rootdir": "s3://my-bucket/hbase"
无需更改 HBase 客户端。该配置通过消除管理 HDFS NameNode 和数据节点的需要来简化操作。
用例中的关键问题是数据在更新之间应该如何可用。
如果您的目标是始终通过 Hbase 接口访问数据,那么 Hbase 集群(如在 EMR 上)需要持续启动并运行。HBearb目前仅支持HDFS作为Hfiles的实时存储。S3 存储在集群外部,因此可用作备份或其他数据入口/出口的目标。