MOMOJI.故事接龙·让我们一起讲故事,做个有故事的人

随手记

~关于 hadoop streaming~
{ 任一段落可 [ 切到该章节 ] 进行续写接龙 }

~随手记~

随手随记

随手记 by 飞~甜 @ 2019-06-13 16:57:04

切到该章 收藏 从此续写

~tech notes~

技术笔记开篇.

tech notes by 佚名 @ 2020-03-06 21:36:45

切到该章 收藏 从此续写

~hadoop mapreduce by streaming with python~

以经典的推荐算法中的协同过滤算法为例,看一下如何在hadoop的mapreduce机制上实现.

hadoop mapreduce by streaming with python by 佚名 @ 2020-03-06 21:40:45

切到该章 收藏 从此续写

~算法细分~

user-based和item-based

其user-item-rating数据具有共同的特点:量大/稀疏;

步骤相同:

1.构造user-item-rating矩阵;

2.计算相似度;

3.找top n,计算矩阵中未知的rating;

其中核心问题是计算user或者item的最近邻或者相似度;

相似度算法包括:pearson, cosin, ...

算法细分 by 佚名 @ 2020-03-06 22:56:39

切到该章 收藏 从此续写

~hadoop streaming~

hadoop streaming实现的目标是:可以让任何语言编写的mapreduce程序都能在hadoop上运行;前提是这些map reduce程序遵循标准输入输出(stdin/stdout).

这简直是python党的福音,python有丰富的数据处理包,numpy/pandas/...,加之其动态脚本的特性,可以灵活的修改,免除类似java各种依赖编译之苦...

hadoop streaming by 佚名 @ 2020-03-06 23:05:18

切到该章 收藏 从此续写

~关于 hadoop streaming~

Hadoop为MapReduce提供了不同的API,可以方便我们使用不同的编程语言来使用MapReduce框架,而不是只局限于Java。这里要介绍的就是Hadoop streaming API。Hadoop streaming 使用Unix的standard streams作为我们mapreduce程序和MapReduce框架之间的接口。所以你可以用任何语言来编写MapReduce程序,只要该语言可以往standard input/output上进行读写。 

streamming是天然适用于文字处理的(text processing),当然,也仅适用纯文本的处理,对于需要对象和序列化的场景,hadoop streaming无能为力。它力图使我们能够快捷的通过各种脚本语言,快速的处理大量的文本文件。以下是steaming的一些特点:

1.Map函数的输入是通过stand input一行一行的接收数据的。(不像Java API,通过InputFormat类做预处理,使得Map函数的输入是有Key和value的)

2.Map函数的output则必须限定为key-value pair,key和value之间用\t分开。(MapReduce框架在处理intermediate的Map输出时,必须做sort和partition,即shuffle)

3.Reduce函数的input是Map函数的output也是key-value pair,key和value之间用\t分开。

关于 hadoop streaming by 佚名 @ 2020-03-07 19:47:28

切到该章 收藏 从此续写

last by 匿名 @ 2020-03-07 19:47:28

章节模式 复制地址