嘿所有人可以帮助我清除以下错误吗?当我运行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
答案 0 :(得分:3)
确保输出目录没有写保护,然后再试一次不要使用像驱动器根目录这样的目录。希望这可以帮助 此致
编辑:尝试将其添加到要求输出目录
的位置HFileOutputFormat.setOutputPath(conf, new Path(<YOUR_LOCATION>));
或FileOutputFormat.setOutputPath(conf, new Path(<YOUR_LOCATION>));
您需要提及输出目录,以便知道将数据写入的位置。
希望这有助于您解决问题,如果您需要更多帮助,请与我们联系。因为我总是很乐意提供帮助。
编辑2:您需要提及输出目录,因为您要写入的表存储在内存中,当您结束程序时,内存中的所有数据都将丢失。 例如,如果程序崩溃,除非将数据写入磁盘,否则所有数据都将丢失。因此,保存到输出目录的数据是备份,以防出现任何问题。
我希望这能为您清楚地回答您的问题,如果您需要更多帮助,请留下其他评论 问候 汤姆