将hive输出文件导入mycat


摘要:将hive输出的文件导入mycat

需求说明

hadoop服务器上有个定时任务,每天凌晨通过hive输出运算结果,需要将结果数据导入mycat中。

分析Hive输出文件

hive输出的文件格式如下:
图1
每行数据的字段分隔符看上去是个小方块,vi进去后看到是^A:
图2
这个符号很容易被误认为是键盘6上面那个倒尖括号和大写字母A组成的,其实是通过按crtl+v+a才可以正确的输出该符号。

导入MyCAT

图3
到数据库中查看导入的数据:
图4
如果字段分割符不对,导入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)
文章目录
  1. 1. 需求说明
  2. 2. 分析Hive输出文件
  3. 3. 导入MyCAT
|