首页 > 解决方案 > 如何在不使用 sqoop 的情况下将行从 mysql 复制到 hive

问题描述

我必须从那里复制整个 mysql 表到 hive。我不能使用 sqoop。

我找到了一种从 mysql 获取整个数据集的方法,并且逐行(循环到数据集),复制到配置单元中......

但这是一个非常慢的方法(50k 行在我的集群中需要几个小时)

是像“ *insert into mysql select * from hive* ”这样的方式吗?

谢谢你,马可

标签: mysqlhadoophive

解决方案


为什么不使用 sqlplus 执行查询并将数据加载到文件中,然后将此文件放入 HDFS

  sqlplus -s user/password@dbname <<EOF
set feedback off trimspool on 
spool file_name.txt;
select * from table_name;
spool off;
exit;
EOF

将数据放入文件 file_name.txt 后,您可以直接将数据放入 hdfs

hadoop fs -put file_name.txt /myhdfsfolder/

推荐阅读