一.hadoop入門須知

目錄:html

1.hadoop入門須知mysql

2.hadoop環境搭建sql

3.hadoop mapreduce之WordCount例子數據庫

4.idea本地調試hadoop程序編程

5.hadoop 從mysql中讀取數據寫到hdfs服務器

 

1)基本介紹數據結構

 

  1. hadoop是什麼?

    Hadoop是一個開源的框架,可編寫和運行分不是應用處理大規模數據,是專爲離線和大規模數據分析而設計的,並不適合那種對幾個記錄隨機讀寫的在線事務處理模式。Hadoop=HDFS(文件系統,數據存儲技術相關)+ Mapreduce(數據處理),Hadoop的數據來源能夠是任何形式,在處理半結構化和非結構化數據上與關係型數據庫相比有更好的性能,具備更靈活的處理能力,無論任何數據形式最終會轉化爲key/value,key/value是基本數據單元。用函數式變成Mapreduce代替SQL,SQL是查詢語句,而Mapreduce則是使用腳本和代碼,而對於適用於關係型數據庫,習慣SQL的Hadoop有開源工具hive代替。

  2. hadoop能作什麼?

    hadoop擅長日誌分析,facebook就用Hive來進行日誌分析,2009年時facebook就有非編程人員的30%的人使用HiveQL進行數據分析;淘寶搜索中的自定義篩選也使用的Hive;利用Pig還能夠作高級的數據處理,包括Twitter、LinkedIn 上用於發現您可能認識的人,能夠實現相似Amazon.com的協同過濾的推薦效果。淘寶的商品推薦也是!在Yahoo!的40%的Hadoop做業是用pig運行的,包括垃圾郵件的識別和過濾,還有用戶特徵建模。(2012年8月25新更新,天貓的推薦系統是hive,少許嘗試mahout!)

 

  • 日誌處理
  • 用戶細分特徵建模
  • 個性化廣告推薦
  • 智能儀器推薦

2)名詞解釋:架構

Hadoop Google 中文 相關解釋
NameNode Master 主控服務器 整個文件系統的大腦,它提供整個文件系統的目錄信息,而且管理各個數據服務器
Secondary 備份主控服務器 備用的主控服務器,在身後默默的拉取着主控服務器的日誌,等待主控服務器犧牲後轉正。
DataNode Chunk 數據服務器 分佈式文件系統中的每個文件,都被切分陳若干數據塊,每個數據塊都被存儲在不一樣的服務器上,這些服務器稱之爲數據服務器。
Block Chunk 數據塊 每一個文件都會被切分陳若干塊,每一塊都有連續的一段文件內容,是存儲的基本單位,在這裏統一稱做數據塊。
Packet 數據包 客戶端寫文件的時候,不是一個字節一個字節寫入文件系統的,而是累計到必定數量後,往文件系統中寫入,每發送一次的數據,都稱爲一個數據包。
Chunk 傳輸塊 將數據切成更小的塊,每個塊配上一個奇偶校檢碼,這樣的塊,就是傳輸塊。
JobTracker Master 做業服務器 用戶提交做業的服務器,同時,它還負責各個做業任務分配,管理全部的任務服務器
TaskTracker Worker 任務服務器 負責執行具體的任務
Job Job 做業   用戶的每個計算請求,稱爲一個做業
Task Task 任務   每個做業,都須要拆分開了,而後交由多個服務器來完成,拆分出來的執行單元,就稱之爲任務
Speculative Task Backup Task 備份任務 每個任務,都有可能執行失敗或者緩慢,爲了下降爲此付出的代價,系統會未雨綢繆的實如今另外的任務服務器上執行同一個任務,這就是備份任務
Slot     插槽   一個任務服務器可能有多個插槽,每一個插槽負責執行一個具體的任務

 

 

一、Hadoop Common :Hadoop體系最底層的一個模塊,爲Hadoop各子項目提供各類工具,如:配置文件和日誌操做等。 框架

二、HDFS:分佈式文件系統,提供高吞吐量的應用程序數據訪問,對外部客戶機而言,HDFS 就像一個傳統的分級文件系統。能夠建立、刪除、移動或重命名文件,等等。可是 HDFS 的架構是基於一組特定的節點構建的(參見圖 1),這是由它自身的特色決定的。這些節點包括 NameNode(僅一個),它在 HDFS 內部提供元數據服務;DataNode,它爲 HDFS 提供存儲塊。因爲僅存在一個 NameNode,所以這是 HDFS 的一個缺點(單點失敗)。 ssh

3.  存儲在 HDFS 中的文件被分紅塊,而後將這些塊複製到多個計算機中(DataNode)。這與傳統的 RAID 架構大不相同。塊的大小(一般爲 64MB)和複製的塊數量在建立文件時由客戶機決定。NameNode 能夠控制全部文件操做。HDFS 內部的全部通訊都基於標準的 TCP/IP 協議。 

四、Avro :doug cutting主持的RPC項目,主要負責數據的序列化。有點相似Google的protobuf和Facebook的thrift。avro用來作之後hadoop的RPC,使hadoop的RPC模塊通訊速度更快、數據結構更緊湊。 

五、Hive :相似CloudBase,也是基於hadoop分佈式計算平臺上的提供data warehouse的sql功能的一套軟件。使得存儲在hadoop裏面的海量數據的彙總,即席查詢簡單化。hive提供了一套QL的查詢語言,以sql爲基礎,使用起來很方便。 

六、HBase :基於Hadoop Distributed File System,是一個開源的,基於列存儲模型的可擴展的分佈式數據庫,HBase是一個面向列的數據庫,支持大型表的存儲結構化數據。 

七、Pig :是一個並行計算的高級的數據流語言和執行框架 ,SQL-like語言,是在MapReduce上構建的一種高級查詢語言,把一些運算編譯進MapReduce模型的Map和Reduce中,而且用戶能夠定義本身的功能。 

八、ZooKeeper :Google的Chubby一個開源的實現。它是一個針對大型分佈式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、分佈式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。 

九、Chukwa :一個管理大型分佈式系統的數據採集系統 由yahoo貢獻。 

十、Cassandra :無單點故障的可擴展的多主數據庫 

十一、Mahout :一個可擴展的機器學習和數據挖掘庫 

 

 Hive和Hbase是兩種基於Hadoop的不一樣技術--Hive是一種類SQL的引擎,而且運行MapReduce任務,Hbase是一種在Hadoop之上的NoSQL 的Key/vale數據庫。固然,這兩種工具是能夠同時使用的。就像用Google來搜索,用FaceBook進行社交同樣,Hive能夠用來進行統計查詢,HBase能夠用來進行實時查詢,數據也能夠從Hive寫到Hbase,設置再從Hbase寫回Hive  

 3)必需條件

JDK1.6以上
SSH無密碼訪問(hadoop的使用,必須配置成ssh無密碼訪問):

解決方法:

root用戶下:

//移除密鑰文件
  $ cd ~/.ssh
  $ rm -rf *.pub
  $ rm -rf authorized_keys

//生成密鑰文件
  $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
  $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

ssh localhost後,而後能夠無密碼登陸了。 (使用cp id_dsa.pub authorized_keys方式也行,cp id_dsa.pub authorized_keys)

 

 順便貼個圖:hadoop生態圈層次圖

ods:操做型數據存儲/運營數據倉儲

dw:數據倉庫

dm:數據模型

相關文章
相關標籤/搜索