您當前的位置:首頁 > 繪畫

Hive初識二

作者:由 飛半天的魚兒 發表于 繪畫時間:2021-09-28

繼上篇文章寫完對hive的一些基本認識之後,本篇文章對hive的安裝以及一些的使用做一個簡單的介紹~

一、hive的安裝

要想在一臺linux伺服器上安裝hive,首先要具備以下三個條件

(1)JDK

(2)HADOOP

(3)MYSQL

在這裡,我預設各路大神已經安裝完了JDK,以及hadoop,直接介紹mysql的安裝(後期也會寫一篇安裝Hadoop的叢集版和單機版)。

1。安裝mysql(離線方式)

(1)下載mysql的安裝包,我這裡下載的是5。1。73版本

(2)查詢linux中已有的mysql依賴包

rpm -qa | grep mysql

(3)刪除linux中已有的mysql依賴包

rpm -e ——nodeps `rpm -qa | grep mysql`

(4)安裝服務端和客戶端

服務端:rpm -ivh MySQL-server-5。1。73-1。glibc23。x86_64。rpm

客戶端:rpm -ivh MySQL-client-5。1。73-1。glibc23。x86_64。rpm

(5)啟動mysql server服務

service mysql start(注意:離線安裝後mysql的服務名稱為mysql,線上安裝後的服務名稱為msyqld)

(6)將mysql服務加入到開機啟動項

chkconfig mysql on

(7)進行使用者名稱密碼設定

mysql_secure_installation

(8)對遠端可訪問的機器進行授權

在mysql伺服器登入:mysql -uroot -proot (-u mysql的使用者名稱,-p mysql的密碼)

(9)然後執行以下sql語句:

grant all privileges on *。* to ‘root’@‘%’ identified by ‘root’;

flush privileges;

至此,mysql的離線安裝已經完成(既然有離線安裝,那麼必然有線上安裝方式,此處我就不進行過多介紹了)

2。安裝Hive

我這裡用的hive版本是2。1。0

(1)解壓Hive檔案

tar -zxvf apache-hive-2。1。0-bin。tar。gz -C /opt/soft/hive

然後進入$HIVE_HOME/conf/修改檔案(將以下兩個檔案複製一份,防止以後丟失):

cp hive-env。sh。template hive-env。sh

cp hive-default。xml。template hive-site。xml

(2)修改$HIVE_HOME/bin的hive-env。sh,增加以下三行

export JAVA_HOME=/opt/jdk (指定java的安裝目錄)

export HADOOP_HOME=/opt/hadoop (指定hadoop的安裝目錄)

export HIVE_HOME=/opt/hive (指定hive的安裝目錄)

(3)修改$HIVE_HOME/conf/hive-site。xml

javax。jdo。option。ConnectionURL

jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true

javax。jdo。option。ConnectionDriverName

com。mysql。jdbc。Driver

javax。jdo。option。ConnectionUserName

root

javax。jdo。option。ConnectionPassword

root

hive。querylog。location

/opt/hive/tmp

hive。exec。local。scratchdir

/opt/hive/tmp

hive。downloaded。resources。dir

/opt/hive/tmp

(4)初始化hive元資料倉庫

進入到執行目錄$HIVE_HOME/bin

。/schematool -initSchema -dbType mysql -userName root -passWord root

(5)啟動hive

①。/hive (客戶端啟動)

②$HIVE_HOME/bin/hive ——service hiveserver2 (啟動hiveserver2,使其他服務可以透過thrift接入hive,但此處需要配置hadoop以及在hive-site。xml增加配置,具體請移步

https://

blog。csdn。net/lblblblbl

zdx/article/details/79760959

③使用遠端的metastore (metastore可以和hive客戶端不在一個機器上,具體見上面連結)

至此hive的安裝已經全部完成啦~下面就盡情的使用吧~

二、 hive的基本使用

(1)建立資料庫,及使用資料庫

create database hivedemo;

use hivedemo;

(2)顯示當前正在使用的資料庫,及顯示資料庫列表

set hive。cli。print。current。db=true;

show databases;

(3)刪除資料庫

drop database hivedemo;

(4) 關於資料庫的基本操作

在hive中,除了string和複合型別(array、map、struct)之外,基本和mysql一致。

①建立表:

create table 表名(

欄位名 欄位型別 註解comment, 。。。 ,

欄位名 欄位型別 註解comment

) comment “”;

例如。

create table t1(

id int,

name string comment “this is t1‘s column name”

) comment “TABLE t1”;

②向表中增加一列

alter table1 add columns(age int);

③刪除表和表中的資料

drop table table1 ;

truncate table table_name;

按照分割槽刪除資料:alter table table_name drop partition (partition_name=’分割槽名‘)

④hive hql的執行方式

hive客戶端:hive> source /opt/data/hive/hive-t1。hql;

linux終端:

執行sql指令碼:/opt/hive/bin/hive -f hive-t1-1。hql

執行sql語句:/opt/hive/bin/hive -e “set hive。exec。mode。local。auto=true;select * from test;”

也可以寫成以下方式:

/opt/hive/bin/hive -f hive-t1-1。hql ——hiveconf hive。exec。mode。local。auto=true

/opt/hive/bin/hive -e “select * from test;” ——hiveconf hive。exec。mode。local。auto=true

⑤向hive中匯入資料的方式

伺服器本地檔案:load data local inpath ’/opt/data/hive/hive-t1-1。txt‘ into table t1;

hdfs上檔案:hdfs dfs -put /opt/data/hive/hive-t1-1。txt /user/hive/warehouse/t1/

我們在匯入資料的時候會發現,資料並沒有匯入成功,那是因為資料來源是我們自定義的資料,行和列的有關的分隔符,並沒有告訴hive如何去解析,或者我們可以這樣理解,我們自己定義的資料來源中的分隔符和hive表預設的分隔符並不一致。

那麼hive預設的分隔符是什麼呢?是什麼呢?

在hive中 行之間的預設分隔符是\n,預設的列分隔符是\001(這個太噁心了),這個我們在鍵盤上可以直接用ctrl+v ctrl+a的組合鍵來直接打出\001這個噁心的符號。

⑥資料進入hive的載入模式(分別是讀模式和寫模式)

讀模式:

將資料載入到表中的時候,對資料的合法性不進行校驗,只有在操作表的時候,才會去對資料的合法性進行一個校 驗,不合法的資料會被顯示為NULL。

寫模式:

在資料載入到表中時,需要對資料的合法性進行一個校驗,只有合法的資料,才會被載入到資料庫中。

這種預設比較適合事務性資料庫載入資料,常見的資料庫入mysql、oracle都是採用的這種模式。

⑦自定義分隔符

create table t2 (

id int,

name string,

標簽: hive  MySQL  OPT  T1  安裝