20,848
社区成员




hive -e 'insert into table a select * from b'
insert into table a SELECT * FROM b
。
我在实际中没有使用sqoop而是使用的hive jdbc客户端,过程与你的使用情况相反,从hive导出到mysql中,具体可参考
http://blog.csdn.net/skywalker_only/article/details/38366347
[/quote]
谢谢耐心回答
问题是我现在不是hive中的表b导入到表a,而是从mysql中导入的,那就不能用 insert into了吧。
估计还要如wulinshishen所说的,需要定时清理空文件,合并小文件。清除简单,但不知道如何合并,是不是要自己写map-reduce合并呢,我对map-reduce不是特别熟,还停留在wordcount阶段insert into a select 1,2,3
相对完整代码:
Class.forName(DRIVERNAME);
Connection con = DriverManager.getConnection("jdbc:hive2://master:10000/default", "hadoop", "");
String sql = "insert into table a select 1,2 ,3";
Statement stmt = con.createStatement();
stmt.execute(sql);
insert into table a SELECT * FROM b
。
我在实际中没有使用sqoop而是使用的hive jdbc客户端,过程与你的使用情况相反,从hive导出到mysql中,具体可参考
http://blog.csdn.net/skywalker_only/article/details/38366347
[/quote]
谢谢耐心回答
问题是我现在不是hive中的表b导入到表a,而是从mysql中导入的,那就不能用 insert into了吧。
估计还要如wulinshishen所说的,需要定时清理空文件,合并小文件。清除简单,但不知道如何合并,是不是要自己写map-reduce合并呢,我对map-reduce不是特别熟,还停留在wordcount阶段insert into table a select * from b;
3、删除表b;
如果这样的话,实际上数据是写入两次了,不过问题也不大。但问题是我不知道怎么从.sh脚本中调用hive命令。
如我新建一个脚本文件inc_import.sh,然后通过cron定时执行。
inc_import.sh如下:
##从mysql中导入数据到hive表b
sqoop job --exec b_inc
##连接hiveserver2将表b中的数据插入到表a(这里不知道怎么写)
hive > insert into table a select * from b;
##连接hiveserver2删除表b(这里不知道怎么写)
hive > drop table b;
insert into table a SELECT * FROM b
。
我在实际中没有使用sqoop而是使用的hive jdbc客户端,过程与你的使用情况相反,从hive导出到mysql中,具体可参考
http://blog.csdn.net/skywalker_only/article/details/38366347
[/quote]
谢谢耐心回答
问题是我现在不是hive中的表b导入到表a,而是从mysql中导入的,那就不能用 insert into了吧。
估计还要如wulinshishen所说的,需要定时清理空文件,合并小文件。清除简单,但不知道如何合并,是不是要自己写map-reduce合并呢,我对map-reduce不是特别熟,还停留在wordcount阶段insert into table a SELECT * FROM b
。
我在实际中没有使用sqoop而是使用的hive jdbc客户端,过程与你的使用情况相反,从hive导出到mysql中,具体可参考
http://blog.csdn.net/skywalker_only/article/details/38366347
[/quote]
谢谢耐心回答
问题是我现在不是hive中的表b导入到表a,而是从mysql中导入的,那就不能用 insert into了吧。
估计还要如wulinshishen所说的,需要定时清理空文件,合并小文件。清除简单,但不知道如何合并,是不是要自己写map-reduce合并呢,我对map-reduce不是特别熟,还停留在wordcount阶段insert into table a SELECT * FROM b
。
我在实际中没有使用sqoop而是使用的hive jdbc客户端,过程与你的使用情况相反,从hive导出到mysql中,具体可参考
http://blog.csdn.net/skywalker_only/article/details/38366347