在AWS上构建Cloudera CDH集群:实例和存储

时间:2017-03-26 14:38:06

标签: amazon-web-services amazon-ec2 cloudera cloudera-cdh cloudera-director

我对在AWS上部署CDH有些疑问。我阅读了参考架构文档以及我在Cloudera工程博客上发现的其他材料,但我还需要更多建议。

1)CDH部署仅适用于某种实例,还是可以在所有AWS实例类型上部署?

2)假设我想创建一个24x7全天候运行的集群。对于长期运行的集群,我理解最好有一个基于本地存储实例的集群。如果我们考虑一组2PB,我认为d2.8xlarge应该是数据节点的最佳选择。关于主节点: - 如果我只想部署3个主节点,最好是将它们作为本地存储实例,还是作为EBS附加实例,以便能够对可能的主节点故障做出快速反应? - 有关主节点实例类型(EBS或本地存储)的最佳实践吗?关于数据节点: - 如果数据节点出现故障,CDH是否有一些自动启动新实例并将其连接到群集的自动机制,以便在没有停机的情况下恢复群集?我们要从头开始构建脚本来做这件事吗?关于边缘节点: - 是否有关于实例类型(EBS或本地存储)的最佳实践?

3)如果我想在S3上备份集群: - 当我从CDH到S3执行distcp时,我可以直接在Glacier上移动数据而不是正常的S3吗?如果我对数据应用了一些压缩(例如snappy,gzip等)并且我对S3执行了distcp: - S3上占用的空间是否相同,或者distcp命令是否解压缩副本的数据?

如果我有一个基于EBS附加实例的集群: - 是否可以对磁盘进行快照并重新附加一个数据节点,其中包含从快照重建的EBS磁盘?

4)如果我将数据节点部署为r4.8xlarge并且我需要更多的马力,是否可以将群集从r4.8xlarge放大到r4.16xlarge-on-the-fly?在几分钟内安装和拆卸磁盘?

非常感谢您的澄清,我希望我的怀疑也能帮助其他用户。

2 个答案:

答案 0 :(得分:1)

1)对于CDH组件可以工作的实例类型没有明确的限制,但是您需要选择具有最小马力的类型。例如,我不认为微尺寸实例可以用于任何事情。太小的类型通常会导致守护进程耗尽内存。参考架构为某些情况建议了实例类型。

2)您应该坚持使用EBS作为实例类型的根卷。有几个原因,包括较新的实例类型甚至不支持根磁盘的本地实例存储。

CDH没有在数据节点失败时替换数据节点的机制。你可以自己滚动一些东西,可能是在Cloudera Director的帮助下。

3)您可以为S3中的数据设置生命周期规则,以便随着时间的推移将其从标准存储类迁移到Glacier,或者您可以直接写入Glacier;它看起来不像直接Glacier访问可以通过s3a连接器完成。我很确定distcp和S3不会使用压缩;您复制的内容对S3来说是不透明的。您可以对EBS卷(根或附加)进行快照,然后分离它们并将它们重新附加到其他实例;这不一定是备份数据节点与distcp路由的好方法,因为每个数据节点都是唯一的,并且在集群运行时具有不断变化的数据。

4)您可以在不分离和重新附加磁盘的情况下调整EBS支持的EC2实例的大小。您必须停止实例以调整其大小。

答案 1 :(得分:0)

仅限第3点:

  • 您需要断开S3并通过AWS设置
  • 将其移至冰川
  • 它对数据,压缩等没有任何作用。
  • 请参阅(hortonworks doc)Distcp and S3 并阅读其警告/警告。特别是,增量distcp不是基于校验和的,原子distcp不是,它只是“非常慢的distcp”