Hadoop五分钟入门指南
原文见:http://blog.josedacruz.com/2013/12/09/hadoop-in-5-minutes-for-beginners/#.Uqhs3_Q6Cjt
如果你有大量的数据(TB级),而且这些数据到处分散,且有些数据是结构化的,有些数据不是。你想查询这些数据,你或许在想,“我需要力量来组织和查询这些数据”。是的,你需要Hadoop。
一、什么是Hadoop?
Apache Hadoop软件库是一个框架,它可以对大数据集使用简单的编程模型做跨集群的分布式处理。Hadoop在设计上可以从单服务器节点扩展到成千上万的服务器节点,每个节点都能提供本地计算和存储。
HDFS——分布式文件系统,MapReduce模式的实现。
HDFS是一个文件系统,分布在系统中的所有机器上,但是你只能把它视为单个的文件系统,因为它是分布式的、跨主机的。那么,我的本地文件系统是怎样的?HDFS工作于本地文件系统之上。
MapReduce 是一个模式,处理大数据集(当然你也可以用于处理小数据集,因为MapReduce只是一个模式,而不是产品,它可以使用任意编程语言来实现)。 Hadoop使用MapReduce模式运行数据集上的查询。(它使用任务Task、工作Job等处理你的请求,而且总是使用MapReduce模式执行任务)。
那么,现在你有了一个分布式文件系统,以及一个任务和工作的引擎以运行采用MapReduce模式实现的应用程序。是的,是这样的。
所以,我怎样查询所有的数据呢?好吧,你可以用任意语言实现应用程序,通常使用Java控制任务Task、工作Job,用Map和Reduce函数实现 MapReduce模式。有许多工作要做。你还可以使用其他的大数据技术,帮助你实现这些在数据集上的查询和处理操作,这些技术通常是基于某个特定平台或编程语言的。
1)Pig
Pig是一个基于Apache Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口,使用者可以透过Python或者JavaScript编写Java,之后再重新转写。
/* id.pig */ A = load 'passwd' using PigStorage(':'); -- load the passwd file B = foreach A generate $0 as id; -- extract the user IDs store B into ‘id.out’; -- write the results to a file name id.out
2)Hive
Hive是数据仓库工具,可查询和管理驻留在分布式存储上的大数据集。