MapReduce在EMR上运行

一 MapReduce原理

1 主程序及输入输出位置

  • 输入:S3://yourBucketName/input/tweetData
  • 输出:S3://yourBucketName/output/
  • Jar : S3://yourBucketName/jar/tweetSentiment.jar

2 输入输出格式

#输入格式示例
2015-05-13|20:24:47 @Aero_vs_Aaron some times don't be fake can get to know each other

#输出格式 
#时间段 推文数量 无效字段 正面得分 反面得分
2015-05-14|10:00 36 1   40.0 40.0
2015-05-14|9:00 29 1    33.0 37.0
totalSentiment 100 1    127.0 121.0

3 Map

Map做了以下工作:

  • 对于每一行输入,确定推文的时间段并对推文内容进行预处理
  • 对单个推文计算正面分数和反面分数
  • 输出正面分数和反面分数 key为时间段

4 Reduce

Reduce做了以下工作:

  • 计算正面分数之和和反面分数之和
  • 输出

二 集群开启

设置1:主要是设置终止保护和日志位置;

MapReduce在EMR上运行_第1张图片
Config-1

设置2:设置Hadoop版本,这里是AMAZON的2.2.0

MapReduce在EMR上运行_第2张图片
Config-2

设置3:设置EC2实例数量和配置,设置EC2访问键值对,设置IAM角色

MapReduce在EMR上运行_第3张图片
Config-3

设置4:添加新步骤,各种类型Map/Reduce任务,不过无需这里添加

MapReduce在EMR上运行_第4张图片
Config-4

集群开启成功

MapReduce在EMR上运行_第5张图片
cluster create success

三 MapReduce在EMR上执行

只要执行MapRManager.runJob()方法即可

这里的集群ID需要复制到MapRManager.java中JobFlowID参数中

MapReduce在EMR上运行_第6张图片
Copy cluster ID
MapReduce在EMR上运行_第7张图片
Running

步骤执行完毕一段时间会在S3中产生四个日志文件,方便进行调试

MapReduce在EMR上运行_第8张图片
Steps
MapReduce在EMR上运行_第9张图片
Jobs
MapReduce在EMR上运行_第10张图片
Tasks
MapReduce在EMR上运行_第11张图片
Logs-SysLog

你可能感兴趣的:(MapReduce在EMR上运行)