我一直试图找出将数据从HDFS移植到SQL Server的最佳方法。
我确信根据我通过
阅读的一系列链接,两者都是可能的但是当我在寻找可能在配置和维护水平上升的问题时,我没有正确的答案。
我强烈认为我应该去导入,但我不习惯在故障排除和维护可能偶尔出现的问题。
有人可以分享他们对什么是最好的想法?
答案 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方面,您可能还希望将定义的调度程序池或队列专用于此类外部写入作业,因为它们可能对业务至关重要,而FairScheduler
和CapacityScheduler
等调度程序可帮助定义SLA保证每个池或队列,以便作业在启动时获得足够的资源运行。