hive讀取hdfs存放檔案 Hive基本概念

2021-10-11 07:59:02 字數 1690 閱讀 5519

hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案對映為一張資料庫表,並提供類sql查詢功能。

人員學習成本太高

專案週期要求太短

mapreduce實現複雜查詢邏輯開發難度太大

操作介面採用類sql語法,提供快速開發的能力。

避免了去寫mapreduce,減少開發人員的學習成本。

擴充套件功能很方便。

hive可以自由的擴充套件集群的規模,一般情況下不需要重啟服務。

hive支援使用者自定義函式,使用者可以根據自己的需求來實現自己的函式。

良好的容錯性,節點出現問題sql仍可完成執行。

tasktracker 相當於: nodemanager + yarnchild

hive利用hdfs儲存資料,利用mapreduce查詢資料

1.4 hive與傳統資料庫對比

總結:hive具有sql資料庫的外表,但應用場景完全不同,hive只適合用來做批量資料統計分析

1、hive中所有的資料都儲存在 hdfs 中,沒有專門的資料儲存格式(可支援text,sequencefile,parquetfile,rcfile等)

2、只需要在建立表的時候告訴 hive 資料中的列分隔符和行分隔符,hive 就可以解析資料。

3、hive 中包含以下資料模型:db、table,external table,partition,bucket。

² external table:與table類似,不過其資料存放位置可以在任意指定路徑

² partition:在hdfs中表現為table目錄下的子目錄

² bucket:在hdfs中表現為同乙個表目錄下根據hash雜湊之後的多個檔案

單機版:

元資料庫mysql版:

啟動方式,(假如是在hadoop01上):

啟動為前台:bin/hiveserver2

啟動為後台:nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &

啟動成功後,可以在別的節點上用beeline去連線

v 方式(1)

hive/bin/beeline 回車,進入beeline的命令介面

輸入命令連線hiveserver2

beeline> !connect jdbc:hive2//mini1:10000

(hadoop01是hiveserver2所啟動的那台主機名,埠預設是10000)

v 方式(2)

或者啟動就連線:

bin/beeline -u jdbc:hive2://mini1:10000 -n hadoop

接下來就可以做正常sql查詢了

[hadoop@hdp-node-02 ~]$ hive -e 『sql』

HDFS讀取檔案步驟

client呼叫filesystem.open 該filesystem指向的例項是distrbutedfilesystem dfs 它通過rpc請求到namenode.namenode收到請求後,對於每乙個塊返回存有該副本的datanode位址。並且依照 網路拓撲 來排序。就近原則 dfs獲取到bl...

HDFS 檔案讀取過程

client向namenode發起rpc請求,來確定請求檔案block所在的位置 namenode會視情況返回檔案的部分或者全部block的主機列表,namenode會對列表進行排序,排序兩個規則 網路拓撲結構中距離 client 近的排靠前 心跳機制中超時匯報的 dn 狀態為 stale,這樣的排...

Python 檔案的讀取和存放

如果資料夾不存在,則自動創立 path videotoimage 資料夾路徑 ifnot os.path.exists path os.mkdir path 讀取整個列表的檔案 filepath video2 pathdir os.listdir filepath 儲存檔案到檔案同名資料夾裡 pat...