hive說明:1,hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案對映為一張資料庫表,並提供類sql查詢功能
2,hive 的效率取決於 mapreduce或者spark
3,hive將 sql語句翻譯成mapreduce程式,然後yarn->hdfs
4,hive 將表結構儲存於額外的資料庫,例如mysql,也自帶了derty資料庫,啟動hive之前需要格式化derty(新建metastore_db檔案)
5,metastore_db裡面儲存了derby的元資料(存放著資料檔案的位置與資料文檔案的列名,每個列(行,複雜資料型別)之間是什麼符號進行區分的等等.)
6,2,hive只適合用來做批量資料統計分析
hive命令
#會在當前目錄下簡歷metastore_db的資料庫
#遇到問題,把metastore_db刪掉,重新執行命令
#次執行hive時應該還在同一目錄,預設到當前目錄下尋找metastore,找不到建立!
schematool -initschema -dbtype derby
hive與hadoop的關係1,hive利用hdfs儲存資料,利用mapreduce查詢資料
hive資料模型:1,db:在hdfs中表現為$目錄下乙個資料夾
2,table:在hdfs中表現所屬db目錄下乙個資料夾
3,external table:與table類似,不過其資料存放位置可以在任意指定路徑
4,partition:在hdfs中表現為table目錄下的子目錄,使用者通過指定乙個或多個partition key,決定資料存放方式,進而優化資料的查詢
5,bucket:在hdfs中表現為同乙個表目錄下根據hash雜湊之後的多個檔案,『桶』
hive啟動方式:
#後台啟動,寫入日誌與 err資訊
nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &
hive連線方式:#使用 beeline客戶端連線
#啟動 beeline時就連線(hive-site.xml 配置了使用者名稱密碼)
bin/beeline -u jdbc:hive2://mini1:10000
hive語句例項#建立表 doc
create table doc(line string);
#將 hdfs 根目錄下 wcinput 檔案關聯到 doc表之中,行對列
load data inpath '
/wcinput
'overwrite into table doc;
#表之中的資料按照' '切割
select split(line, '
') from
doc;
#將切割後的資料,乙個單詞一行作為列存到另一張表之中
select explode(split(line, '
')) as world from
doc;
create table word_counts as select word, count(1) as count from (select explode(split(line, '
')) as word from doc) w group by word order by word;
hive執行架構hive hadoop互動過程驅動( driver )編譯器( hive 的核心)
1,語法解析器( parsedriver )
將查詢字串轉換成解析樹表示式
2,語法分析器( semanticanalyzer )
將解析樹轉換成基於語句塊的內部查詢表示式。
3,邏輯計畫生成器( logical plan generator )
將內部查詢表示式轉換為邏輯計畫,這些計畫由邏輯操作樹組成。
操作符是 hive 的最小處理單元 , 每個操作符處理代表一道 hdfs 操作或 mr 作業
4,查詢計畫生成器( query plan generator )
將邏輯計畫轉化成物理計畫( mr task )
優化器優化器是乙個演化元件。當前,它的規則是:列修剪,謂詞下壓。
執行器編譯器將操作樹切分為乙個 task 鏈( dag ),執行器會順序執行其中所有 task ;如
果 task 鏈( dag )不存在依賴關係時,可採用併發執行的方式進行 job 的執行
Hive元件以及執行過程
對hive的基本組成進行了總結 1 元件 元儲存 metastore 儲存 系統目錄以及關於表 列 分割槽等的元資料 的元件。驅動 driver 控制 hiveql 生命週期的元件,當 hiveql 查詢穿過 hive時。該驅動管理著會話控制代碼以及任何會話的統計。查詢編譯器 query compi...
HIVE架構以及HIVE常見問題
hive是執行在yarn上的,資料儲存在hdfs上。將sql語句轉換為mapreduce,當然hive本身做了一些優化,有些任務不會走mapreduce。hive其實就是把結構化的資料檔案對映到表中,hive表的元資料資訊儲存在關係型資料庫中,具體可以參見我的另一篇部落格,配置了mysql資料庫。s...
使用「元件」優化遊戲架構
technorati 標籤 component game framework 近日一直在思考如何將game framework設計的更加具有實用性和復用性。搜尋了一下game framework,出現的有用的資訊非常的少,足見game framework的普及遠不如game engine。一般來講我...