【问题标题】:How does --direct parameter in Sqoop export work with Vertica?Sqoop 导出中的 --direct 参数如何与 Vertica 配合使用?
【发布时间】:2015-10-30 18:02:23
【问题描述】:

将大量数据从 HDFS 导出到 Vertica 时出现Too many ROS containers ... 错误。我知道vsql COPY 有一个direct 选项,它将绕过WOS 并将数据加载到ROS 容器中。我还注意到 Sqoop 导出中的 --directsee this Sqoop User Guide。我只是想知道这两个“直接”是否具有相同的功能。

我曾尝试修改 Vertica 配置参数,例如 MoveOutIntervalMergeOutInterval... 但这并没有太大帮助。

那么有人知道direct Sqoop 导出模式是否有助于解决 ROS 容器问题。谢谢!

【问题讨论】:

    标签: vertica sqoop


    【解决方案1】:

    --direct 仅受特定数据库连接器支持。由于没有适用于 Vertica 的产品,因此您将使用通用 JDBC 产品。我真的怀疑使用--direct 有什么作用......但如果你真的想测试这个,你可以查看query_requests 中发送的语句。

    select * 
    from query_requests
    where request_type = 'LOAD'
    and start_timestamp > clock_timestamp() - interval '1 hour'
    

    这将显示过去一小时内的所有加载语句。 sqoop 语句应转换为COPY。我真的希望无论如何!如果是一堆INSERT ... VALUES 语句,那么我强烈建议不要使用它。如果它没有生成COPY,那么您需要更改上面的查询以查找INSERT

    select * 
    from query_requests
    where request_type = 'QUERY'
    and request ilike 'insert%'
    and start_timestamp > clock_timestamp() - interval '1 hour'
    

    让我知道你在这里找到了什么。如果它在做INSERT...VALUES,那么我可以告诉你如何修复它(但这有点工作)。

    【讨论】:

    • 感谢您的回答。我试过你的查询。如您所愿,它已转换为“复制”。类似“COPY table ( columns...) FROM LOCAL STDIN NATIVE VARCHAR ENFORCELENGTH RETURNREJECTED AUTO NO COMMIT ”这是否意味着每个“副本”都会生成一个 ROS 容器?因为好像有820个query_request,而总共有2454702行,sqoop.export.records.per.statement=3000。在这种情况下,我能做些什么来减少 ROS 容器的数量吗?
    • 好吧……不完全是。注意一件事……COPY 没有直接关键字。这应该是 WOS 负载。这意味着可能发生的是您的COPYs 实际上溢出到 ROS。这是有问题的,因为在 Vertica 中,这最终会创建 2 个 ROS 容器。您最好使用DIRECT,因为至少那时您只会创建 1 个 ROS(即使它在 820 时仍然很糟糕)。如果你有很多内存,你可能会增加你的 WOS,但我担心它可能会给你带来麻烦。如果您问我,最好使用替代加载方法。
    • 我想我现在会忘记 Sqoop 了。来自标准输入的 vsql 副本至少运行良好。它只是不如 Sqoop 快,但仍然是一个很好的解决方案。谢谢你回答我所有的问题哈哈。
    • 你可以自己并行化它。试试这个...找到一种方法将您的负载分成 X 个部分,其中 X = 您拥有的垂直节点数。然后让每个进程选择一个切片,并连接到不同的节点。 ;-) 不过,可能不需要执行超过 5 个并行加载。
    • 有两个连接器。 Vertica Hadoop 连接器和 HDFS 连接器。前者可以让您从 Hadoop 访问 Vertica 进行推送和拉取。后者将允许您创建 COPY 语句和外部表并将它们直接指向 HDFS。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 2018-07-22
    相关资源
    最近更新 更多