Error: java.io.IOException: java.sql.SQLSyntaxErrorException: invalid callable syntax
at org.apache.sqoop.mapreduce.AsyncSqlRecordWriter.close(AsyncSqlRecordWriter.java:184)
at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.close(MapTask.java:679)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:802)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:342)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.sql.SQLSyntaxErrorException: invalid callable syntax
at org.mariadb.jdbc.MariaDbCallableStatement.<init>(MariaDbCallableStatement.java:97)
at org.mariadb.jdbc.MariaDbConnection.prepareCall(MariaDbConnection.java:408)
at
JDBC 커넥터를 이용하여 스쿱과 mysql 연결하여 프로시저 처리중 이런 오류가 발생하는 경우가 있다.
잘보면 mysql 인데 MariaDbCallableStatement 를 이용하여 처리하고 있다.
마리아 DB와 MySql의 JDBC 커넥터 이름이 동일하여 오류가 발생하는 것이다.
라이브러리를 잘 확인하여 처리하면 된다.
마리아 DB 에 연결하여 처리중인 경우에 이런 오류가 발생한다면 프로시저에 오류가 있는 것이다.
파라미터 타입, 칼럼 타입, 파라미터 개수등을 정확히 확인하면 된다.