琐碎-关于hadoop的GenericOptionsParser类



GenericOptionsParser 命令行解析器

是hadoop框架中解析命令行参数的基本类。它能够辨别一些标准的命令行参数,能够使应用程序轻易地指定namenode,jobtracker,以及其他额外的配置资源

有篇日志写的很好,自己就不赘述了:http://www.cnblogs.com/caoyuanzhanlang/archive/2013/02/21/2920934.html



例子:

最简单的在WordCount中用到了:

 1     Configuration conf = new Configuration();
 2     String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
 3     if (otherArgs.length != 2) {
 4       System.err.println("Usage: wordcount <in> <out>");
 5       System.exit(2);
 6     }
 7     Job job = new Job(conf, "word count");
 8     job.setJarByClass(WordCount.class);
 9     job.setMapperClass(TokenizerMapper.class);
10     job.setCombinerClass(IntSumReducer.class);
11     job.setReducerClass(IntSumReducer.class);
12     job.setOutputKeyClass(Text.class);
13     job.setOutputValueClass(IntWritable.class);
14     FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
15     FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
16     System.exit(job.waitForCompletion(true) ? 0 : 1);

比如运行命令为:bin/hadoop dfs -fs master:8020 -ls /data

GenericOptionsParser把  -fs master:8020配置到配置conf中

而getRemainingArgs()方法则得到剩余的参数,就是 -ls /data。供下面使用输入输出参数



琐碎-关于hadoop的GenericOptionsParser类

时间: 2024-11-08 19:12:02

琐碎-关于hadoop的GenericOptionsParser类的相关文章

hadoop中Text类 与 java中String类的区别

hadoop 中 的Text类与java中的String类感觉上用法是相似的,但两者在编码格式和访问方式上还是有些差别的,要说明这个问题,首先得了解几个概念: 字符集: 是一个系统支持的所有抽象字符的集合.字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.例如 unicode就是一个字符集,它的目标是涵盖世界上所有国家的文字和符号: 字符编码:是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对.即在符号集

hadoop中Configuration类剖析

Configuration是hadoop中五大组件的公用类,所以放在了core下,org.apache.hadoop.conf.Configruration.这个类是作业的配置信息类,任何作用的配置信息必须通过Configuration传递,因为通过Configuration可以实现在多个mapper和多个reducer任务之间共享信息. 类图 说明:Configuration实现了Iterable和Writable两个接口,其中实现Iterable是为了迭代,迭代出Configuration对

Hadoop中Writable类之二

1.ASCII.Unicode.UFT-8 在看Text类型的时候,里面出现了上面三种编码,先看看这三种编码: ASCII是基于拉丁字母的一套电脑编码系统.它主要用于显示现代英语和其他西欧语言.它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646.ASCII是7位字符集,是美国标准信息交换代码的缩写,为美国英语通信所设计.它由128个字符组成,包括大小写字母.数字0-9.标点符号.非打印字符(换行副.制表符等4个)以及控制字符(退格.响铃等)组成.从定义,很明显,单字节编码,现

Hadoop中Writable类

1.Writable简单介绍 在前面的博客中,经常出现IntWritable,ByteWritable.....光从字面上,就可以看出,给人的感觉是基本数据类型 和 序列化!在Hadoop中自带的org.apache.hadoop.io包中有广泛的Writable类可供选择.它们的层次结构如下图所示: Writable类对Java基本类型提供封装,short 和 char除外(可以存储在IntWritable中).所有的封装包包含get()  和 set() 方法用于读取或者设置封装的值.如下表

Hadoop中Writable类之四

1.定制Writable类型 Hadoop中有一套Writable实现,例如:IntWritable.Text等,但是,有时候可能并不能满足自己的需求,这个时候,就需要自己定制Writable类型. 定制分以下几步: 需要实现WritableComparable接口,因为Writable常常作为健值对出现,而在MapReduce中,中间有个排序很重要,因此,Hadoop中就让Writable实现了WritableComparable 需要实现WritableComparable的write().

hadoop之mapper类妙用

1. Mapper类 首先 Mapper类有四个方法: (1) protected void setup(Context context) (2) Protected void map(KEYIN key,VALUEIN value,Context context) (3) protected void cleanup(Context context) (4) public void run(Context context) setup()方法一般用来加载一些初始化的工作,像全局文件\建立数据库

hadoop的两类配置文件及3种启动/关闭方式

hadoop配置文件 默认配置文件:四个模块相对应的jar包中:$HADOOP_HOME/share/hadoop        *core-default.xml        *hdfs-default.xml        *yarn-default.xml        *mapred-default.xml    用户自定义配置文件:$HADOOP_HOME/etc/hadoop/        *core-site.xml        *hdfs-site.xml        *

使用Hadoop自己的类操作HDFS

1 package hdfs; 2 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.IOException; 6 import java.net.URI; 7 import java.net.URISyntaxException; 8 9 import org.apache.hadoop.conf.Configuration; 10 import org.apac

Hadoop中Writable类之三

1.BytesWritable <1>定义 ByteWritable是对二进制数据组的封装.它的序列化格式为一个用于指定后面数据字节数的整数域(4个字节),后跟字节本身. 举个例子,假如有一个数组bytes,里面有两个byte,bytes[0]=3,bytes[1]=5,那么,数组序列化后,其返回一个字节数组,序列化方面,可以查看我的博客<Hadoop序列化>  ,那么序列化后,其返回一个字节书组byteSeri,byteSeri里面有多少个字节? 分析: 在定义里指出,序列化格式