Hadoop五分鐘入門指南

jopen 11年前發布 | 21K 次閱讀 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  </pre><br />

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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!