Hadoop 配置单元到vertica数据导出(使用Unix命名管道)

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 |

有人能帮我吗,如何在没有任何hadoop连接器的情况下,快速导出到Hive到Vetica

目前,我正在通过unix Namedpipe导出相同的内容 但表现并不是那么好

几乎5个并行线程将数据加载到vertica,16亿条记录集的时间约为230分钟

有人能帮我提高这个性能吗?如果我们能优化这个出口

谢谢
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资源等等

不清楚您在问什么,也许可以提供一些示例代码或进一步的详细信息。嘿,实际上,我们正计划在unix命名管道的帮助下,将大型表从hivr(如30亿条记录)从hive迁移到vertica。这意味着首先从hive tables>mkfifo中选择col1 col2,然后我们进行vertica连接并开始复制,如下图所示:cat mkfifo |复制到vertica我们在5个节点上使用5个并行线程执行此执行在vertica。@abhishekrastogi这是一次性的事情还是经常发生?