Hadoop 清管器:完成UDF时执行任务
在Hadoop中,我有一个类似这样的缩减器,用于将以前的映射器中的数据转换为一系列非Hadoop 清管器:完成UDF时执行任务,hadoop,apache-pig,Hadoop,Apache Pig,在Hadoop中,我有一个类似这样的缩减器,用于将以前的映射器中的数据转换为一系列非InputFormat兼容类型的文件 protected void setup(Context context) { LocalDatabase ld = new LocalDatabase("localFilePath"); } protected void reduce(BytesWritable key, Text value, Context context) { ld.addValue
InputFormat
兼容类型的文件
protected void setup(Context context) {
LocalDatabase ld = new LocalDatabase("localFilePath");
}
protected void reduce(BytesWritable key, Text value, Context context) {
ld.addValue(key, value)
}
protected void cleanup(Context context) {
saveLocalDatabaseInHDFS(ld);
}
我正在用Pig重写我的应用程序,但我不知道如何在Pig UDF中完成这项工作,因为没有任何清理功能或其他东西来指示UDF何时完成运行。如何在pig中实现这一点?我想说,您需要编写一个UDF,包装您自己的自定义OutputFormat-然后您就可以使用输出格式的
RecordWriter.close()
方法结束
但是,这将在HDFS中为每个reducer创建一个数据库,因此如果您希望所有内容都包含在单个文件中,则需要使用单个reducer运行,或者运行第二个步骤将数据库合并在一起