4

我一直试图找出将数据从 HDFS 移植到 SQL Server 的最佳方法。

  • 我是使用 SQL Server 2008 R2 的 sqoop Hadoop 连接器从 Cloudera Hadoop 导入数据还是
  • 我是否使用 sqoop 将 Cloudera Hadoop 中的数据导出到 SQL Server

根据我阅读的大量链接,我确信两者都是可能的

但是当我在寻找可能在配置和维护级别上升的问题时,我没有正确的答案。

我强烈认为我应该进行导入,但我对排除和维护时不时出现的问题感到不舒服。

有人可以分享他们对什么是最好的想法吗?

4

1 回答 1

3

您的两个选项都使用相同的方法:Apache Sqoop 的导出实用程序。与使用 Apache Sqoop 提供的通用连接器相比,使用许可的 Microsoft 连接器/驱动程序 jar 应该可以为任务带来更高的性能。

在维护方面,一旦您正常工作,就应该没有。只要驱动程序 jar 支持正在使用的 SQL Server 版本,它就应该继续按正常预期工作。

在配置方面,您最初可能必须手动调整以找到-m导出工具启动的导出 MapReduce 作业的最佳并行值。使用太高的值会导致数据库端出现问题,而使用太低的值不会给您理想的性能。这里需要一些试验和错误来达到正确的-m值,以及数据库的加载周期的知识,以便正确设置并行度。

导出工具用户的 Apache Sqoop (v1)文档页面还列出了导出作业失败的一组常见原因。您可能想在此处查看这些内容。

在 MapReduce 方面,您可能还希望为此类外部写入作业专用定义的调度程序池或队列,因为它们可能对业务至关重要,并且调度程序喜欢FairSchedulerCapacityScheduler帮助定义每个池或队列上的 SLA 保证,以便作业获得足够的资源在它们启动时运行。

于 2013-04-06T12:49:11.947 回答