线程“main”中的异常org.apache.hadoop.mapred.InvalidJobConfException:未设置输出目录

时间:2013-03-08 09:29:10

标签: hadoop mapreduce hbase bigdata hadoop-streaming

嘿所有人可以帮助我清除以下错误吗?当我运行Mapreduce job fopr从hdfs文件将数据插入hbase表时,我得到了这个。使用HFileOutputFormat.class,之前我使用MultiTableOutputFormat.class运行相同它工作正常,但是在将数据插入hbase表时花费了很多时间。

那么请你帮帮我...... :)          *

  

job.setMapOutputKeyClass(ImmutableBytesWritable.class);             job.setMapOutputValueClass(Put.class);             job.setInputFormatClass(TextInputFormat.class);
            job.setOutputFormatClass(HFileOutputFormat.class);             job.setMapperClass(Map.class); HTable hTable = new HTable(conf,“ARK_3000”);                      HFileOutputFormat.configureIncrementalLoad(job,hTable);

     

错误security.UserGroupInformation:PriviledgedActionException   as:reddym(auth:SIMPLE)   原因:org.apache.hadoop.mapred.InvalidJobConfException:输出   目录未设置。线程“main”中的异常   org.apache.hadoop.mapred.InvalidJobConfException:输出目录不是   集。

感谢Madhusudhana Reddy

1 个答案:

答案 0 :(得分:3)

确保输出目录没有写保护,然后再试一次不要使用像驱动器根目录这样的目录。希望这可以帮助 此致

编辑:尝试将其添加到要求输出目录

的位置
HFileOutputFormat.setOutputPath(conf, new Path(<YOUR_LOCATION>));

FileOutputFormat.setOutputPath(conf, new Path(<YOUR_LOCATION>));

您需要提及输出目录,以便知道将数据写入的位置。

希望这有助于您解决问题,如果您需要更多帮助,请与我们联系。因为我总是很乐意提供帮助。

编辑2:您需要提及输出目录,因为您要写入的表存储在内存中,当您结束程序时,内存中的所有数据都将丢失。 例如,如果程序崩溃,除非将数据写入磁盘,否则所有数据都将丢失。因此,保存到输出目录的数据是备份,以防出现任何问题。

我希望这能为您清楚地回答您的问题,如果您需要更多帮助,请留下其他评论 问候 汤姆