hive安裝、配置
error logs錯誤日誌
hive錶可儲存的資料型別
hive ddl
資料操作
hive是hadoop的乙個重要子專案,封裝mapreduce程式設計技術,提供hive ql的類sql的程式設計介面,方便快捷的訪問和使用mapreduce。
hive是乙個基於hadoop檔案系統上的資料倉儲結構,提供的功能:資料etl(抽取extern、轉換transit和載入loading)工具、資料儲存管理和大型資料集的查詢與分析能力。
hive不能提供:
資料排序和查詢cache
不提供實時的查詢和記錄級的更新
hive能提供:
不變的大規模資料集(網路日誌)上的批量任務
hive優點:
可擴充套件性(基於hadoop平台,可以自動適應機器數目和資料量的動態變化)
可延展性(結合mapreduce和使用者定義的函式庫)?
良好的容錯和低約束的資料輸入格式?
hive本身建立在hadoop的體系架構上,提供了乙個sql解析過程,從外部獲取命令,通過編譯器將外部命令解析成乙個mapreduce可執行計畫,並按照該計畫生成mapreduce任務交給hadoop集群處理
hive的儲存是建立在hadoop檔案系統之上,hive本身沒有專門的資料儲存格式,也不能為資料建立索引。
hive主要包含四種資料型別:
每個表在hive中都對應乙個儲存目錄,例如,乙個表htable在hdfs中的路徑為/datawarehouse/htable,其中/datawarehouse是由hive-site.xml配置檔案中的$指定的資料倉儲的目錄,所有的表資料(除外部表)都儲存在這個目錄中。
ps:資料倉儲和大資料的區別見資料倉儲與大資料的區別?,基於hive構建的是離線資料倉儲,提供離線計算;實時的資料倉儲:我們是用flink、storm來做;使用大資料技術來實現資料倉儲的構建和管理。
分割槽可以看做是表下的子目錄
桶可以看做是分割槽下的檔案
外部表????
建立內部表,會將資料移動到資料倉儲指向的路徑中;當建立外部表,則僅記錄資料所在的路徑,不對資料的位置做任何改變。???
但刪除表時,內部表的元資料和資料會被一起刪除,而外部表只刪除元資料,不刪除資料。
目前hive將元資料儲存在rdbms中,比如mysql、derby中。
hive三種連線derby資料庫的方式:
hive使用log4j記錄日誌,在預設情況下,日誌檔案的記錄等級為warn(儲存緊急程度為warn及以上的錯誤資訊),儲存在/tmp資料夾下。
若想在終端檢視到日誌內容,可以設定如下引數達到目的
hive -hiveconf hive.root.logger=info, console
使用者也可以改變日誌記錄等級
hive -hiveconf hive.root.logger=info, d***
純文字檔案 stored as textfile
可以進行資料壓縮,stored as sequencefile
還支援建立帶有分割槽的表,可以在建立時使用participation by語句
乙個表可以擁有乙個或多個分割槽,每個分割槽單獨存放在乙個目錄下。而且,表和分割槽都可以對某個列進行clustered by操作,將若干個列放入乙個桶中。
drop table table_name
drop table用於刪除表的元資料和資料
alter table語句用於改變乙個已經存在的表結構,比如增加列或分割槽,改變serde、新增表和serde的屬性或重新命名表。
增加分割槽
alter table add partition來對錶增加分割槽,當分割槽名為字串時加引號。
例如:
刪除分割槽
alter table drop partition來刪除分割槽,分割槽的元資料和資料將被一併刪除,例如
alter table page_view
drop partition (dt=『2010-08-08』,country=『us』)
重新命名表
alter table table_name rename to new_table_name
這個命令可以讓使用者為表更名,但資料所在的位置和分割槽名並不改變。換而言之,老的表名並未釋放,對老表的修改會改變新錶的資料
改變列名字、型別、位置、注釋
注意:列的改變智慧型修改hive的元資料,而不會改變實際資料,使用者應該確保元資料的定義和實際資料結構的一致性。
增加、更新列
增加表屬性
增加serde屬性
改變表檔案格式和組織
建立 表檢視
刪除表檢視
drop view view_name
建立函式
create temporary function function_name as class_name
刪除函式
drop temporary function function_name
在hive中,該語句提供一種方法對現有的資料和元資料進行查詢
顯示表show tables identifier_with_wildards
列出所有基表與給定正規表示式相匹配的檢視
顯示分割槽
show participations table_name
列出給定基表中所有的現有分割槽,按字母排序
顯示表、分割槽擴充套件
顯示函式
show functions 「a.*"
描述表/列
describe table_name
向表中載入檔案
將查詢結果插入hive表
將查詢結果寫入檔案系統
Hadoop實戰應用
1 雲盤儲存系統通過hdfs實現 2 hadoop三大發行版本 1 apache 基礎版本,實際企業使用比較少 2 cloudera cdh cloudera的hadoop發行版 clouderamanager 集群軟體分發及管理監控 3 hortonworks hdp hortonworks da...
hadoop實戰隨筆 0712
org.apache.hadoop.conf 定義了系統引數的配置檔案處理api。org.apache.hadoop.fs 定義了抽象的檔案系統api org.apache.hadoop.dfs hadoop分布式檔案系統 hdfs 模組的實現 org.apache.hadoop.mapred ha...
hadoop實戰隨筆 0720
hdfs命令 distcp 一般用於在兩個hdfs集群間傳遞資料的情況。namenode format 格式化dfs檔案系統 secondarynamenode 執行dfs的secondarynamenode程序 namenode 執行dfs的namenode程序 datanode 執行dfs的da...