关于将Hadoop移植到云的十大误解


许多公司和公司出于显而易见的原因希望使用云来处理数据:灵活性,可伸缩性,您只能为使用的内容付费等等。

实际上,将具有PB级的多组件数据处理系统的项目从本地环境传输到云是一个可靠的“条件”。有许多用于迁移的产品:HadoopHiveYarnSparkKafkaZookeeperJupyterZeppelin。考虑到环境的根本差异,在这种情况下很容易迷路和犯错。

在本文中,我将讨论常见的误解,并提供有关将质量迁移到云的一些技巧。我个人使用AWS,但是所有技巧都与具有类似解决方案的其他提供商(例如AzureGCP)相关

1.将数据复制到云很容易


将数PB的数据传输到公共云(例如,S3)(在我们的情况下将用作数据湖)并非易事。这可能非常耗时并且占用大量资源。

尽管有大量的解决方案,包括商业解决方案和开源解决方案,但我找不到能满足所有需求的解决方案:

  • 传播
  • 资料整合
  • 资料验证
  • 报告

如果数据的某些部分大部分是静态的或适度动态的,则可以使用诸如AWS Snowball的解决方案,该解决方案允许您将阵列复制到物理设备。将从您的本地网络下载数据,然后将驱动器发送回AWS数据中心,并将数据倒入S3存储中

隐藏文字
, , AWS.

优良作法是将数据传输分为两个阶段。在大多数阵列已发送并上载到存储库后,请使用云提供商的直接连接卸载其余阵列。您可以为此使用Hadoop DistCPKafka镜像方法两种方法都有其细微差别。DistCP需要持续的计划和深度调整,此外,并非所有对象都可以放置在黑名单和白名单中。除了深度调整外,Kafka MirrorMaker还需要通过JMX管理扩展导出指标,以测量吞吐量,延迟和整体稳定性。

隐藏文字
. — , .

2.云的工作就像本地存储一样


本地存储和云存储不是一回事。ZookeeperKafka是一个很好的例子ZK客户端库在整个使用寿命中都缓存了ZK服务器允许的地址:这对于在云中进行部署是一个大问题,这将需要附加条件-ZK服务器的静态ENI网络接口 对于性能监控,最好在云基础架构中运行一系列非功能性NFT测试,以确保设置和配置可以应对您的工作负载。



隐藏文字
, , .

3.对象存储100%替换HDFS


分离存储和计算层是一个好主意,但有一个警告。

除了使用强大的数据一致性(强一致性)的Google Cloud Storage之外其他大多数存储设施都以“ 最终一致性(最终一致)的模型运行这意味着它们可用于输入原始数据和处理后的数据以及输出结果,但不能用作临时存储。

隐藏文字
, HDFS.

4.您可以从用户界面部署云基础架构


对于小型测试环境,这可能很容易,但是对基础结构的要求越高,编写代码的可能性就越大。您可能要具有多个环境(Dev,QA,Prod)可以使用CloudFormationTerraform来实现,但是复制必要的代码段将失败,您将不得不自己做很多事情。

隐藏文字
— CI/CD . , .

5.为了在云中获得正确的可见性,您只需要使用$ {SaaS_name}


对旧环境和新环境的良好可见性(记录和监视)是成功迁移的关键条件。

由于在环境中使用不同的系统,这可能很困难。例如,PrometheusELK用于本地环境,NewRelicSumologic用于云。即使在两种环境中都使用一种SaaS解决方案,也很难扩展。

隐藏文字
, ( , , JMX, , ).

6.云扩展到无限


当用户了解自动缩放功能并认为他们会立即将其应用到其数据处理平台时,他们常常会为孩子高兴。对于不带HDFS的EMR节点,配置起来确实很容易,但是它将需要有关持久存储的其他知识(例如,Kafka软件代理)。在将所有流量切换到云基础架构之前,您需要检查当前的资源限制:类实例,磁盘的数量,还需要预热负载平衡器。没有这样的培训,就无法充分利用工作潜力。

隐藏文字
, — , — .

7.我只是将基础架构保持不变


确实,与其专注于潜在服务提供商的功能,不如专注于自己的存储库,例如DynamoDB,这更好。但不要忘记与API兼容的服务。或者,您可以将Amazon RDS云服务用于Hive Metastore数据库

另一个很好的例子是EMR云优化的大数据平台。乍一看,很简单,它需要使用安装后脚本进行微调。您可以自定义堆大小,第三方存档JARUDF安全附件。还要注意,仍然没有办法为主要NameNodeYARN ResourceManager节点提供高可用性(HA)

隐藏文字
, , .

8.轻松将Hadoop / Spark任务传输到云中-这很容易


并不是的。要成功传输任务,您需要对您的业务逻辑和管道有清晰的了解:从原始数据的原始接收到高质量的阵列。当流水线X和Y的结果是流水线Z的输入数据时,一切都变得更加复杂。流和关系的所有组件都应尽可能清晰地显示。可以使用DAG来实现

隐藏文字
SLA.

9.云将减少运营成本和员工预算


自己的设备需要员工的实际成本和工资。迁移到云后,所有成本都不会消失:您仍然必须响应业务需求,并雇用将参与开发,支持,故障排除和预算计划的人员。您还需要投资用于新基础架构的软件和工具。

员工应该是了解新技术如何工作的人。这意味着高素质的员工。因此,即使考虑到人员的减少,您也可以花更多(如果不是更多的话)花在一位优秀专家的薪水上。

隐藏文字
— (, EMR), . , , .

10.无操作关闭...


无操作是任何企业的梦想。完全自动化的环境,无需第三方的服务和产品。可能吗?

由几个人组成的适度团队仅与活动与数据不直接相关的小公司有关。其他所有人至少都需要一位专家来集成和打包所有系统,进行比较,自动化,提供可视性并消除过程中出现的所有错误。

隐藏文字
Data-Ops , .



总结一下。将数据处理管道传输到云是好的。为了使迁移正常进行,您需要仔细计划流程,同时考虑到上述所有陷阱。想一些步骤,一切都会顺利进行。

All Articles