hadoop初学之--------程序格式

Hadoop中写入Hdfs中文件的两种方式:

1. 以文件为单位

String localSrc = args[0];

String dst = args[1];

InputStream in = new BufferednputStream(new FileInputStream(localSrc));

Configuration conf = new Configuration();

FileSysetm fs = FileSystem.get(URI.create(dst), conf);

OutputStream out = fs.create(new Path(dst));

IOUtils.copyBytes(int, out, 4096, true);//参数3:缓冲区大小;参数4:文件操作结束后是否关闭数据流

/**

java.lang.Object--->java.net.URI

*/

2. 以行为单位

String localSrc = args[0];

String dst = args[1];

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(localSrc)));

Configuration conf = new Configuration();

FileSysetm fs = FileSystem.get(URI.create(dst), conf);

(Fs)DataOutputStream out = fs.create(new Path(dst));

while ((line = in.readLine()) != null ) {

      out.writeBytes(line);

      out.writeChar('\n');

      out.flush();

}

3. Hadoop常用命令

hadoop fs -ls

hadoop fs -cat

hadoop fs -rmr 

hadoop fs -mkdir directoryName

4. Hadoop编程中main函数的典型写法

Job job = new Job();

job.setJarByClass(Program.class);

 

FileInputFormat.addInputPath(job, new Path(args[0]));

FileOutputFormat.setOutputPath(job, new Path(args[1]));

 

job.setMapperClass(Program.class);

job.setReducerClass(Program.class);

 

job.setOutputKeyClass(Text.class);

job.setOutputValueClass(IntWritable.class);

 

System.exit(job.waitForCompletion(true) ? 0 : 1);


 

 5. Hadoop中Path的两种构造方法

Path(String pathString);Resolve a path from a String

Path(String parent, String child);Resolve a child path against a parent path

6. Hadoop的MapReduce编程是一种函数式编程风格:在已知输入的情况下,得到已知的输出

7. map任务是由MapRunner负责运行的,它是默认的MapRunnable的实现,并且顺利地为每一条记录执行一次mapper的map()任务。

默认的partitioner是HashPartitioner,它将每条记录的键进行哈希处理来决定某条记录应该放到哪个分区上。每个分区上会对应一个reducer,所以分区的个数和reducer的个数是相同的。

默认的reducer是IdentityReducer,同样,它也是一个泛型。

 

8. 一个输入分片(input split)就是能够被单个map操作处理的输入块。每一个map操作只处理一个输入分片,并且 一个一个地处理每条记录,即一个键值对。

 9. jobtracker与tasktracker

10.  InputFormat : getRecordReader(), RecordReader

       FileInputFormat : public static void addInputPath(Job job, new Path(String ));

       FileInputFormat只会分割大文件,即大于HDFS块大小的文件(默认为64M).

11. TextInputFormat是默认的InputFormat,每一行数据都是一条记录。它的键是LongWritable类型的,存储该行在整个文件中的偏移量(以字节为单位)。而值是行中的数据内容,不包括任何行终止符,是Text类型的。

12. Reduce操作的输入键一定是有序的,但输出时的键不一定是有序的。

13. Mapper中map的实现:

 

protected void map(KEYIN key, VALUEIN value,  Context context) 

    throws IOException, InterruptedException {

    context.write((KEYOUT) key, (VALUEOUT) value);

  }

Reducer中reduce的实现:

protected void reduce(KEYIN key, Iterable<VALUEIN> values, Context context )

     throws IOException, InterruptedException {

    for(VALUEIN value: values) {

      context.write((KEYOUT) key, (VALUEOUT) value);

    }

  }


与0.20版本以前的IndentityMapper、IndentityReducer相同。

14. 在Hadoop中Mapper对应的输出格式的設定为setMapOutputKeyClass()与setMapOutputValueClass()

     而Reducer对应的输出格式的設定为setOutputKeyClass()与setOutputValueClass()。

如果不設定,则Mapper的输出格式以Reducer的输出格式为准。但此时若程序中map()中設定的key与value的格式不是Reducer中的输出格式,则虽不会报错,但极有可能最終什么也不会输出。即在Mapper与Reducer的输出格式不同时,要单独对Mapper的输出格式进行設定。

15. 若想对前一个MapReduce输出的文件进行读取,务必保证前一个MapReduce中設定的FileOutputFormatClass与后一个MapReduce中設定的FileInputFormatClass中設定的输入输出格式一致。否则,极有可能什么也读不出来。

16. 在map与reduce函数中,可以对类的全局变量进行操作,与普通成员方法中对全局变量的操作无异。


文章来源:http://hi.baidu.com/shdren09/item/b9c80944269a95e4bcf45138



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: hadoop-eclipse-plugin2.10.1是一个适用于eclipse集成开发环境的Hadoop插件。Hadoop是一个开源的分布式计算框架,用于处理大规模数据集。在处理大数据时,Hadoop提供了高可靠性、高可扩展性和高容错性的架构。而hadoop-eclipse-plugin2.10.1插件的作用就是方便开发人员在eclipse中进行Hadoop应用程序的开发和调试。 使用hadoop-eclipse-plugin2.10.1插件,我们可以在eclipse中创建和管理Hadoop项目,可以方便地编写、调试和运行Hadoop应用程序。该插件提供了一个Hadoop图形界面,在eclipse的界面中显示Hadoop集群的状态和作业信息,使开发人员可以更加直观地了解Hadoop集群的运行情况。 此外,hadoop-eclipse-plugin2.10.1还通过提供Hadoop项目的模板和代码自动生成工具,简化了Hadoop应用程序的开发过程。开发人员可以选择合适的模板,根据自己的需求生成Hadoop应用程序的基本骨架,从而加快应用程序的开发速度。 总之,hadoop-eclipse-plugin2.10.1是一个强大的Hadoop开发工具,它使得在eclipse中进行Hadoop应用程序的开发和调试变得更加简单和高效。无论是初学者还是熟练的开发人员,都可以通过这个插件来更好地利用Hadoop的强大功能,处理和分析大规模的数据集。 ### 回答2: hadoop-eclipse-plugin 2.10.1 是一款用于在 Eclipse IDE 中开发和调试 Hadoop 应用程序的插件。Hadoop 是一个开源的分布式计算框架,可实现高容错性和高可伸缩性,用于处理大规模数据集的分布式计算。 该插件提供了一系列工具和功能,使开发人员可以更轻松地在 Eclipse 中编写和调试 Hadoop 应用程序。使用该插件,开发人员可以在 Eclipse 中创建和管理 Hadoop 项目,编写 MapReduce 任务,并进行本地调试和单元测试。 hadoop-eclipse-plugin 2.10.1 支持各种 Hadoop 版本,包括 Hadoop 1.x 和 Hadoop 2.x。它包含了与 Hadoop 兼容的文件系统和作业操作的 API,可以在 Eclipse 中连接到 Hadoop 集群。该插件还提供了一个可视化的用户界面,用于管理 Hadoop 集群和作业的监控和调度。 使用 hadoop-eclipse-plugin 2.10.1,开发人员可以方便地创建和管理 Hadoop 集群,上传和下载文件,运行和监控作业等。此外,该插件还提供了一键进行本地调试的功能,方便开发人员在开发过程中快速验证和调试代码。 总结而言,hadoop-eclipse-plugin 2.10.1 是一个功能强大的插件,为开发人员提供了在 Eclipse 中开发和调试 Hadoop 应用程序的便利。通过该插件,开发人员可以更高效地开发和测试 Hadoop 应用程序,提高开发效率和应用程序的质量。 ### 回答3: hadoop-eclipse-plugin2.10.1是一款Hadoop和Eclipse集成的插件。Hadoop是一个用于存储和处理大规模数据集的开源框架,而Eclipse是一种流行的集成开发环境(IDE),用于开发各种应用程序hadoop-eclipse-plugin2.10.1提供了一系列功能,使开发人员能够在Eclipse中更方便地进行Hadoop应用程序的开发和调试。它提供了Hadoop项目模板,可以帮助我们快速创建和配置Hadoop项目。同时,插件还提供了Hadoop任务以及作业的运行和监视功能,让开发人员可以直接在Eclipse中执行和监控Hadoop任务。 除了基本功能外,hadoop-eclipse-plugin2.10.1还提供了一些高级功能,包括对Hadoop文件系统的浏览和管理、Hadoop集群的状态监控、Hadoop任务的调试功能等。这些功能使得开发人员能够更加高效地开发、测试和调试Hadoop应用程序。 要使用hadoop-eclipse-plugin2.10.1,首先需要在Eclipse中安装插件。安装完成后,可以通过创建Hadoop项目或导入现有的Hadoop项目来开始开发。在项目中,可以使用插件提供的各种功能来进行Hadoop任务的执行和监视,以及文件系统的管理和调试等操作。 总之,hadoop-eclipse-plugin2.10.1是一个方便的插件,能够帮助开发人员更好地在Eclipse中开发和调试Hadoop应用程序。它提供了一系列功能,使得Hadoop的开发工作更加高效和便捷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值