需求说明
hadoop服务器上有个定时任务,每天凌晨通过hive输出运算结果,需要将结果数据导入mycat中。
分析Hive输出文件
hive输出的文件格式如下:
每行数据的字段分隔符看上去是个小方块,vi进去后看到是^A:
这个符号很容易被误认为是键盘6上面那个倒尖括号和大写字母A组成的,其实是通过按crtl+v+a才可以正确的输出该符号。
导入MyCAT
到数据库中查看导入的数据:
如果字段分割符不对,导入mycat时会报错
命令行报错:
ERROR 2013 (HY000) at line 1: Lost connection to MySQL server during query
mycat日志报错:
04/18 19:28:21.432 ERROR [$_NIOREACTOR-3-RW] (FrontendConnection.java:270) -load data error
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:658)
at org.opencloudb.server.handler.ServerLoadDataInfileHandler.end(ServerLoadDataInfileHandler.java:623)
at org.opencloudb.net.FrontendConnection.loadDataInfileEnd(FrontendConnection.java:268)
at org.opencloudb.net.FrontendConnection.rawHandle(FrontendConnection.java:426)
at org.opencloudb.net.FrontendConnection.handle(FrontendConnection.java:417)
at org.opencloudb.net.AbstractConnection.onReadData(AbstractConnection.java:313)
at org.opencloudb.net.NIOSocketWR.asynRead(NIOSocketWR.java:186)
at org.opencloudb.net.AbstractConnection.asynRead(AbstractConnection.java:274)
at org.opencloudb.net.NIOReactor$RW.run(NIOReactor.java:96)
at java.lang.Thread.run(Thread.java:745)