我有两个大文件,将它们上传到一个名为“ccssdd”的amazons3 bucket中,并创建了一个名为data的文件夹:data/friendships.xml data/users.xml
用户结构为
<user>
<id>1</id>
<age>24</age>
<x>4</x>
<y>7</y>
<interest>football</ineterest>
</user>
<user>
..
以及
<friendship>
<user1>1</user1>
<user2>3</user2>
</friendship>
<friendship>
..
我需要编写一个jobjar在amazon上运行它:计算每个用户的好友数。
我知道我应该从每个友谊元素中生成成对的元素作为map函数的输出,在reduce函数中,我应该为每个userid求和“1”。
我知道我可以在eclipse中运行我的应用程序来生成.jar作业文件,但我不知道应该下载什么库并添加到项目中。
2-我真的不知道如何将我的应用程序连接到s3!然后逐个获取xml元素并从中提取用户id
请帮我一下。我发现这个教程和我的问题非常相似,但是当我把它复制到eclipse时,几乎每一行都会出错,没有一个.org库是已知的,而且。。。另外,我不知道如何访问s3上的数据文件。。。
1条答案
按热度按时间zour9fqk1#
这里有一种方法。
使用cloudera、maprr或其他任何地方的发行版,并使用发行版中可用的hadoop版本(jar)。确保你在当地彻底地测试你的工作,这样你就有信心一切正常。这是因为亚马逊会按每小时收费(每台机器),即使你的工作只有30秒就失败了。
一旦你有信心,创建一个“uberjar”,包含你所有的代码和你使用的hadoopjar中的所有类。
将jar和数据上传到s3,如本优秀教程所述。emr与s3无缝配合。
按照教程中所述运行作业。如果出现问题,请在作业完成后等待一段时间检查日志,因为存在延迟。
希望有帮助。