本文介绍E-MapReduce集群中数据存储相关的信息,包括磁盘角色、云盘与本地盘,以及OSS。

背景信息

关于存储的类型、性能和相关的限制信息,请参见什么是块存储

存储价格估算如下:
  • 本地盘实例存储为0.04 元/GB/月
  • OSS标准型存储为0.12 元/GB/月
  • OSS归档型存储为0.033 元/GB/月
  • OSS深度归档型存储为0.015 元/GB/月
  • 高效云盘存储为0.35 元/GB/月
  • SSD云盘存储为1.00 元/GB/月
说明 实际价格请以控制台界面显示为准。

有关不同ESSD云盘性能级别的定价详情,请参见块存储定价

磁盘角色

在E-MapReduce集群中,实例节点上有系统盘和数据盘两种角色的磁盘。每块磁盘的配置、类型和容量都可以不同。
磁盘角色描述
系统盘系统盘用于安装操作系统。

E-MapReduce默认使用ESSD云盘作为集群的系统盘。系统盘默认是一块。

数据盘数据盘用于保存数据。

Master实例默认挂载1块云盘作为数据盘,Core实例默认挂载4块云盘作为数据盘。

云盘与本地盘

E-MapReduce集群支持使用以下两种类型的磁盘来存储数据。

块存储类型描述使用场景
云盘包括SSD云盘、高效云盘和ESSD云盘。

磁盘不直接挂载在本地的计算节点上,而是通过网络访问远端的一个存储节点。每一份数据在后端都有两个实时备份,一共三份数据。当一份数据损坏时(磁盘损坏,不是业务上的破坏),E-MapReduce会自动使用备份数据进行恢复。

当业务数据量处于TB级别以下时,推荐您使用云盘,云盘的IOPS和吞吐相比本地盘都会小些。
说明 在使用云盘时,如果吞吐量明显不足,则可以新建集群以使用本地盘。
本地盘

磁盘直接挂载在计算节点上,性能高于云盘。本地盘不能选择磁盘数量,只能使用默认配置好的数量,数据也没有后端的备份机制,需要上层的软件来保证数据可靠性。

部分缓存或临时测试场景,或者基于3副本存储TB级数据时会使用本地盘,但是该方案会因为磁盘寿命增加额外的运维成本,因此存储数据建议您使用OSS或者开通并授权访问OSS-HDFS服务

您可以参见在EMR Hive或Spark中访问OSS-HDFS,了解Hive或Spark如何操作OSS-HDFS。

在E-MapReduce集群中,当实例节点释放时,所有云盘和本地盘都会清除数据,磁盘无法独立的保存下来并再次使用。Hadoop HDFS会使用所有的数据盘作为数据存储。 Hadoop YARN也会使用所有的数据盘作为计算的临时存储。

OSS

在E-MapReduce集群中,您可以将OSS作为HDFS使用。 E-MapReduce可以方便的读写OSS上的数据,所有使用HDFS的代码经过简单的修改即可以访问OSS的数据。例如:
  • 读取HDFS中的数据。
    sc.textfile("hdfs://bucket/path")
  • 更改存储类型为OSS。
    sc.textfile("oss://bucket/path")
  • 对于MR或Hive作业,HDFS命令可以直接操作OSS数据,示例如下。
    hadoop fs -ls oss://bucket/path
    hadoop fs -cp hdfs://bucket/path  oss://bucket/path

    此过程中,您不需要输入AccessKey和Endpoint,E-MapReduce会使用当前集群所有者的信息自动补全AccessKey和Endpoint。但OSS的IOPS不高,不适合用在IOPS要求高的场景,例如,流式计算Spark Streaming和HBase。