hadoop - Hadoop Map/Reduce 程序使用哪种语言? Java 还是 PHP?

标签 hadoop

<分区>

我最近用 java 编写了几个 map/reduce 程序。但是我也知道像php这样的脚本语言也是可以的。但是,大多数人都推荐 java 或 python。我目前在 php 工作。所以我想知道哪种语言更适合 map/reduce 程序开发?

用于 map/reduce 实现的 php 的一个主要缺点是,它不是多线程的。 此外,hadoop 具有广泛的类、接口(interface)和方法框架,专门用 java 编写,而 php 程序无法使用。而且,php 并不是为处理繁重的数据处理任务而设计的。

那么谁能从广义上告诉我选择哪一个作为 map/reduce 实现的首选武器?

最佳答案

shanthanu,你的第一个问题是

问)哪种脚本语言适合 hadoop?

A) 大多数脚本语言如 php、python、perl、ruby bash 都不错。任何能够从 stdin 读取、写入 sdtout 以及解析制表符和换行符的语言都可以工作:Hadoop Streaming 只是将键值对的字符串表示与制表符连接到任意程序,该程序必须在每个任务跟踪器节点上执行.

在大多数用于设置 hadoop 集群的 linux 发行版上,python、bash、ruby、perl...都已经安装,但没有什么可以阻止为您最喜欢的脚本或编译的编程语言构建您自己的执行环境。

问)PHP 不是多线程的吗?

A) 是的,但是,我们可以通过一些方法使 PHP 成为多线程的。例如使用:pnctl_fork()(但是,这在 Windows 中不起作用)

在使用 hadoop 使用脚本语言之前,您应该始终牢记的问题不是“哪种脚本语言?”因为什么都可以。

但是,java和脚本语言的区别,就是“当我们使用脚本语言时,子节点的心跳不会发送到父节点”。

关于hadoop - Hadoop Map/Reduce 程序使用哪种语言? Java 还是 PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8572339/

相关文章:

hadoop - 限制要在群集中的任何其他节点上安装并运行secondarynamenode

hadoop - Amazon Emr - 当我们拥有核心节点时,任务节点的需求是什么?

linux - 如何在 hadoop worker 机器之间同步配置

java - 在Hadoop中使用BlazingCache开源会降低性能

hadoop - Hbase 区域请求不平衡

amazon-web-services - Hadoop配置属性

java - 使用 FileUtil API 在同一个 hdfs 中复制文件需要太多时间

hadoop - 记录读取器拆分将固定长度转换为定界ASCII文件

java - Hadoop从绝对路径和基本路径获取相对路径

architecture - 针对大数据问题的可伸缩体系结构解决方案的建议