Hadoop五分钟入门指南

jopen 10年前

原文见: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是数据仓库工具,可查询和管理驻留在分布式存储上的大数据集。

    CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING);        LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;  

</div> </div> 3)Jaql

Jaql:来自IBM BigInsights的JSON语言。

    //        // Bind to variable        $log  = read(hdfs(“log”));        $user = read(hdfs(“user”));        //        // Query 1: filter and transform        $log        -> filter $.from == 101        -> transform { mandatory: $.msg };        // result …        [        {        "mandatory": "Hello, world!"        }        ]  

二、总结你安装Hadoop后,你就得到了一个HDFS和MapReduce引擎。要查询数据,你需要开发自己的代码,可使用像Pig、Hive、Jaql之类的语言来处理MapReduce。这些语言的查询总是会被转换成MapReduce实现,你无需担忧MapReduce的实现,这就是为什么它很快,以及为什么你处理的数据分布在上千台机器的原因。

来自:http://blog.csdn.net/chszs/article/details/17270675