首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何再次覆盖/重用Hadoop作业的现有输出路径和agian

在 Hadoop 中,覆盖现有输出路径和重用输出路径的方法如下:

  1. 使用 FileSystem 类来删除现有输出路径

在运行 Hadoop 作业之前,可以使用 FileSystem 类来删除现有输出路径。以下是一个示例代码:

代码语言:java
复制
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class HadoopJob {
    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(conf);
        Path outputPath = new Path("hdfs://localhost:9000/output");
        if (fs.exists(outputPath)) {
            fs.delete(outputPath, true);
        }
        // 在这里运行 Hadoop 作业
    }
}
  1. 使用 -D 参数覆盖输出路径

在运行 Hadoop 作业时,可以使用 -D 参数来覆盖现有输出路径。以下是一个示例命令:

代码语言:txt
复制
hadoop jar hadoop-job.jar -D mapreduce.output.fileoutputformat.outputdir=hdfs://localhost:9000/output
  1. 使用 FileOutputFormat 类来设置输出路径

在 Hadoop 作业中,可以使用 FileOutputFormat 类来设置输出路径。以下是一个示例代码:

代码语言:java
复制
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class HadoopJob {
    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        Job job = Job.getInstance(conf, "Hadoop Job");
        job.setJarByClass(HadoopJob.class);
        job.setMapperClass(MyMapper.class);
        job.setReducerClass(MyReducer.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);
        FileInputFormat.addInputPath(job, new Path("hdfs://localhost:9000/input"));
        FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/output"));
        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
}

在这个示例中,我们使用 FileOutputFormat.setOutputPath() 方法来设置输出路径。

  1. 使用 Path 类来检查输出路径是否存在

在 Hadoop 作业中,可以使用 Path 类来检查输出路径是否存在。以下是一个示例代码:

代码语言:java
复制
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class HadoopJob {
    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        Job job = Job.getInstance(conf, "Hadoop Job");
        job.setJarByClass(HadoopJob.class);
        job.setMapperClass(MyMapper.class);
        job.setReducerClass(MyReducer.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);
        FileInputFormat.addInputPath(job, new Path("hdfs://localhost:9000/input"));
        Path outputPath = new Path("hdfs://localhost:9000/output");
        FileSystem fs = outputPath.getFileSystem(conf);
        if (fs.exists(outputPath)) {
            fs.delete(outputPath, true);
        }
        FileOutputFormat.setOutputPath(job, outputPath);
        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
}

在这个示例中,我们使用 Path 类来检查输出路径是否存在,并在存在时删除它。

总之,在 Hadoop 中覆盖现有输出路径和重用输出路径的方法有很多种。你可以根据自己的需求选择合适的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

大数据入门与实战-Spark上手

1.5 Spark建立在Hadoop上 下图显示了如何使用Hadoop组件构建Spark三种方法。 ? Spark部署有三种方式,如下所述。...在这里,SparkMapReduce将并排运行,以涵盖集群上所有火花作业。...不幸是,在大多数当前框架中,在计算之间重用数据唯一方法(Ex-两个MapReduce作业之间)是将其写入外部稳定存储系统(Ex-HDFS)。...关于存储系统,大多数Hadoop应用程序,他们花费超过90%时间进行HDFS读写操作。 2. 3 MapReduce上迭代操作 在多阶段应用程序中跨多个计算重用中间结果。...saveAsTextFile(“”)方法String参数是输出文件夹绝对路径。请尝试以下命令将输出保存在文本文件中。在以下示例中,'output'文件夹位于当前位置。 5.8 查看输出 ?

1K20
  • Apache Spark:大数据时代终极解决方案

    Hadoop中,数据存储在磁盘上,而在Spark中则存储在内存中,这可以极大地降低IO成本。HadoopMapReduce只能通过将数据写入外部存储并在需要时再次通过IO获取数据来重用数据。...迭代型交互式作业需要快速响应,但由于数据复制、磁盘IO序列化,MapReduce性能并不令人满意。...它还可以支持现有的纯Hadoop生态系统。 MapReduce替代方法: Spark可以用来代替MapReduce,因为它可以在短时间内执行作业,而且只需5秒或更短时间。...双操作系统也是非常好选择。可以选择使用独立版本或使用为Hadoop预先构建版本,该版本利用现有Hadoop组件(如HDFS)或构建在YARN上版本。...下面将演示如何执行现有程序,如何启动客户端、服务器以及如何启动Spark Shell。

    1.8K30

    如何复制 OR 删除 200 万个小文件,而且电脑不卡?

    /256 :: 关闭超长路径(> 256 字符)支持。 /MON:n :: 监视源;发现多于 n 个更改时再次运行。 /MOT:m :: 监视源;如果更改,在 m 分钟时间内再次运行。.../NP :: 无进度 - 不显示已复制百分比。 /ETA :: 显示复制文件预期到达时间。 /LOG:文件:: 将状态输出到日志文件(覆盖现有日志)。.../LOG+:文件:: 将状态输出到日志文件(附加到现有日志中)。 /UNILOG:文件:: 以 UNICODE 方式将状态输出到日志文件(覆盖现有日志)。.../UNILOG+:文件:: 以 UNICODE 方式将状态输出到日志文件(附加到现有日志中)。 /TEE :: 输出到控制台窗口日志文件。 /NJH :: 没有作业标头。.../NJS :: 没有作业摘要。 /UNICODE :: 以 UNICODE 方式输出状态。 五、 作业选项 : 参数解释: /JOB:作业名称:: 从命名作业文件中提取参数。

    2.9K51

    Sqoop工具模块之sqoop-export 原

    --hadoop-mapred-home :指定$ HADOOP_MAPRED_HOME路径 --help:打印使用说明 --password-file:为包含认证密码文件设置路径。...如果有多个列,请使用以逗号分隔列列表。 --update-mode :指定在数据库中使用不匹配键找到新行时如何执行更新。...如果这些文件是使用非默认分隔符(以换行符分隔记录逗号分隔字段)创建,则应该再次指定相同分隔符,以便Sqoop可以解析您文件。...6、代码生成参数 --bindir :编译对象输出目录。 --class-name :设置生成类名称。这覆盖--package-name。...在这种情况下指定--jar-file--class-name避免指定分隔符。 现有生成代码使用与--update-key是不兼容;更新模式导出需要新代码生成来执行更新。

    6.7K30

    Hadoop3.0集群安装知识

    问题导读 1.本文是如何定义master? 2.如何配置hadoop守护进程环境? 3.配置Hadoop守护进程需要哪些配置文件? 4.yarn-site配置文件,主要配置哪两个进程?...目的 本文档介绍如何安装配置Hadoop集群,从少数节点到数千个节点超大型集群。...其他服务(如Web应用程序代理服务器MapReduce作业历史记录服务器)通常在专用硬件或共享基础结构上运行,具体取决于负载。...RM提交作业 如果设置host:port ,会覆盖在yarn.resourcemanager.hostname中设置hostname yarn.resourcemanager.scheduler.address...节点运行状况脚本输出(如果运行状况不佳)可供管理员在ResourceManager Web界面中使用。节点健康以来时间也显示在Web界面上。

    1.3K70

    Hadoop

    (2)全排序:     如何Hadoop产生一个全局排序文件?最简单方法是使用一个分区。...现有Hadoop调度器存在较大缺陷,主要体现在探测落后任务算法上:如果一个task进度落后于同类型task进度20%,则把该task当做落后任务(这种任务决定了job完成时间,需尽量缩短它执行时间...实际上,这类调度器分为两种,软实时(允许作业有一定超时)作业调度器硬实时(作业必须严格按时完成)作业调度器。   ...数据大小倾斜——部分记录大小远远大于平均值。 (2)如何收集倾斜数据   在reduce方法中加入记录map输出详细情况功能。...JVM重用可以使得JVM实例在同一个job中重新使用N次,N值可以在Hadoopmapred-site.xml文件中进行配置。

    26810

    内存中 MapReduce Hadoop 生态系统:第 1 章

    限制 Hadoop MapReduce 性能扩展主要因素之一是 Hadoop 依赖生成大量输入 / 输出(I/O)文件文件系统。I/O 操作会增加延迟,并延迟 MapReduce 计算。...Hadoop 这一即插即用内存加速器有三种类型。 1. 内存中 MapReduce 它是 Hadoop 作业任务跟踪器一个替代方案,可以加快作业执行性能。...它消除了标准 Hadoop 体系结构中与作业任务跟踪器相关开销,同时能提供低延迟 HPC 式分布式处理功能。 2....它减少了 Hadoop 作业任务跟踪器启动执行时间,还为 CPU 密集型任务提供了显着性能提升,同时只需对现有应用程序进行最小限度更改。...Hadoop "伪分布式集群" 意味着 Hadoop 数据节点,名称节点,任务作业跟踪器 —— 一切都只会运行在一台虚拟(主机)机器上。

    1.6K60

    Sqoop工具模块之sqoop-import-all-tables

    --hadoop-mapred-home :覆盖$ HADOOP_MAPRED_HOME。 --help:打印使用说明。 --password-file:为包含认证密码文件设置路径。...--hive-overwrite:覆盖Hive表中现有数据。。 --create-hive-table:如果设置,则作业将失败,如果目标配置单元表存在。默认情况下,该属性为false。...--hive-partition-key:分区配置单元字段名称被打开 --hive-partition-value :字符串值,用作此作业中导入配置单元分区键。...--map-column-hive :覆盖从SQL类型到配置列Hive类型默认映射。...如果在此参数中指定逗号,请使用URL编码值,例如,使用DECIMAL(1%2C%201)而不是DECIMAL(1,1)。 6、代码生成参数 --bindir :编译对象输出目录。

    1.4K30

    Hadoop3.0分布式集群安装知识

    问题导读 1.本文是如何定义master? 2.如何配置hadoop守护进程环境? 3.配置Hadoop守护进程需要哪些配置文件? 4.yarn-site配置文件,主要配置哪两个进程?...目的 本文档介绍如何安装配置Hadoop集群,从少数节点到数千个节点超大型集群。...其他服务(如Web应用程序代理服务器MapReduce作业历史记录服务器)通常在专用硬件或共享基础结构上运行,具体取决于负载。...RM提交作业 如果设置host:port  ,会覆盖在yarn.resourcemanager.hostname中设置hostname yarn.resourcemanager.scheduler.address...节点运行状况脚本输出(如果运行状况不佳)可供管理员在ResourceManager Web界面中使用。节点健康以来时间也显示在Web界面上。

    2K50

    HBase使用HashTableSyncTable工具同步集群数据

    下面显示了如何运行它快速示例,本文稍后将给出每个必需参数详细说明: hbase org.apache.hadoop.hbase.mapreduce.HashTable --families=cf...HashTable充当分片/索引工作,分析表数据批处理,并为每个批处理生成哈希索引。这些是作为作业参数之一传递hdfs /hashes/my-table目录下文件中写入输出。...它还将仅需要在源中扫描少量单元以检查不匹配。 必要参数 HashTable仅需要两个参数:表名称将在其中写入相关哈希其他元信息文件输出路径。...SyncTable使用HashTable输出目录作为输入,并分别使用源集群目标集群中表名称。...SyncTable毫无区别地查找源分区目标分区之间所有哈希匹配,因此避免了再次扫描远程源集群需要。

    1.6K10

    Hadoop-2.4.1学习之MapperReducer

    程序员编写运行在MapReduce上应用程序称为作业(job),Hadoop既支持用Java编写job,也支持其它语言编写作业,比如Hadoop Streaming(shell、python)...Hadoop-2.X不再保留Hadoop-1.X版本中JobTrackerTaskTracker组件,但这并不意味着Hadoop-2.X不再支持MapReduce作业,相反Hadoop-2.X通过唯一主...作业客户端将编写好作业提交给ResourceManager,而不再是JobTracker,ResourceManager负责将作业分布到从节点上,调度监控作业,为作业客户端提供状态诊断信息。...默认为1,会启动一个Reducer),在这种情况下,Mapper输出将直接写入FileOutputFormat.setOutputPath(Job,Path)指定路径中,并且MapReduce框架不会对...也就是Job.setGroupingComparatorClass(Class)控制了如何对中间输出分组,而Job.setSortComparatorClass(Class)控制了在将数据传入reduce

    69220

    【上进小菜猪】使用Ambari提高Hadoop集群管理开发效率:提高大数据应用部署管理效率利器

    在本文中,我们将演示如何使用Ambari来部署管理一个Hadoop集群,并运行一个简单MapReduce应用程序。...0 : 1)); } } 在驱动程序中,我们首先创建一个作业对象,并设置作业名称、Mapper类、Reducer类、输入路径输出路径等。...上传完成后,我们需要在Ambari中创建一个新MapReduce作业,将JAR文件输入输出路径作业关联。...在“参数”选项卡中,输入作业输入路径输出路径。 单击“保存”按钮,然后单击“提交”按钮。 创建作业后,我们可以在“作业浏览器”中查看作业状态运行情况。...如果作业运行成功,我们可以在输出路径中找到生成结果文件。 总结 本文介绍了如何使用Ambari来管理监控Hadoop集群,并演示了如何编写部署一个简单MapReduce应用程序。

    36520

    Hadoop学习笔记—4.初识MapReduce

    框架会对Map输出先进行排序,然后把结果输入给Reduce任务。通常作业输入输出都会被存储在文件系统中,整个框架负责任务调度监控,以及重新执行已经关闭任务。   ...>键值对作为作业输出,这两组键值对有可能是不同。   ...一个MapReduce作业输入输出类型如下图所示:可以看出在整个流程中,会有三组键值对类型存在。 ?...我们要做就是覆盖map 函数reduce 函数,首先我们来覆盖map函数:继承Mapper类并重写map方法 /** * @author Edison Chou * @version...、value类型(这里输入key、value类型通常map输出key、value类型保持一致)输出key、value 类型。

    45620

    Apache Hudi 架构原理与最佳实践

    读优化表主要目的是通过列式存储提供查询性能,而近实时表则提供实时(基于行存储列式存储组合)查询。 Hudi是一个开源Spark库,用于在Hadoop上执行诸如更新,插入删除之类操作。...它还允许用户仅摄取更改数据,从而提高查询效率。它可以像任何作业一样进一步水平扩展,并将数据集直接存储在HDFS上。 2. Hudi如何工作?...Hudi将数据集组织到与Hive表非常相似的基本路径目录结构中。数据集分为多个分区,文件夹包含该分区文件。每个分区均由相对于基本路径分区路径唯一标识。 分区记录会被分配到多个文件。...Hudi解决了以下限制 HDFS可伸缩性限制 需要在Hadoop中更快地呈现数据 没有直接支持对现有数据更新和删除 快速ETL建模 要检索所有更新记录,无论这些更新是添加到最近日期分区新记录还是对旧数据更新...Hadoop中数据快速呈现 支持对于现有数据更新和删除 快速ETL建模 7.

    5.3K31

    动态 | 中科院计算所开源Easy Machine Learning系统,用交互式图形界面简化ML开发过程

    不过,机器学习全部潜能还远远没被开发出来,因为使用机器学习算法很困难,尤其是在像HadoopSpark分布式平台。...大数据基础结构 该系统是建立在开源大数据系统HadoopSpark之上。...该系统还提供了一些数据任务,用于演示如何使用这些算法来解决问题。为了构造机器学习任务,用户可以直接使用系统中算法和数据。他们还可以上传自己数据算法包。...4)任务重用 现有任务不仅可以作为设计新任务模板,而且可以重用,以节省执行时间系统资源。用户可以直接修改完成任务(例如,修改参数节点,添加节点边,或删除节点边等)并重新提交任务。...在新提交任务,只有受影响节点会再次执行而未受影响节点输出结果将直接重复使用。为了解决实际任务,用户通常需要反复调整任务数据流DAG算法参数。

    88980

    {Submarine} 在 Apache Hadoop 中运行深度学习框架

    最重要是我们有一套集成Submarine生态系统软件工具,目前包括: Submarine-Zeppelin integration:允许数据科学家在 Zeppelin notebook中编写算法调参进行可视化输出...SUBMARINE 生态 Hadoop Submarine 项目的目标是提供深度学习场景中数据(数据采集,数据处理,数据清理),算法(交互式,可视化编程调优),资源调度,算法模型发布作业调度全流程服务支持...通过与 Zeppelin 结合,很明显可以解决数据算法问题。Hadoop Submarine 还将解决 Azkaban 作业调度问题。...利用率低 无法重用现有的YARN群集资源。...无法集成现有的大数据处理系统(例如:spark,hive等) 维护成本高(需要管理分离集群) 需要同时运维 Hadoop Kubernetes 两套操作环境,增加维护成本学习成本。

    1.7K10
    领券