关闭

hadoop学习001

199人阅读 评论(0) 收藏 举报

1,mac安装eclipse

2,在eclipse上配置hadoop开发环境

3,重写hadoop中wordcount例子

  • 新建Map/Reduce Project,写入wordcount源码
  • 如果GenericOptionsParser类找不到,则在Build Path的Libraries添加位于hadoop目录下build/ivy/lib/Hadoop/Common下的commons-cli-1.2.jar包
  • 在工程目录下添加in文件夹,并添加若干个文本文件,使用Run on Hadoop编译
  • 编译中出现NoClassDefFoundError :org/apache/commons/logging/LogFactory异常,则需要添加Commons-logging-1.0.4.jar包
  • 运行后结果中只有usage <in> <out>,选择Run Configuration设置入口参数为 in out
  • 成功运行后工程目录会出现out文件夹,cat out/*查看文件内容即为结果
4,wordcount分析
  • 定义Configuration对象管理配置文件,Configuraton conf = new Configuration(); 应该是采用默认配置
  • 定义Job,并起个名字,Job job = new Job(conf, "word count");
  • 设置Mapper类,Combiner类,Reducer类,job.setMapperClass(TokenizerMapper);
  • 设置输出的key和value类型,job.setOutputKeyClass(Text.class);
  • 设置输入输出文件目录,FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
  • Hadoop的核心思想是分而治之,即由Mapper函数划分工作,Reducer函数汇总结果
  • 针对wordcount的处理过程如下:

注释:

  • 输入为两个文件,mapper则划分成两个任务(红,绿)
  • mapper输入为<首字母偏移, 一行内容>
  • combiner相当于本地的reducer,是hadoop的一种优化策略,可在一定程度上减少网络间数据传输量

  



0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1812次
    • 积分:120
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档
    最新评论