Hive知識點(三) 基本命令

2021-10-06 17:16:05 字數 3812 閱讀 7700

5.hive中指定資料庫建表

6.linux介面執行hive語句

7.hive的日誌存放

8.問題點

default    #hive中預設有乙個資料default  

default指向的路徑是$

!clear  #清除

exit #退出

show databases; #檢視資料庫

default #hive中預設有乙個資料庫default

default指向的路徑是$

備註:其中建立的表預設都是在default資料庫中

在hdfs中我們使用外網ip:50070開啟web介面,在這裡就可以看到我們建立的資料庫,

其中他的存放規則$/資料庫名.db

hive.metastore.warehouse.dir #設定引數

/usr/hive/warehouse #這個是預設值

在default資料庫下建立表:

create table stu

(id int

,name string,age int

); #建立表

drop table 表名; #刪除表

表在hdfs上的目錄:$

/表名在其他的資料庫下建立表:

use 資料庫名稱; #切換到指定的資料庫名稱

如:use datatest;

create table stu1

(id int

,name string,age int

,*** string)

; #在datatest資料庫中建立表

表在hdfs上的目錄:/usr/hive/warehouse/庫名

分為全域性和區域性

1>設定在hive-site.xml #這個是全域性設定

2> set hive.cli.print.current.db; # 當前視窗設定,關掉當前視窗,前面就不會提示當前資料庫名稱 #檢視這個key的當前值

set key; #顯示key的值

set key=value; #這個是語法

如:set hive.cli.print.current.db=true; #設定引數值 ,這個就會在hive介面前面顯示當前使用的資料庫

vi hive-site.xml

<

!--在hive shell介面可以看到當前使用的資料庫--

>

hive.cli.print.current.db<

/name>

true<

/value>

<

/property>

<

!--在查詢結果中會顯示表名.欄位,方面檢視--

>

hive.cli.print.header<

/name>

true<

/value>

<

/property>

set key=value;  #設定引數

sql...

set key; #還原引數

如:這個如果設定了全域性,則這裡可以使用

set hive.cli.print.current.db=false;

使用sql完成以後

再執行set hive.cli.print.current.db;恢復之前的引數true

其中調優的時候許多的引數是可以調整的,但是很多的引數是不能設定到全域性,因為調優是針對作業的,不一定是針對全域性的,不同的作業,調優的引數和方向是不同的。

其中未指定資料庫,則預設將表存放在default資料庫中

create database zw_hive;

use za_hive;

create table stu

(id int

,name string,age int);

insert into table stu values(1

,'liming',14

);在hdfs的web介面重新整理在指定的路徑下面就可以看到表

desc formatted 表名; #更詳細的表資訊,包括表結構,存在的庫,建立時間、在hdfs中存放路徑等資訊。

如:desc formatted stu;

desc 表名; #檢視表結構 包括列名(col_name)、資料型別(data_type)、注釋(comment)

如:desc stu1;

hive -e "select * from stu"

hive -f 指定sql檔案 #在檔案中寫入select * from stu 然後在linux中執行hive -f a.sql 結構是一樣的

在hive互動介面執行select * from stu <=

=>在linux視窗執行 hive -e "select * from stu" #這兩個語句是相同的,執行結構是一樣的

hive  #啟動hive

mv hive-log4j.properties.template hive-log4j.properties

vi hive-log4j.properties #這個要子設定

hive.root.logger=info,console

hive.security.logger=info,console

hive.log.dir=$

/$ #這個明天檢視是否存在還是自己需要新增

hive.log.file=hive.log$/

==》/tmp

$==》hadoop

即/tmp/hadoop/hive.log

檢視日誌:

cd /tmp/hadoop

ll #顯示有hive.log 這個就是hive的日誌

tail -

200f hive.log #即在hive中執行的命令或者狀態之類的都會記錄在這裡面,所以在hive出現異常資訊,就是在這個裡面看hive日誌資訊。

建立表提示錯誤:

ailed: execution error,

return code 1 from org.apache.hadoop.hive.ql.exec.ddltask.

metaexception

(message:an exception was thrown while adding/validating class

(es)

: column length too big for column 'type_name'

(max =

21845

); use blob or text instead

com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception: column length too big for column 'type_name'

(max =

21845

); use blob or text instead

原因:mysql中讀取欄位的格式不對

solve:

mysql -uroot -p

alter database hive character set latin1;

flush privleges;

hive 基本命令

1.建立 create 建立資料庫 表 檢視 初級 create database table view schema name 在sql引擎內,均可用schema代替database 高階 create database if not exists name with dbproperties c...

hive知識點詳解

hive支援的常用資料型別和檔案格式 hive是一種構建在hadoop上的資料倉儲,hive把sql查詢轉換為一系列在hadoop集群中執行的mapreduce作業,是mapreduce更高層次的抽象,不用編寫具體的mapreduce方法。hive將資料組織為表,這就使得hdfs上的資料有了結構,元...

學習hive知識點

1 建立檢視 hive create view valid records as select from records2 where temperature 9999 2 檢視檢視詳細資訊 hive describe extended valid records 3 從表中匯出資料 hadoop ...