`
totoxian
  • 浏览: 1032471 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Google的Sawzall,Yahoo的Pig和微软的Dryad

阅读更多
Google的Sawzall,Yahoo的Pig和微软的Dryad



Greg 最近写了篇介绍Google,Yahoo,微软三大巨头公司分布式架构的Blog。这就是:Google的Sawzall,Yahoo的Pig 猪和微软的Dryad

这真是一个信息爆炸的时代,在这个大背景里消耗CPU最多的计算会越来越多从“软件本身性能提升”逐渐转移到信息处理的过程中。描述计算速度提高的摩尔定 律,据说现在还仍然有效,可 ”Andy giveth, and Bill taketh away“ 的名言似乎应该改为:"Andy giveth, and google(...) taketh away" 了。

言归正传,Yahoo猪年行大礼,在五一期间放出了:PIG 猪 。(猪非彼 ) Yahoo Pig 是一个运行在HadoopDoug Cutting 在06年3月份加入了Yahoo 上的并行处理架构,有了Pig 使得普通的程序员具有了分析处理gigantic数据集的能力。附带一下 Hadoop 基本进入了实用阶段 Amazon 的 EC2 S3已经在使用了Hadoop了。
Yahoo Pig 有如下特点:
1、专注于于大量数据集分析(
ad-hoc analysis , ad-hoc 代表:a solution that has been custom designed for a specific problem );
2、运行在集群的计算架构上,Yahoo Pig 提供了多层抽象,简化并行计算让普通用户使用;这些抽象完成自动把用户请求queries翻译成有效的并行评估计划,然后在物理集群上执行这些计划;
3、提供类似 SQL 的操作语法;
4、开放源代码;

从对 Yahoo Pig 的了解来看,推荐大家使用,Google Sawzall 和 Microsoft Dryad 就别指望了。

Google Sawzall 是google labs 很早就释放出来了,虽然两者都是定位于分布式并行计算的架构,实现方式却大相径庭。
Sawzall 是基于MapReduce 的,变成语法类似于 java 和 c 语言。

下面是 Sawzall 代码的例子:
proto "querylog.proto"
static RESOLUTION: int = 5; # minutes; must be divisor of 60
log_record: QueryLogProto = input;
queries_per_degree: table sum[t: time][lat: int][lon: int] of int;
loc: Location = locationinfo(log_record.ip);
if (def(loc)) {
t: time = log_record.time_usec;
m: int = minuteof(t); # within the hour
m = m - m % RESOLUTION;
t = trunctohour(t) + time(m * int(MINUTE));
emit queries_per_degree[t][int(loc.lat)][int(loc.lon)] <- 1;
}
下面是Pig 代码的例子:
a = COGROUP QueryResults BY url, Pages BY url;
b = FOREACH a GENERATE FLATTEN(QueryResults.(query, position)), FLATTEN(Pages.pagerank);
c = GROUP b BY query;
d = FILTER c BY checkTop5(*);

很显然,如果大家需要对结构化(半结构化)的数据进行分析处理时 Pig 的 SQL 的语法更便于掌握。

具体参考Yahoo Pig 的其他例子:

Pig Latin Examples:
Example 1: Word Count
Example 2: Map/Reduce
Example 3: Pages and Queries
Example 4: PageRank


无独有偶,微软的Dryad 集成Linq (随着.net 2.0 正式发布了) 后叫: DryadLINQ 。从个人角度讲我一直看好 Linq 这个产品,出身Aders不说,程序语言和数据处理合2为1对简单的Insert ,update ,delete,query 完全应该集成起来。这一点也是我喜欢Rails的原因吧。



目前微软的 Dryad 已经在 Microsoft's AdCenter 投入使用。


我想用Yahoo Pig 的话,做 Log 分析应该比较适合。

参考资料:
sourcelab
Dryad: Distributed Data-Parallel Programs from Sequential Building Blocks

MapReduce BBS
分享到:
评论

相关推荐

    sawzall

    Google并行计算构架

    google Sawzall 论文

    超大量的数据往往会采用一种平面的正则结构,存放于跨越多个计算机的多个磁盘上。这方面的例子包括了电话通话记录,网络日志,web文档库等等。只要这些超大量的数据集不能装在单个关系数据库里边的时候,传统的...

    论文研究-Sawzall语言的实现和扩充 .pdf

    Sawzall语言的实现和扩充,王海波,,在互联网信息爆炸性增长的背景下,MapReduce作为一种解决随之而来的大规模数据处理问题的成熟方案被广泛应用于分布式grep、web访问日��

    海量数据分析Sawzall并行处理

    海量数据分析:Sawzall并行处理 本文档是在网上搜索到了,迷失了原文档的地址,表示歉意! 译者信息,和感谢如下: 崮山路上走9遍2005-8-5于大连完稿 BLOG: sharp838.mblogger.cn EMAIL: sharp838@21cn.com;...

    Sawzall编译器Szl.zip

    Szl 是 Google Sawzall 语言日志数据统计聚合,是 Sawzall 语言的编译器和运行时工具。

    海量数据分析:Sawzall并行处理.rar

    海量数据分析:Sawzall并行处理

    谷歌论文经典中文版

    Google的经典论文中文版 Cluster:发表于2003 年,主要介绍Google 的集群架构,对Google 搜索系统的 架构也进行了简单介绍 GFS:发表于2003 年,介绍了Google 分布式文件系统的设计及实现。Hadoop 中 与之对应的是...

    Google的十个核心技术

    本文主要简单介绍Google的十个核心技术,而且可以分为...2.分布式大规模数据处理:MapReduce和Sawzall。 3.分布式数据库技术:BigTable和数据库Sharding。 4.数据中心优化技术:数据中心高温化,12V电池和服务器整合。

    典型云计算平台介绍.doc

    典型云计算平台介绍 (1)Google 的云计算平台 Google的硬件条件优势,大型的数据中心、搜索引擎的支柱应用,促进Google云计 算迅速发展。Google的云计算主要由MapReduce、Google文件系统(GFS)、BigTable组成 。它们...

    java餐桌点餐系统源码-GoogleBlog:谷歌实习

    java餐桌点餐系统源码 ...Python,一些工具性的语言:Sawzall,protobuf 等,还有一些“build file”和所有第三方的库。Grok 的初期设计目标是一个静态的代码索引服务,只要程序员点击任何一个变量或者函数名,就

Global site tag (gtag.js) - Google Analytics