




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Hadoop大數據項目開發——Hive概述目錄content02Hive支持的文件存儲格式01Hive簡介03Hive特點Hive簡介Hive是構建在Hadoop上的數據倉庫Hive是Hadoop的頂級項目之一Hive可以將Hive查詢語句解析成MapReduce作業Hive不適合實現復雜的機器學習算法等Hive適合批量處理海量數據。Hive并非數據庫。Hive的數據存儲在HDFSHive支持的文件存儲格式文本文件(TextFile)該格式是Hive默認的存儲格式。文本文件格式簡單,但用它存儲的數據會占用大量的磁盤空間。序列文件(SequenceFile)該格式文件存儲的數據是有序鍵值對,并具有可分割和可壓縮的特點。列式記錄文件(RCFile)使用該格式存儲數據時,先對數據水平切分,再做垂直切分。Hive的特點操作接口采用類SQL語法,提供快速開發的能力。Hive優勢在于處理大數據Hive支持用戶自定義函數優點缺點Hive的HQL表達能力有限Hive的效率比較低Hive延時較高本章小結本節介紹了Hive,包括Hive簡介,Hive支持的文件存儲格式和Hive特點,相信大家對Hive有了全新的認識。Hadoop大數據項目開發——MySQL安裝目錄content01MySQL安裝02MySQL授權MySQL安裝步驟由于Hive的元數據需要保存在關系型數據庫MySQL中,本節將介紹如何在CentOS環境下安裝MySQL,以便用它來保存Hive的元數據。MySQL安裝步驟查詢Mariadb步驟1卸載Mariadb步驟2MySQL安裝步驟Xshell中的文件傳輸拖到文件傳輸窗口查看MySQL安裝包步驟3MySQL安裝步驟安裝MySQL步驟4MySQL安裝步驟啟動服務和查看服務狀態步驟5啟動MySQL服務查看MySQL服務狀態MySQL安裝步驟查詢初始密碼步驟6:查詢密碼命令MySQL安裝步驟啟動HBase步驟7:輸入/var/log/mysqld.log文件中查詢到的默認root用戶登錄密碼輸入新密碼Password123$輸入新密碼Password123$輸入新密碼Password123$輸入新密碼Password123$初始化命令MySQL授權登錄到MySQL命令輸入新設定的密碼Password123$MySQL授權本章小結本節介紹了MySQL的安裝,相信大家對Linux操作系統下安裝MySQL有了全新的認識,為我們后續學習Hive打下來基礎。Hadoop大數據項目開發——Hive安裝與驗證目錄content0201Hive安裝Hive驗證Hive安裝步驟Xshell中的文件傳輸拖到文件傳輸窗口查看Hive安裝包步驟1Hive安裝步驟解壓Hive安裝包命令Hive系統環境變量步驟2步驟3重命名命令步驟4編輯profile文件步驟5使profile文件生效Hive安裝步驟步驟6hive-site.sh文件內容Hive安裝步驟步驟7將mysql驅動jar包上傳到Hive的安裝目錄的lib中Hive驗證啟動HiveHive驗證Hive的元數據信息表本章小結本節介紹了Hive的安裝與配置,相信大家已經掌握了Hive的安裝與配置,為我們后續學習Hive表操作打下了堅實的基礎。Hadoop大數據項目開發——Hive安裝與驗證目錄content0201Hive安裝Hive驗證Hive安裝步驟步驟1:使用Xshell的文件傳輸功能,將下載的Hive安裝包傳到虛擬機master中,點擊Xshell中的文件傳輸,然后將Hive安裝包直接拖到文件傳輸窗口即可,此時可以切換到文件傳輸路徑;Hive安裝步驟Hive安裝步驟使用查看命令,查看Hive安裝包是否已經傳輸成功。Hive安裝步驟步驟2:在虛擬機master上安裝Hive,解壓Hive安裝包即可,解壓命令如下所示:步驟3:為了配置Hive系統環境變量方便,此處可以修改目錄名,命令如下:Hive安裝步驟步驟4:配置Hive系統環境變量,修改文件/etc/profile,執行以下命令:在文件的末尾添加如下內容:步驟5:profile文件配置完成之后,需要使剛剛修改的內容生效,執行如下命令:Hive安裝步驟步驟6:修改Hive的配置文件:新建hive-site.xml配置文件配置文件位于Hive安裝目錄下的conf目錄下面,在該目錄下可以使用自帶hive-default.xml.template文件,由于該文件中內容較多,本課程中使用新建hive-site.xml的方式。Hive安裝步驟hive-site.xml配置文件的內容如下:Hive安裝步驟上述配置文件中參數是設置存儲元數據的:javax.jdo.option.ConnectionURL:連接URL;javax.jdo.option.ConnectionDriverName:數據庫驅動javax.jdo.option.ConnectionUserName:數據庫用戶名;javax.jdo.option.ConnectionPassword:數據庫密碼。Hive安裝步驟<value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&characterEncoding=utf8</value>中:master是MySQL存儲元數據的主機名;Hive是MySQL中數據庫的名稱,用來存儲Hive中的元數據信息;配置JDBCURL時,將&寫為&:因為&符號在xml中有特殊語義,必須進?轉義。Hive安裝步驟如果想要設置Hive在hdfs中的存儲路徑,可以使用如下參數配置:Hive.metastore.warehouse.dir如非特殊需求,則不需要配置,默認值為/user/hive/warehouseHive安裝步驟步驟7:上傳一個mysql的驅動jar包到Hive的安裝目錄的lib中,mysql的驅動jar包需要自行下載,本課程中使用的版本為mysql-connector-java-8.0.16.jar。Hive驗證啟動Hive:確保要連接的Hadoop集群是啟動狀態,并且能夠正常運行;確保MySQL服務是運行狀態。輸入hive命令,出現如圖界面,則hive安裝成功。Hive驗證通過Navicat連接到master上的的MySQL,如下所示:Hive驗證可以查看Hive的元數據信息,DBS表中存儲著Hive中數據庫信息,TBLS中存儲中Hive中的表信息,包括表名、數據位置、所有者等信息,VERSION中存儲著版本信息,Hive的元數據信息表如圖所示。本章小結本節介紹了Hive的安裝與配置,包括Hive的安裝,Hive配置文件的修改,Hive的啟動以及查看Hive的元數據信息,相信大家已經對Hive的安裝與配置有了新的認識,為我們后續學習Hive打下了堅實的基礎。Hadoop大數據項目開發——數據庫操作目錄content0201創建數據庫查看數據庫02刪除數據庫創建數據庫此時需要初始化數據,再打開一個終端,在linux命令行下執行如下命令:第一次執行該命令時,會報如下錯誤:(1)show:顯示數據庫,執行命令初始化完成創建數據庫初始化數據完成后,再執行showdatabases;默認數據庫存儲路徑:hdfs://master:9000/user/hive/warehouseHive默認數據庫:default創建數據庫(2)創建數據庫的語法如下:createdatabasedbnameIFNOTEXISTSCOMMENTLOCATIONWITHDBPROPERTIES;createdatabase:創建數據的關鍵字dbname:要創建的數據庫名稱IFNOTEXISTS:如果不存在則創建COMMENT:添加注釋LOCATION:指定hdfs存放路徑WITHDBPROPERTIES:添加自定義屬性。創建數據庫(3)新建數據庫bigdata數據庫建好后,在hdfs中會生成一個數據庫目錄,見上圖;創建數據庫(4)創建數據庫時,如果數據庫已經存在則會報錯再次創建數據庫createdatabasebigdata;則出現下圖所示報錯信息:為了避免創建的數據庫已經存在時系統報錯,可以添加
ifnotexists命令,如圖所示:數據庫在HDFS上默認存儲路徑是/user/hive/warehouse/*.db。查看數據庫(1)describe:查看數據庫bigdata的默認存儲路徑(2)use:打開數據庫查看數據庫新建數據庫bigdata的默認存儲路徑如下圖所示刪除數據庫(1)drop:刪除空數據庫,命令如下:如果刪除的數據庫不存在,直接刪除則會報如下錯誤,命令如下:為了避免上述錯誤,在刪除數據時可以使用ifexists判斷數據庫是否存在,命令如下:刪除數據庫(2)如果數據庫不為空,使用drop命令刪除數據庫,則會出現如下錯誤,命令如下:為了避免上述錯誤,刪除非空數據庫時可以采用cascade命令,強制刪除,命令如下:本章小結本節內容主要介紹了Hive中的數據庫,包括創建數據庫、查詢數據庫和刪除數據庫,為后續學校表操作奠定了堅實的基礎。Hadoop大數據項目開發——Hive表簡介目錄content02外部表01內部表03分區表內部表默認創建的表都是屬于內部表Hive會控制著數據的生命周期內部表默認存儲在warehouse目錄中當刪除表時,表的數據和元數據將會被同時刪除內部表的特點內部表被刪除后,表的元數據和表數據都從HDFS中完全刪除創建Hive內部表時,數據將真實存在于表所在的目錄內,刪除內部表時,物理數據和文件也一并刪除。內部表數據存儲的位置是HDFS下的warehouse目錄下,如果創建內部表時沒有指定location,就會在/user/hive/warehouse/下新建一個表目錄。外部表Hive并非認為其完全擁有這份數據刪除該表并不會刪除掉這份數據,元數據信息會被刪除掉。外部表管理僅僅是在邏輯和語法意義上的,刪除時也并不物理刪除外部目錄,而僅僅是將引用和定義刪除。外部表的特點表中的數據在刪除后仍然在HDFS中如果創建一個外部表,在刪除表之后,只有與表相關的元數據被刪除,而不會刪除表的內容。內部表和外部表的區別內部表未被external修飾;外部表被external修飾內部表數據由Hive自身管理,外部表數據由HDFS管理內部表的目錄在Hive的倉庫目錄中,而外部表的目錄由用戶指定刪除內部表會直接刪除元數據及存儲數據;刪除外部表僅刪除元數據,HDFS上文件不會被刪除Hive創建內部表時,會將數據移動到數據倉庫指向的路徑分區表分區表可以根據PARTITIONEDBY創建分區表。分區表實際上就是對應一個HDFS文件系統上的獨立文件夾分區表的特點一個表可以擁有一個或者多個分區分區是以偽字段的形式在表結構中存在分區建表分為2種本章小結本節內容主要介紹了Hive中表的相關操作,包括內部表,外部表和分區表的操作,相信大家已經對Hive表有了新的認識,為我們后續學習Hive打下了堅實的基礎。Hadoop大數據項目開發——數據表創建操作目錄content0201創建內部表創建內部表創建數據庫創建數據表的語法如下:CREATE[EXTERNAL]TABLE[IFNOTEXISTS]table_name[(col_namedata_type[COMMENTcol_comment],...)][COMMENTtable_comment][PARTITIONEDBY(col_namedata_type[COMMENTcol_comment],...)][CLUSTEREDBY(col_name,col_name,...)storedas文件存儲類型[ROWFORMATrow_format][LOCATIONhdfs_path]創建內部表初始化數據報錯信息使用bigdata數據庫創建表創建內部表根據查詢結果創建表創建內部表student01在HDFS上的存儲創建內部表根據已經存在的表結構創建表student3在HDFS上的存儲創建內部表查詢表的類型創建外部表創建外部表查詢表的類型本章小結本節內容主要介紹了Hive中內部表和外部表的創建,相信大家已經對Hive表的創建有了新的認識,為我們后續學習Hive打下了堅實的基礎。Hadoop大數據項目開發——分區表操作目錄content0201創建分區表查詢分區表0403增加分區刪除分區創建分區表創建分區表加載數據到分區表創建分區表在對應的HDFS存儲路徑目錄下產生的目錄查詢分區表查詢分區表中分區為202306中的數據查看分區表分區數量增加分區增加分區202304HDFS上對應的變化增加分區增加分區202301和202302HDFS上對應的變化刪除分區刪除202301分區HDFS上對應的變化刪除分區HDFS上對應的變化刪除202302和202004分區本章小結本節內容主要介紹了分區表的相關操作,包括分區表的創建、增加分區、刪除分區和查看分區表等操作。相信大家對Hive分區表有了一定的了解,為我們后續學習Hive表操作,打下了堅實的基礎。Hadoop大數據項目開發——Hive數據導入導出目錄content0201數據導入數據導出數據導入—向表中裝載數據語法如下:loaddata[local]inpath'文件名'[overwrite]intotablestudent[partition(partcol1=val1,…)];向表中裝載數據:數據導入—向表中裝載數據加載學生信息到student表中student表中的數據與HDFS上student目錄下的student.txt文件中的內容相同/user/hive/warehouse/bigdata.db/student目錄下面的數據位于家目錄下待上傳的數據本地文件加載到Hive表中數據導入—向表中裝載數據HDFS上student表中數據存儲的位置本地文件加載到Hive表中數據導入—向表中裝載數據加載HDFS文件到Hive中將文件上傳至HDFS上清除student表中數據將HDFS根目錄下的student.txt文件加載到student表中student表中的數據數據導入—向表中裝載數據加載HDFS文件到Hive中直接把文件上傳到表所在hdfs的目錄下數據導入—向表中裝載數據加載數據覆蓋表中數據數據導入查詢表類型通過查詢語句向表中插入數據數據導入查詢語句中創建表并加載數據數據導入查詢表類型通過location指定加載數據路徑數據導入通過location指定加載數據路徑數據導出—insert方式將查詢的結果導出到本地數據導出—insert方式將查詢的結果格式化導出到本地數據導出—HiveShell命令導出數據導出—HiveShell命令導出HiveShell命令導出基本語法如下:hive-e執行語句>filehive-f腳本>file數據導出—HiveShell命令導出student2.txt文件中的數據HiveShell命令導出數據導出—HiveShell命令導出查詢表類型export導出到HDFS上本章小結本節內容主要介紹了Hive中的數據庫,包括創建數據庫、查詢數據庫和刪除數據庫,為后續學校表操作奠定了堅實的基礎。Hadoop大數據項目開發——表查詢操作目錄content02條件查詢01基本查詢04排序03分組查詢Hive表查詢Hive中查詢語句的語法格式如下所示:select[ALL|DISTINCT]select_expr,select_expr,...FROMtable_reference[WHEREwhere_condition][GROUPBYcol_list][ORDERBYcol_list][CLUSTERBYcol_list|[DISTRIBUTEBYcol_list][SORTBYcol_list]][LIMITnumber]Hive表查詢創建emp表將本地數據emp.txt文件加載到emp表基本查詢全表查詢特定列查詢基本查詢LIMIT語句列別名條件查詢—WHERE語句查詢出薪水大于1000的所有員工查詢出薪水等于5000的所有員工查詢工資在500到1000的員工信息條件查詢—WHERE語句查詢comm為空的所有員工信息查詢工資是1500和5000的員工信息條件查詢—LIKE關鍵字查找以2開頭薪水的員工信息查找第二個數值為2的薪水的員工信息條件查詢—邏輯運算符查詢薪水大于1000,部門是30查詢薪水大于1000,或部門是30查詢除20和30部門以外的員工信息分組查詢—GROUPBY全表查詢特定列查詢計算emp表每個部門的平均工資分組查詢—GROUPBY計算emp每個部門中每個崗位的最高薪水分組查詢—HAVING不正確使用方法求每個部門的平均薪水大于2000的部門排序—全局排序查詢員工信息按工資升序排列排序—全局排序查詢員工信息按工資降序排列排序—全局排序按照員工薪水的2倍排序排序—全局排序按照部門和工資升序排序排序—分區排序先按照部門編號分區,再按照員工編號降序排序設置reduce數量查詢語句查詢數據存儲到/root/result中本章小結本節介紹了Hive表查詢,包括基本查詢、條件查詢、分組和排序,能夠實現Hive表數據的查詢,相信大家對Hive表查詢有了一定的了解。Hadoop大數據項目開發——Hive函數目錄content02Hive窗口函數01Hive內置函數Hive內置函數分類函數描述數值相關函數
greatest(Tv1,Tv2,..)返回一組相同類型數據中的最大值(過濾NULL值)least(Tv1,Tv2,...)返回一組相同類型數據中的最小值(過濾NULL值)rand()返回0~1之間的隨機值rand(INTseed)返回固定的隨機值round(DOUBLEA)返回參數A四舍五入后的BIGINT值Hive內置函數分類函數描述字符串相關函數
upper(STRINGA)ucase(STRINGA)將字符串A中的小寫字母轉換成大寫字母lower(STRINGA)lcase(STRINGA)將字符串A中的大寫字母轉換成小寫字母concat(STRINGA,STRINGB,...)字符串拼接函數,返回A連接B等產生的字符串regexp_replace(STRINGA,STRINGB,STRINGC)字符串替換函數,用字符串C替換字符串A中的Brepeat(STRINGstr,INTn)返回字符串str重復n次的結果trim(STRINGA)ltrim(STRINGA)rtrim(STRINGA)trim(STRINGA)刪除字符串兩邊的空格,但不會刪除中間的空格,ltrim(STRINGA)和rtrim(STRINGA)分別刪除左邊和右邊的空格length(STRINGstr)獲取字符串str的長度split(STRINGstr,regex)按給定的正則表達式regex分割字符串str,將結果作為字符串數組返回substr(STRINGa,STRINGb)從字符串a中,第b位開始取,取右邊所有的字符Hive內置函數分類函數描述條件函數
if(BOOLEANtestCondition,TvalueTrue,TvalueFalseOrNULL)函數會根據條件返回不同的值,如果滿足條件,返回第一個參數值,否則返回第二個參數值nvl(Tvalue,Tdefault_value)判斷值是否為空,如果T(可以為任意數據類型)為空,則返回默認值時間相關函數
unix_timestamp()獲取當前系統時間,返回值為數字型秒數to_date(stringtimestamp)將時間戳轉換為日期,傳入參數也可以是當前時間戳current_timestampdatediff(STRINGenddate,STRINGstartdate)返回INT類型的兩個日期相差的天數date_add(STRINGstartdate,INTdays)獲取增加天數后的日期last_day(STRINGdate)獲取傳入日期的月末日期Hive內置函數分類函數描述聚合函數
count(*)和count(expr)返回檢索行的總數sum(col)和sum(DISTINCTcol)返回col所有元素的總和avg(col)和avg(DISTINCTcol)返回col所有元素的平均值min(col)返回col所有元素的最小值max(col)返回col所有元素的最大值類型轉換函數cast(expras<type>)將一個數據類型轉換為另一個數據類型膨脹函數explode()將一行數據轉換成列數據,可以用于array和map類型的數據,函數中的參數傳入的是arrary數據類型的列名。此函數不能關聯原有的表中的其他字段、不能與groupby、clusterby、distributeby、sortby聯用、不能進行UDTF嵌套和不允許選擇其他表達式。窗口分析函數想要既顯示聚集前的數據,又要顯示聚集后的數據,引入了窗口函數。窗口函數又叫分析函數,窗口函數兼具分組和排序功能。over()默認的窗口大小是從第一行到最后一行的所有數據。partitionby是按照要求進行分組,這樣設定之后,over的窗口大小就是一個分組。當只指定分組時,sum、avg統計的數據就是分組內的數據,當既指定分組又指定排序時,sum、avg統計的數據就是分組第一行到當前行的數據。窗口函數最重要的關鍵字是partitionby和orderby。分組TOPN函數創建userinfo表將本地數據user.txt文件加載到userinfo表分組TOPN函數查詢結果分組TOPN函數最終查詢結果累加計算函數創建index表將本地數據index.txt文件加載到index表累加計算函數最終查詢結果本章小結本節介紹了Hive函數,包括內置函數和窗口函數,在窗口函數中介紹了分組求TOPN和累加計算,相信大家對Hive函數有了一定的了解,為我們后續數據使用Hive函數打下了堅實的基礎。Hadoop大數據項目開發——Hive數據類型目錄content02Hive復合數據類型01Hive基本數據類型03復合數據類型的定義與使用方法Hive基本數據類型類型描述TINYINT(tinyint)一個字節(8位)有符號整數,-128~127SMALLINT(smallint)2字節(16位)有符號整數,-32768~32767INT(int)4字節(32位)有符號整數BIGINT(bigint)8字節(64位)有符號整數FLOAT(float)4字節(32位)單精度浮點數DOUBLE(double)8字節(64位)雙精度浮點數DECIMAL(decimal)任意精度的帶符號小數BOOLEAN(boolean)true/falseSTRING(string)字符串VARCHAR(varchar)變長字符串CHAR(char)固定長度字符串BINANY(binany)字節序列TIMESTAMP(timestamp)時間戳,納秒精度 DATE(date)日期Hive復合數據類型數據類型描述語法示例array數組是一組具有相同類型和名稱的變量的集合。這些變量稱為數組的元素,每個數組元素都有一個編號,編號從零開始。array()mapMAP是一組鍵-值對元組集合,使用數組表示法可以訪問數據。map()struct和C語言中的struct類似,都可以通過“點”符號訪問元素內容。struct()復合數據類型的定義與使用方法數組類型鍵值對類型結構體類型復合數據類型的定義與使用方法要獲取每個學生的數學成績獲取每個學生的父親的聯系電話獲取每個學生的家庭住址的省和市信息將本地的“student.txt”文件加載到student表本章小結本節介紹了Hive中的數據類型,包括基本數據類型和復合數據類型,以及復合數據類型的定義與使用方法,相信大家對Hive中的數據類型有了一定的了解,為我們后續Hive數據打下了堅實的基礎。Hadoop大數據項目開發——
Sqoop概述目錄content02Sqoop特點01Sqoop簡介Sqoop簡介Sqoop由Apache軟件基金會提供。Sqoop是一款開源工具。用于在Hadoop和關系數據庫服務器之間傳輸數據的工具。于從關系數據庫導入數據到HadoopHDFS、Hive等,并從HadoopHDFS、Hive導出到關系數據庫。Sqoop簡介Sqoop項目開始于2009年,最早是作為Hadoop的一個第三方模塊存在。Sqoop類似于其他ETL工具,使用元數據模型來判斷數據類型并在數據從數據源轉移到Hadoop時確保類型安全的數據處理。Sqoop可以通過調整任務數來控制任務的并發度,自動完成數據
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學五年級學生國旗下演講稿《夏至的悄悄話》
- 學校學生會秘書部工作總結模版
- 學校讀書活動總結模版
- 工行撤銷委托協議
- 客服年終總結模版
- 學前兒童發展 課件 第2章 胎兒的發育與出生
- 反比例函數知識點總結模版
- 銅川市重點中學2025屆八年級數學第二學期期末學業水平測試模擬試題含解析
- 勾股定理思維導圖+題型總結模版
- 室性心律失常的臨床護理
- (6.4)-第四章 明確價值要求 踐行價值準則
- 人教版小學數學五年級下冊課件 5.1《旋轉》
- 麥肯錫:戰略方法論三層面法和財務模型
- 捷藍大健康生活館運營手冊
- 婦產科學-盆腔器官脫垂課件
- 園藝植物種質資源圖文
- 村史范本、模板
- 石膏板吊頂施工方案
- 投標函(格式范本)
- 消防設備設施應急操作培訓課件(PPT)
- stype kit操作手冊第一步調整水平平衡儀
評論
0/150
提交評論