Hadoop 如何从S3获取数据并将其用于弹性映射reduce/在何处编写代码?
我有两个大文件,已将它们上载到名为“ccssdd”的Amazon S3存储桶中,并创建了一个名为data的文件夹: data/friendships.xml data/users.xml 用户的结构是Hadoop 如何从S3获取数据并将其用于弹性映射reduce/在何处编写代码?,hadoop,amazon-s3,mapreduce,elastic-map-reduce,amazon-emr,Hadoop,Amazon S3,Mapreduce,Elastic Map Reduce,Amazon Emr,我有两个大文件,已将它们上载到名为“ccssdd”的Amazon S3存储桶中,并创建了一个名为data的文件夹: data/friendships.xml data/users.xml 用户的结构是 <user> <id>1</id> <age>24</age> <x>4</x> <y>7</y> <interest>footb
<user>
<id>1</id>
<age>24</age>
<x>4</x>
<y>7</y>
<interest>football</ineterest>
</user>
<user>
..
1.
24
4.
7.
足球
..
及
1.
3.
..
我需要编写一个作业jar,在Amazon Elastic Map Reduce上运行它来计算:
查找每个用户的好友数
我知道我应该从每个友谊元素中生成成对的元素作为map函数的输出
在reduce函数中,我应该为每个用户标识加上“1”
我知道我可以在eclipse中运行我的应用程序来生成.jar作业文件,但我不知道应该下载哪些库并添加到项目中
2-我真的不知道如何将我的应用程序连接到s3!然后逐个获取xml元素并从中提取用户id
请帮我一下。
我发现这个教程与我的问题非常相似,但是当我将它复制到eclipse时,几乎每一行都会出现错误,没有一个.org库是已知的,并且。。。
另外,我不知道如何访问S3上的数据文件…这里有一种方法
- 使用Cloudera、MaprR或任何地方的发行版,并使用发行版中可用的Hadoop版本(JAR)。确保你在当地彻底地测试你的工作,这样你就有信心一切正常。这是因为亚马逊会按小时收费(每台机器),即使你的工作在失败前只持续30秒
- 一旦你有信心,创建一个“uber jar”,其中包含你所有的代码和你使用的Hadoop jar中的所有类
- 如本文所述,将jar和数据上传到S3。EMR与S3无缝协作
- 按照教程中的说明运行作业。如果出现问题,请在作业完成后等待一段时间检查日志,因为存在延迟
- 使用Cloudera、MaprR或任何地方的发行版,并使用发行版中可用的Hadoop版本(JAR)。确保你在当地彻底地测试你的工作,这样你就有信心一切正常。这是因为亚马逊会按小时收费(每台机器),即使你的工作在失败前只持续30秒
- 一旦你有信心,创建一个“uber jar”,其中包含你所有的代码和你使用的Hadoop jar中的所有类
- 如本文所述,将jar和数据上传到S3。EMR与S3无缝协作
- 按照教程中的说明运行作业。如果出现问题,请在作业完成后等待一段时间检查日志,因为存在延迟
希望能有所帮助。非常感谢您的回答。我已经看过那个教程了,但是没有关于其中代码的解释。我真的不知道map和reduce函数的输入是什么!我不知道每个论点是什么,也不知道如何根据我的申请改变它们。那么你的问题是如何写一份MR作业。有很多关于这方面的教程,所以你应该很好。它基本上是字数统计,但使用XML。听起来很有趣!非常感谢你的回答。我已经看过那个教程了,但是没有关于其中代码的解释。我真的不知道map和reduce函数的输入是什么!我不知道每个论点是什么,也不知道如何根据我的申请改变它们。那么你的问题是如何写一份MR作业。有很多关于这方面的教程,所以你应该很好。它基本上是字数统计,但使用XML。听起来很有趣!
<friendship>
<user1>1</user1>
<user2>3</user2>
</friendship>
<friendship>
..