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是數據倉庫工具,可查詢和管理駐留在分布式存儲上的大數據集。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!