Hadoop 配置单元到vertica数据导出(使用Unix命名管道)
有人能帮我吗,如何在没有任何hadoop连接器的情况下,快速导出到Hive到Vetica 目前,我正在通过unix Namedpipe导出相同的内容 但表现并不是那么好 几乎5个并行线程将数据加载到vertica,16亿条记录集的时间约为230分钟 有人能帮我提高这个性能吗?如果我们能优化这个出口 谢谢Hadoop 配置单元到vertica数据导出(使用Unix命名管道),hadoop,export,hive,vertica,Hadoop,Export,Hive,Vertica,有人能帮我吗,如何在没有任何hadoop连接器的情况下,快速导出到Hive到Vetica 目前,我正在通过unix Namedpipe导出相同的内容 但表现并不是那么好 几乎5个并行线程将数据加载到vertica,16亿条记录集的时间约为230分钟 有人能帮我提高这个性能吗?如果我们能优化这个出口 谢谢 abhi我们正在这样做,不是使用命名管道(mkfifo),而是使用标准匿名外壳管道: hive -e "select whatever FROM wherever" | \ dd bs=1M |
abhi我们正在这样做,不是使用命名管道(mkfifo),而是使用标准匿名外壳管道:
hive -e "select whatever FROM wherever" | \
dd bs=1M | \
/opt/vertica/bin/vsql -U $V_USERNAME -w $V_PASSWORD -h $HOST $DB -c \
"COPY schema.table FROM LOCAL STDIN DELIMITER E'\t' NULL 'NULL' DIRECT"
这对我们来说非常好。注意配置单元和vsql之间的“dd”。这是必须的,以使其正常工作。这很难给您提供好的数据,因为我们的配置单元select语句实际上并不琐碎,而且我不知道花费了多少时间(配置单元处理或数据加载)
但是tbh,像您这样使用命名管道或像我们这样使用未命名管道是一种很好的方法,并且在系统级别上没有多少可以优化的。不过,有几件事需要考虑:
- 是时候计算您的配置单元查询了
- 运行查询的位置。例如,如果您在第三方机器上运行它,数据需要从配置单元流向您的服务器,再流向vertica。在配置单元服务器或Vertica节点上运行该命令可能会跳过不必要的跃点,从而加快速度
- 复制声明:您是否使用DIRECT
- 当然,通常的投影(多个投影会降低负载)、Vertica资源等等