我正在远程计算机上运行一个java程序,并尝试使用recordreader对象读取分割的数据,但得到:
Exception in thread "main" java.io.IOException: job information not found in JobContext. HCatInputFormat.setInput() not called?
我已经打了以下电话:
_hcatInputFmt = HCatInputFormat.setInput(_myJob, db,tbl);
然后将recordreader对象创建为:
_hcatInputFmt.createRecordReader(hSplit, taskContext)
在调试时,在尝试创建recordreader对象时,在作业配置对象中搜索key:hcat\u key\u job\u info的值时失败。
如何设置此值?任何提示都会有帮助。
谢谢。
2条答案
按热度按时间kognpnkq1#
我们必须使用
getConfiguration()
方法从作业对象获取配置。创建作业对象时使用的配置对象无法执行此操作。myzjeezk2#
我也有同样的问题,你应该用:
不
因为,当你使用
Job.getInstance(conf)
,它将复制conf,您不能使用原始conf。下面是代码: