Hadoop學習筆記

說明:如遇到報錯沒有hadoop命令,請從新執行source hadoop-env.sh。後續的實驗中同理。java

一、HDFS是Master和Slave的結構,分爲NameNode、Secondary NameNode和DataNode三種角色。node

 

  • NameNode:在Hadoop1.X中只有一個Master節點,管理HDFS的名稱空間和數據塊映射信息、配置副本策略和處理客戶端請求
  • Secondary NameNode:輔助NameNode,分擔NameNode工做,按期合併fsimage和fsedits並推送給NameNode,緊急狀況下可輔助恢復NameNode;
  • DataNode:Slave節點,實際存儲數據、執行數據塊的讀寫並彙報存儲信息給NameNode

 二、HDFS經常使用命令mysql

①. hadoop fs  將本地文件上傳到hdfs,同時刪除本地文件。web

 hadoop fs -ls / 
 hadoop fs -lsr 
 hadoop fs -mkdir /user/hadoop 
 hadoop fs -put a.txt /user/hadoop/ 
 hadoop fs -get /user/hadoop/a.txt / 
 hadoop fs -cp src dst 
 hadoop fs -mv src dst 
 hadoop fs -cat /user/hadoop/a.txt 
 hadoop fs -rm /user/hadoop/a.txt 
 hadoop fs -rmr /user/hadoop/a.txt 
 hadoop fs -text /user/hadoop/a.txt 
 hadoop fs -copyFromLocal localsrc dst 與hadoop fs -put功能相似。 
 hadoop fs -moveFromLocal localsrc dst 
View Code

 hadoop fsadmin 運行一個 HDFS 的 dfsadmin 客戶端sql

# 報告文件系統的基本信息和統計信息 shell

hadoop dfsadmin -report 數據庫

hadoop dfsadmin -safemode enter | leave | get | wait 編程

# 安全模式維護命令。安全模式是 Namenode 的一個狀態,這種狀態下,Namenode安全

# 1. 不接受對名字空間的更改(只讀)bash

# 2. 不復制或刪除塊

# Namenode 會在啓動時自動進入安全模式,當配置的塊最小百分比數知足最小的副本數條件時,會自動離開安全模式。安全模式能夠手動進入,可是這樣的話也必須手動關閉安全模式。

 ③hadoop fsck 運行 HDFS 文件系統檢查工具。

用法:hadoop fsck [GENERIC_OPTIONS] <path> [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]

④啓動 Hadoop 

cd /app/hadoop-1.1.2/bin

./start-all.sh

三、Pig的調用方式:

  • Grunt shell方式:經過交互的方式,輸入命令執行任務;
  • Pig script方式:經過script腳本的方式來運行任務;
  • 嵌入式方式:嵌入java源代碼中,經過java調用來運行任務。

四、Hive與關係數據庫的區別具體以下:

①Hive和關係數據庫存儲文件的系統不一樣,Hive使用的是Hadoop的HDFS(Hadoop的分佈式文件系統),關係數據庫則是服務器本地的文件系統;

②Hive使用的計算模型是Mapreduce,而關係數據庫則是自身的計算模型;

③關係數據庫都是爲實時查詢的業務進行設計的,而Hive則是爲海量數據作數據挖掘設計的,實時性不好;實時性的區別致使Hive的應用場景和關係數據庫有很大的不一樣;

④Hive很容易擴展本身的存儲能力和計算能力,這個是繼承Hadoop的,而關係數據庫在這個方面要比數據庫差不少。

五、組件

 

服務端組件:

  • Driver組件:該組件包括Complier、Optimizer和Executor,它的做用是將HiveQL(類SQL)語句進行解析、編譯優化,生成執行計劃,而後調用底層的mapreduce計算框架;
  • Metastore組件:元數據服務組件,這個組件存儲Hive的元數據,Hive的元數據存儲在關係數據庫裏,Hive支持的關係數據庫有derby和mysql。元數據對於Hive十分重要,所以Hive支持把metastore服務獨立出來,安裝到遠程的服務器集羣裏,從而解耦Hive服務和metastore服務,保證Hive運行的健壯性;
  • Thrift服務:thrift是facebook開發的一個軟件框架,它用來進行可擴展且跨語言的服務的開發,Hive集成了該服務,能讓不一樣的編程語言調用hive的接口。

客戶端組件:

  • CLI:command line interface,命令行接口。
  • Thrift客戶端:上面的架構圖裏沒有寫上Thrift客戶端,可是Hive架構的許多客戶端接口是創建在thrift客戶端之上,包括JDBC和ODBC接口。
  • WEBGUI:Hive客戶端提供了一種經過網頁的方式訪問hive所提供的服務。這個接口對應Hive的hwi組件(hive web interface),使用前要啓動hwi服務。
相關文章
相關標籤/搜索