Hive之 hive與hadoop的聯系
阿新 • • 發佈:2017-09-18
ack create 交互 table ima ask str 數據信息 where
Hive與Hadoop調用圖
解析:
1、提交sql 交給驅動
2、驅動編譯:解析相關的字段表信息
3、去metastore查詢相關的信息 返回字段表信息
4、編譯返回信息 發給驅動
5、驅動發送一個執行計劃 交給執行引擎
6、執行計劃 (三種形式: metastore、namenode、metastore+namenode+mapreduce)
形式一 > DDL 對數據庫表的操作的 直接和metastore交互 。 比如:create table t1(name string);
形式二 > dfs ops 直接和namenode取數據 。 比如: select * from t1;
形式三 > 把job交給job tracker,讓task tracker執行 返回執行信息 + 完成job返回數據信息、找namenode查數據 。
比如:select * from t1 where col=X ;
7、返回結果信息集
總結: hive 運行在 hadoop 之上, 某些操作需要調用 hdfs 中的 mapreduce 。 hive 元數據存儲在 matestore 中, 而非元數據(如 table 裏的數據)存儲在hdfs之上。
Hive之 hive與hadoop的聯系