您的位置:首页 > 编程语言 > Ruby

Ruby调用Hadoop集群实战(草稿)

2016-06-20 09:26 603 查看
核心: 使用Hadoop Streaming来兼容非Java的编程语言, 如 Ruby, Python, php

目录:

一个例子

一个python的WordCount

Hadoop Streaming的机制
只要使用Unix标准输入输出 任何语言都可以使用Hadoop

几种Hadoop编程方式比较

一个例子

转自http://sishuok.com/forum/blogPost/list/5442.html

一个python的WordCount

转自http://shiyanjun.cn/archives/336.html

Hadoop Streaming的机制

只要使用Unix标准输入输出, 任何语言都可以使用Hadoop

几种Hadoop编程方式比较

转自http://dongxicheng.org/mapreduce/writing-hadoop-programes/

(1)java。 Hadoop支持的最好最全面的语言,而且提供了很多工具方便程序员开发。

(2)Hadoop Streaming。 它最大的优点是支持多种语言,但效率较低,reduce task需等到map 阶段完成后才能启动; 它只支持text数据格式. 它不支持用户自定义InputFormat, 请使用Hadoop自带的TextInputFormat或KeyValueTextInputFormat. 如果用户想指定输入文件格式,在命令行中指定分隔符, 具体来说:

1. Hadoop默认的InputFormat是TextInputFormat,它将文件中的每一行作为value,该行的偏移量为key。
2. 如果你的输入是文本文件,且每一行包括key,value,则可使用Hadoop中自带的KeyValueTextInputFormat,
它默认的每行是一个key/value对,且key与value的分割如为TAB(’\t‘)
如果想修改key/value之间的分隔符,如将分割符改为“,”,可使用命令行参数:
-D key.value.separator.in.input.line=,。


(3)Hadoop Pipes。 专门为C/C++语言设计,由于其采用了socket方式让C/C++与java通信,因而其效率较低(其优势在于,但作业需要大量,速度很快)。它支持用户(用C/C++)编写RecordReader。

(4)Pydoop。它是专门方便python程序员编写MapReduce作业设计的,其底层使用了Hadoop Streaming接口和libhdfs库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop ruby