《hadoop实战》笔记2

编写MapReduce基础程序


MapReduce程序框架


1. 典型的hadoop程序模板
框架的核心在run()方法中,也成为driver。它实例化、配置并传递一个JobConf对象命名的作业给JobClient.runJob()以启动MapReduce作业

2. driver配置


3. API变化


4. hadoop中的Streaming
Streaming完全采用 文本方式处理数据,不知道其他的数据类型
hadoop支持用其他非java语言编写程序,要用到Streaming的通用API,开发快捷,充分利用其他非java库
hadoop streaming使用Unix中的流与程序进行交互
通过Unix命令使用Streaming:
bin/hadoop jar conrtib/streaming/hadoop-0.19.1-streaming.jar
-input input/cite75_99.txt ---设定输入文件
-output output ---设定输出文件
-mapper 'cut -f 2 -d ,' ---cut命令提取第二列,并声明列是被逗号分隔的
-reducer 'uniq' ---对排序后的数据进行去重

-mapper 'wc -l'     ---统计每个分片中的记录数
-D mapred.reduce.tasks=0---mapper直接输出结果不经过reducer
通过脚本使用Streaming:
可使用任何可执行的脚本来处理按行组织的数据流,数据取自Unix的标准输入STDIN,并输出到STDOUT。
脚本从STDIN采样数据
cat input.txt | RandomSample.py 10 >sampled_output.txt 参数10表示sampled_output.txt大约包含input.txt中十分之一的记录
数据采样(采样处理较小数据集带来 速度和便利)产生的 精度损失重要程度取决于要计算的什么以及数据集如何分布
bin/hadoop jar conrtib/streaming/hadoop-0.19.1-streaming.jar
-input input/cite75_99.txt ---设定输入文件
-output output ---设定输出文件
-mapper 'RandomSample.py 10‘
-file RandomSample.py
-D mapred.reduce.tasks=1---没有设定特殊的reducer,默认采用IdentityReducer,把输入直接转向输出
Aggregate软件包
功能:数据集的汇总统计
命令:
-reducer aggregate

5. 使用Combiner提升性能

计数统计的MapReduce基础程序


支持用脚本语言编写MapReduce程序的Hadoop流式API


用于提升性能的Combiner


高阶MapReduce


编程实战


细则手册


管理Hadoop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值