use*_*842 8 amazon-s3 hdfs amazon-emr emr
我觉得将EMR连接到Amazon S3是非常不可靠的,因为它依赖于网络速度.
我只能找到描述S3位置的链接.我想将EMR用于HDFS - 我该怎么做?
您可以使用hdfs输入和输出路径hdfs:///input/.
假设您已将作业添加到群集,如下所示:
ruby elastic-mapreduce -j $ jobflow --jar s3:/my-jar-location/myjar.jar --arg s3:/ input --arg s3:/ output
相反,如果您需要它在hdfs上,您可以如下所示:
ruby elastic-mapreduce -j $ jobflow --jar s3:/my-jar-location/myjar.jar --arg hdfs:/// input --arg hdfs:/// output
为了与EMR集群上的HDFS交互,ssh到主节点并执行常规HDFS命令.例如,要查看输出文件,您可以执行以下操作:
hadoop fs -get hdfs://output/part-r-0000 /home/ec2-user/firstPartOutputFile
Run Code Online (Sandbox Code Playgroud)
但是,如果您正在使用瞬态集群,则不鼓励使用原位HDFS,因为当集群终止时您将丢失数据.
我也有基准测试证明使用S3或HDFS不会提供太多的性能差异.对于~200GB的工作量: - 作为输入源在22秒内完成作业 - 作为输入源,作业在20秒内完成
EMR经过超级优化,可以从S3读取/写入数据.
对于中间步骤,输出写入hdfs是最好的.因此,如果您的管道中有3个步骤,那么您可能具有如下输入/输出:
| 归档时间: |
|
| 查看次数: |
7046 次 |
| 最近记录: |