Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.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
Python 使用Bash的Hadoop流媒体-速度有多慢?_Python_Bash_Hadoop_Mapreduce_Apache Spark - Fatal编程技术网

Python 使用Bash的Hadoop流媒体-速度有多慢?

Python 使用Bash的Hadoop流媒体-速度有多慢?,python,bash,hadoop,mapreduce,apache-spark,Python,Bash,Hadoop,Mapreduce,Apache Spark,我从几篇文章中听说,使用bash的Hadoop流式处理要比编译代码或python慢得多。这是否仅适用于排序命令等?我的剧本需要修改 -将文件复制到节点 -在节点上执行以文件为参数的商业程序 -将输出传递回文件夹 我的直觉告诉我,这应该是一个类似于编译版本的速度。是吗?Hadoop流媒体之所以被认为很慢的主要原因是,对于mapper和reducer,您必须通过stdin传递参数,这意味着您必须将它们序列化为文本,并且为了获得mapper和reducer的输出,您必须将它们从文本反序列化回Java结

我从几篇文章中听说,使用bash的Hadoop流式处理要比编译代码或python慢得多。这是否仅适用于排序命令等?我的剧本需要修改

-将文件复制到节点 -在节点上执行以文件为参数的商业程序 -将输出传递回文件夹


我的直觉告诉我,这应该是一个类似于编译版本的速度。是吗?

Hadoop流媒体之所以被认为很慢的主要原因是,对于mapper和reducer,您必须通过stdin传递参数,这意味着您必须将它们序列化为文本,并且为了获得mapper和reducer的输出,您必须将它们从文本反序列化回Java结构,这通常会耗费很多时间

如果您有一个第三方编译的应用程序,能够从stdin读取输入数据并将数据传递给stdout,那么除了在Hadoop流媒体或Spark管道中运行它之外,您别无选择。但是,本机mapreduce应用程序当然会更快,因为它在将数据传递给应用程序时不需要进行数据序列化/反序列化


但是,如果应用程序只接受文件名并自行读取文件(例如,从NFS),则速度将与本机文件相同,当然,你应该考虑到这种类型的使用既不是针对Hadoop也不是针对SCAPLE——这些框架是用API提供的,用来处理这些数据,它们提供的

不能因为RIP而被否决,但是谢谢你的回应!这对我来说很有意义。我知道这不是hadoop想要处理的工作类型,但我需要一个平台来支持google cloud上的并行计算,hadoop似乎是最好的选择。如果您的案例是将文件名传递给已编译的应用程序,您可以尝试创建自己的inputformat,这将为每个文件名提供单独的输入拆分,这样,处理单个文件的每个任务都将单独计划,并在出现故障时重新启动