Facebook数据仓库揭秘:RCFile高效存储结构

本文介绍了Facebook公司数据分析系统中的RCFile存储结构,该结构集行存储和列存储的优点于一身,在MapReduce环境下的大规模数据分析中扮演重要角色。 Facebook曾在2010 ICDE(IEEE International Conference on Data Engineering)会议上介绍了数据仓库Hive。Hive存储海量数据在Hadoop系统中,提供了一套类数据库的数据存储和处理机制。它采用类 SQL语言对数据进行自动化管理和处理,经过语句解析和转换,最终生成基于Hadoop的MapReduce任务,通过执行这些任务完成数据处理。图1显示了Hive数据仓库的系统结构。

ri java中访问memcache

用spy和memcached for  java两种方式对memcache进行操作   一、spy package com.test.memcache; import java.net.InetSocketAddress; import java.util.concurrent.Future; import net.spy.memcached.MemcachedClient; public class SpyTest { public void putObject() { try { MemcachedClient mc = new MemcachedClient(new InetSocketAddress(“127.0.0.1”, 11211)); Future<Boolean> b = null; b = mc.set(“key1”, 60, “hello1”); // 如果以前存在,则会自动覆盖

Facebook的Hadoop应用与故障转移

我们曾提到在短短的60秒内,Facebook的用户会分享684478条信息,Like按钮被点击34772次。庞大的业务量时刻考验着Facebook的数据处理能力。我们知道,Facebook使用Hadoop来进行大数据的处理,但Facebook又是如何保障频繁、庞大的数据请求等高压环境下不发生故障的呢?我们一起来了解一下Facebook内部的Hadoop使用情况以及其NameNode故障转移技术。 Google在2004年创造了MapReduce,MapReduce系统获得成功的原因之一是它为编写需要大规模并行处理的代码提供了简单的编程模式。MapReduce集群可包括数以千计的并行操作的计算机。同时MapReduce允许程序员在如此庞大的集群中快速的转换数据并执行数据。它受到了Lisp的函数编程特性和其他函数式语言的启发。MapReduce和云计算非常相配。MapReduce的关键特点是它能够对开发人员隐藏操作并行语义 — 并行编程的具体工作方式。 HDFS(Hadoop Distributed Filesystem)是专为MapReduce框架而下大规模分布式数据处理而设计的,HDFS可将大数据集(TB级)存储为单个文件,而大多文件系统并不具备这样的能力。(编者注:NTFS5 Max Files on Volume:264 bytes (16 ExaBytes) minus 1KB,1EB = 1,000,000 TB)。这也是HDFS风靡全球的重要原因。

ri Java MapReduce

Java MapReduce 明白MapReduce 程序的工作原理之后,下一步便是通过代码来实现它。我们需要三样东西:一个map 函数、一个reduce 函数和一些用来运行作业的代码。map函数由Mapper 接口实现来表示,后者声明了一个map()方法。例2-3 显示了我们的map函数实现。 例2-3. 查找最高气温的Mapper