• mapreduce API 文档


    MapReduce常用接口

    MapReduce中常见的类如下。

    • org.apache.hadoop.mapreduce.Job:用户提交MR作业的接口,用于设置作业参数、提交作业、控制作业执行以及查询作业状态。
    • org.apache.hadoop.mapred.JobConf:MapReduce作业的配置类,是用户向Hadoop提交作业的主要配置接口。

    类org.apache.hadoop.mapreduce.Job的常用接口

    功能

    说明

    Job(Configuration conf, String jobName),Job(Configuration conf)

    新建一个MapReduce客户端,用于配置作业属性,提交作业。

    setMapperClass(Class<extends Mapper> cls)

    核心接口,指定MapReduce作业的Mapper类,默认为空。也可以在“mapred-site.xml”中配置“mapreduce.job.map.class”项。

    setReducerClass(Class<extends Reducer> cls)

    核心接口,指定MapReduce作业的Reducer类,默认为空。也可以在“mapred-site.xml”中配置“mapreduce.job.reduce.class”项。

    setCombinerClass(Class<extends Reducer> cls)

    指定MapReduce作业的Combiner类,默认为空。也可以在“mapred-site.xml”中配置“mapreduce.job.combine.class”项。需要保证reduce的输入输出key,value类型相同才可以使用,谨慎使用。

    setInputFormatClass(Class<extends InputFormat> cls)

    核心接口,指定MapReduce作业的InputFormat类,默认为TextInputFormat。也可以在“mapred-site.xml”中配置“mapreduce.job.inputformat.class”项。该设置用来指定处理不同格式的数据时需要的InputFormat类,用来读取数据,切分数据块。

    setJarByClass(Class< > cls)

    核心接口,指定执行类所在的jar包本地位置。java通过class文件找到执行jar包,该jar包被上传到HDFS。

    setJar(String jar)

    指定执行类所在的jar包本地位置。直接设置执行jar包所在位置,该jar包被上传到HDFS。与setJarByClass(Class< > cls)选择使用一个。也可以在“mapred-site.xml”中配置“mapreduce.job.jar”项。

    setOutputFormatClass(Class<extends OutputFormat> theClass)

    核心接口,指定MapReduce作业的OutputFormat类,默认为TextOutputFormat。也可以在“mapred-site.xml”中配置“mapred.output.format.class”项,指定输出结果的数据格式。例如默认的TextOutputFormat把每条key,value记录写为文本行。通常场景不配置特定的OutputFormat。

    setOutputKeyClass(Class< > theClass)

    核心接口,指定MapReduce作业的输出key的类型,也可以在“mapred-site.xml”中配置“mapreduce.job.output.key.class”项。

    setOutputValueClass(Class< > theClass)

    核心接口,指定MapReduce作业的输出value的类型,也可以在“mapred-site.xml”中配置“mapreduce.job.output.value.class”项。

    setPartitionerClass(Class<extends Partitioner> theClass)

    指定MapReduce作业的Partitioner类。也可以在“mapred-site.xml”中配置“mapred.partitioner.class”项。该方法用来分配map的输出结果到哪个reduce类,默认使用HashPartitioner,均匀分配map的每条键值对记录。例如在hbase应用中,不同的键值对应的region不同,这就需要设定特殊的partitioner类分配map的输出结果。

    setSortComparatorClass(Class<extends RawComparator> cls)

     

    指定MapReduce作业的map任务的输出结果压缩类,默认不使用压缩。也可以在“mapred-site.xml”中配置“mapreduce.map.output.compress”和“mapreduce.map.output.compress.codec”项。当map的输出数据大,减少网络压力,使用压缩传输中间数据。

    setPriority(JobPriority priority)

    指定MapReduce作业的优先级,共有5个优先级别,VERY_HIGH,HIGH,NORMAL,LOW,VERY_LOW,默认级别为NORMAL。也可以在“mapred-site.xml”中配置“mapreduce.job.priority”项。

    类org.apache.hadoop.mapred.JobConf的常用接口

    方法

    说明

    setNumMapTasks(int n)

    核心接口,指定MapReduce作业的map个数。也可以在“mapred-site.xml”中配置“mapreduce.job.maps”项。

    说明:

    指定的InputFormat类用来控制map任务个数,注意该类是否支持客户端设定map个数。

    setNumReduceTasks(int n)

    核心接口,指定MapReduce作业的reduce个数。默认只启动1个。也可以在“mapred-site.xml”中配置“mapreduce.job.reduces”项。reduce个数由用户控制,通常场景reduce个数是map个数的1/4。

    setQueueName(String queueName)

    指定MapReduce作业的提交队列。默认使用default队列。也可以在“mapred-site.xml”中配置“mapreduce.job.queuename”项。

     
  • 相关阅读:
    转载Dockerfile 中 RUN, CMD, ENTRYPOINT 的区别
    在linux上通过ssh使用github
    dns服务
    centos6 free 和 centos 7的free 的差异与对比
    无重复字符的最长子串
    go get命令在go mod目录下与正常目录执行的区别
    安装git
    转载 筛子算法之golang实现求素数解析
    Go语言基础之并发
    go之无缓冲channel(通道)和有缓冲channel(通道)
  • 原文地址:https://www.cnblogs.com/Zeng02/p/11943175.html
Copyright © 2020-2023  润新知