Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在MRJob中运行步骤之前,将S3数据加载到HDFS的具体语法示例是什么?_Java_Hdfs_Emr_Mrjob - Fatal编程技术网

Java 在MRJob中运行步骤之前,将S3数据加载到HDFS的具体语法示例是什么?

Java 在MRJob中运行步骤之前,将S3数据加载到HDFS的具体语法示例是什么?,java,hdfs,emr,mrjob,Java,Hdfs,Emr,Mrjob,当我运行我的MRJob脚本并使用CLI启动EMR集群进行工作时,我试图弄清楚如何将数据从S3加载到集群中的hdf上。我想在安装过程中这样做 为了将我的S3数据预加载到HDFS中,我已经搜索了很多地方来深入了解MRJob使用的正确语法。我仍在掌握术语和流程 MRJob在其文档中提到了JarStep和Hadoop流媒体: Yelp在以下网站上有一个讨论主题: AWS有一个工具S3DistCp来提供加载语法,示例似乎与Java相关。(我不能发布超过2个链接,但谷歌搜索会提供更多信息) 我的方法是将Ja

当我运行我的MRJob脚本并使用CLI启动EMR集群进行工作时,我试图弄清楚如何将数据从S3加载到集群中的hdf上。我想在安装过程中这样做

为了将我的S3数据预加载到HDFS中,我已经搜索了很多地方来深入了解MRJob使用的正确语法。我仍在掌握术语和流程

MRJob在其文档中提到了JarStep和Hadoop流媒体:

Yelp在以下网站上有一个讨论主题:

AWS有一个工具S3DistCp来提供加载语法,示例似乎与Java相关。(我不能发布超过2个链接,但谷歌搜索会提供更多信息)

我的方法是将JarStep作为MRStep之前的一个步骤包含在MRJob脚本的steps方法中。我试图将S3DistCp命令作为参数传入

 def steps(self):
     return [JarStep(name='jar-step', jar='s3://<bucket to jar file>', 
                     args=['--src,s3://<bucket to data>, --dest,hdfs:///<bucket>']),
             MRStep(...)
             ]
尚不清楚JarStep.INPUT是否应替换或在其他地方定义。我开始认为应该在CLI的--jobconf下传递java命令,以便它与S3DistCp文档保持一致


如果您有任何想法或只是简单的示例,请发送给我。

如果您希望将单个文件复制到hdfs,请使用下面的命令

hadoop fs-cp s3:///hdfs:///output

或者使用S3DistCp,如下所示

./elastic mapreduce--jobflow j-3GY8JC4179IOJ--jar\ /home/hadoop/lib/emr-s3distcp-1.0.jar\ --arg--s3Endpoint--arg's3-eu-west-1.amazonaws.com'\ --arg--src--arg's3://myawsbucket/logs/j-3GY8JC4179IOJ/node/'\ --arg--dest--arg'hdfs:///output' \
--arg--srcPattern--arg'.*[a-zA-Z,]+'

感谢Sandesh的快速响应。我试图将该命令与用于加速EMR实例的命令或MRJob脚本一起包含。据我所知,您列出的两个选项要求EMR已经运行。你知道MRJob脚本中的一个例子吗,作为启动作业的MRJob bash命令的一部分,或者在conf文件中?我希望有人能给你答案,我也有同样的问题
args=['naive-bayes', JarStep.INPUT, JarStep.OUTPUT]