hive學習筆記

2021-08-11 20:55:55 字數 2224 閱讀 5054

自己學習總結,學習交流**460570824

什麼是hive:

hive是基於hadoop之上的資料倉儲,資料存放在hdfs上,它同樣可以通過etl來進行資料的抽取、轉換和載入。同時hive可以自己開發mapreduce程式來完成本身不能提供的資料處理操作。hive本身就是乙個sql的解析引擎,他將sql 語句轉成mapreduce任務在hadoop之上執行。

什麼是資料倉儲:

資料倉儲是乙個面向主題的,整合的,不可更新的,隨時間不變化的資料集合,它用於支援企業或組織的決策分析處理。

oltp:聯機事務處理(面向的是事務,需要實時的更新操作,銀行轉賬)

olap:聯機分析處理(面向歷史資料,進行資料的分析與挖掘,主要面向查詢,不會做更新和插入資料,推薦系統)

hive的體系結構:

hive將元資料儲存在資料庫中(metastore),這個資料庫支援mysql、derby等資料庫中。hive預設是儲存在derby資料庫中。

hive的元資料有哪些? 包括表的名字、表的列和分割槽及其屬性,表的屬性包括是否為外部表等,表的資料所在目錄等。

首先hive是基於hadoop的,所以hive的資料會使用hdfs進行儲存,同時hive的查詢操作也是轉化成hadoop的mapreduce操作,所以在hive中會存在乙個hive driver:包括編譯器、解析器和優化器。

在hive的驅動之前有訪問介面、jdbc以及webconsole等方式進行操作。當然hive的元資訊是存放在關係型資料庫中的。

hql的執行過程:

直譯器、編譯器、優化器完成hql查詢語句從詞法分析、語法分析、編譯、優化以及查詢計畫的生成。生成的查詢計畫儲存在hdfs中,並在隨後的mapreduce呼叫執行。

hive的安裝:

hive的安裝之前需要先將hadoop安裝好,hive有三種安裝方式:嵌入模式、本地模式、遠端模式。

嵌入模式:hive將元資訊儲存在hive自帶的derby資料庫中。但是這種操作方式存在一些缺陷: 1. 只允許建立乙個連線,也就是只允許乙個使用者操作hive 2. 多用於demo

在安裝hive之前需要先安裝hadoop,然後把hive的壓縮包解壓,在bin目錄下執行./hive進入hive的啟動指令碼,這種方式就是使用的嵌入式模式啟動hive,會在當前目錄下生成乙個metastore_db的目錄,這個就是元資訊目錄。

本地模式:hive將元資訊儲存在mysql資料庫中,mysql資料庫與hive執行在同一臺物理機上。這種方式可以允許多個使用者操作hive,可以用於開發和測試。

元資訊儲存在遠端的mysql中。進入遠端mysql中,mysql -u … -p … , 進入後使用create database hive建立乙個hive資料庫來儲存元資料。

在hive解壓後,把mysql的驅動jar包上傳到hive的lib目錄中。這樣hive才能操作mysql資料庫。然後需要更改hive的配置檔案。在conf中建立乙個hive-site.xml檔案

hive的管理

使用hive的指令碼直接進入hive,或者 hive –service cli

cli常用的命令:

清屏:ctrl + l 或者 !clear;

檢視資料倉儲中的表: showtables;

檢視資料倉儲中的函式:showfunctions;

檢視表結構: desc 表名;

檢視hdfs上的檔案列表: dfs -ls /user 檢視hadoop上/user上的檔案

執行linux命令: !命令

執行hql語句:select * from test;當執行這個語句的時候是不會開啟乙個mapreduce任務的,因為這個是獲取全部的資料,獲取全部的資料只需要把所有的資料讀取出來就可以了,並不需要啟動乙個任務。但是在執行select name from test;查詢某乙個欄位的資訊的時候就需要啟動乙個mapreduce任務了。

可以執行乙個sql指令碼:source /root/test.sql 這個語句就是啟動乙個執行sql指令碼。這種方式就是和mysql執行外部的資訊一樣。

hive -s 進入hive啟動任務不會產生除錯資訊,直接產生mapreduce的結果。

hive -e 執行sql語句。hive -e 『show tables』;這樣的執行就直接在linux的命令列操作就行,並不需要進入hive的互動式中執行。

web介面方式:

啟動方式: #hive –service hwi & 在0.13.0中並沒有包含web管理的war包,需要自己編譯。

Hive學習筆記 Hive 引數

第一部分 hive 引數 hive.exec.max.created.files 說明 所有hive執行的map與reduce任務可以產生的檔案的和 預設值 100000 hive.exec.dynamic.partition 說明 是否為自動分割槽 預設值 false hive.mapred.re...

Hive學習筆記 Hive概述

1.1 資料倉儲 可以利用資料倉儲來儲存我們的資料,但是資料倉儲有別於我們常見的一般資料庫。資料倉儲是乙個面向主題的 整合的 不可更新的 隨時間不變化的資料整合,它用於支援企業或組織的決策分析處理。物件導向的 倉庫中的資料是按照一定的主題進行組織的。主題即使用者使用資料倉儲進行決策時所關心的重點方面...

hive學習筆記

在使用hive進行開發時,我們往往需要獲得乙個已存在hive表的建表語句 ddl 然而hive本身並沒有提供這樣乙個工具。要想還原建表ddl就必須從元資料入手,我們知道,hive的元資料並不存放在hdfs上,而是存放在傳統的rdbms中,典型的如mysql,derby等,這裡我們以mysql為元資料...