Hadoop和Hive的關係
阿新 • • 發佈:2022-12-05
Hadoop和Hive的關係
1.Hadoop是一個能夠對大量資料進行分散式處理的軟體框架。Hadoop最核心的設計就是hdfs和mapreduce,hdfs提供儲存,mapreduce用於計算。
2.Hive是Hadoop的延申。hive是一個提供了查詢功能的資料倉庫核心元件,Hadoop底層的hdfs為hive提供了資料儲存,mapreduce為hive提供了分散式運算。
兩者的關係:
hdfs上儲存著海量的資料,我們要對這些資料進行計算和分析,則需要使用Java編寫mapreduce程式來實現,但Java程式設計門檻較高,且一個mapreduce程式寫起來要幾十上百行。
Hive可以直接通過sql操作Hadoop,sql簡單易寫,可讀性強,hive將使用者提交的sql解析成mapreduce任務供Hadoop直接執行。過程如下圖所示:
拓展:
1.hive不儲存資料,hive只是對資料進行分析計算,以及計算後的結果資料實際存放在分散式系統上,如HDFS;
2.hive某種程度來說也不進行資料計算,只是個直譯器,只是將使用者需要對資料處理的邏輯,通過sql程式設計提交後解釋成mapreduce程式,然後將這個MR程式提交給yarn進行排程執行。所以實際進行分散式運算的是mapreduce程式。
3.因為hive需要操作hdfs上的資料集,那麼它需要知道資料的切分格式,如行列分隔符,儲存型別,是否壓縮,資料的儲存地址等資訊。
內容來源:https://blog.csdn.net/weixin_43222191/article/details/126829112