将HDFS上的数据导入SQL Server或将HDFS上的数据导出到SQL Server

时间:2012-08-31 10:49:53

标签: sql-server hadoop cloudera sqoop

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

  • 我是否使用sqoop Hadoop Connector for SQL Server 2008 R2或
  • 从Cloudera Hadoop导入数据?
  • 我是否使用sqoop将数据从Cloudera Hadoop导出到SQL Server

我确信根据我通过

阅读的一系列链接,两者都是可能的

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

我强烈认为我应该去导入,但我不习惯在故障排除和维护可能偶尔出现的问题。

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

1 个答案:

答案 0 :(得分:3)

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

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

在配置方面,您最初可能需要手动调整以找到导出工具启动的Export MapReduce作业并行度的最佳-m值。使用过高的值会导致数据库端出现问题,而使用过低的值则无法获得理想的性能。此处需要进行一些反复试验,以获得正确的-m值以及数据库加载周期的知识,以便将并行性设置为正确。

导出工具用户的Apache Sqoop(v1)doc page还列出了导出作业失败的一些常见原因。您可能需要view those here

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