
最近做了一个sqoop页面可视化的项目,但是在执行Sqoop.runSqoop方法的可能会产生异常,比如连接数据库产生时区问题,HDFS权限问题等等。但是无法使用try-catch抓取到异常,只是在控制台打印异常信息。
倍感疑惑,就去网上搜索相关问题,但是内容少之又少。无奈只能一点点去翻看sqoop的源码,发现产生的异常的都会转换为RunTimeException,但是即便是运行时异常也能抓取到啊,再深究源码发现这里是否抛异常是通过相关参数控制的。这里先简单做个备忘吧,具体源码就不一一贴了,后面有时间再详细说说,估计使用Java *** 控sqoop的也比较少,下面直接说解决办法:
第一种:使用String[] args = new String[]{},字符串数组的形式拼接参数去执行 在Sqoop.runSqoop方法前设置系统参数:System.setProperty("sqoop.throwOnError","true") 第一种:使用SqoopOptions的形式拼接参数去执行 (1)SqoopOption.setThrowOnError(true),封装上这个参数 (2)在Sqoop.runSqoop方法前设置系统参数:System.setProperty("sqoop.throwOnError","true")ps:以上是个人遇到问题的解决办法,仅供参考,若有说的不妥当的地方,还请各位读者指正
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)