本地檔案匯入hive(beeline)案例 1

2021-10-09 20:18:51 字數 3880 閱讀 2201

本地建立/export/data/student.txt檔案,把資料匯入到 hive 的 student(id int, name string)表中。

1.資料準備

(1)在/export/servers/data 這個目錄下準備資料

[root@ambari01 /]

# mkdir -p /export/data

[root@ambari01 /]

# cd /export/data

(2)在/export/data目錄下建立 student.txt 檔案並新增資料

[root@ambari01 data]

# vim student.txt

[root@ambari01 data]

# cat student.txt

101 hadoop

102 hive

103 hbase

2.hive 實際操作

​ 這裡可以在命令列直接輸入hive進入,但是我的環境剛開始可以啟動,後邊出現卡死狀態,所以我就放棄了這種方式,採用了beeline方式進行hive連線了。

(1)啟動 hive

[root@ambari01 data]

# cd /usr/hdp/2.6.5.0-292/hive/bin/

[root@ambari01 bin]

# beeline -u jdbc:hive2://localhost:10000

connecting to jdbc:hive2://localhost:10000

20/09/27 16:36:54 info utils: supplied authorities: localhost:10000

20/09/27 16:36:54 info utils: resolved authority: localhost:10000

20/09/27 16:36:54 info hiveconnection: will try to open client transport with jdbc uri: jdbc:hive2://localhost:10000

connected to: apache hive (version 1.2.1000.2.6.5.0-292)

driver: hive jdbc (version 1.21.2.2.6.5.0-292)

transaction isolation: transaction_repeatable_read

beeline version 1.21.2.2.6.5.0-292 by apache hive

0: jdbc:hive2://localhost:10000>

(2)顯示資料庫

0: jdbc:hive2://localhost:10000> show databases;
(3)刪除資料庫

0: jdbc:hive2://localhost:10000> drop database test cascade;
(4)建立test資料庫

0: jdbc:hive2://localhost:10000> create database if not exists test

;

(5)進入test資料庫

0: jdbc:hive2://localhost:10000> use test

;

(6)設定顯示當前資料庫(操作久了,容易忘記)

0: jdbc:hive2://localhost:10000>

select current_database(

);

(7)顯示 所有表

0: jdbc:hive2://localhost:10000> show tables;
(8)刪除已建立的 student 表

0: jdbc:hive2://localhost:10000> drop table student;
(6)建立 student 內部表, 並宣告檔案分隔符』\t』

0: jdbc:hive2://localhost:10000> create table student(id int, name string) row format delimited fields terminated  by '\t'

;

(7)檢視表資訊

0: jdbc:hive2://localhost:10000> desc student;
(7)載入/export/data/student.txt 檔案到 student 資料庫表中。

0: jdbc:hive2://localhost:10000> load data local inpath '/export/data/student.txt' into table student;
注意:這裡涉及到乙個上傳目錄跟檔案的問題,如果你是本機用以上命令沒有問題。

(坑)你本機ip是103,你遠端連線的是104的主機

[root@ambari01 bin]

# ip addr

2: eno1:

mtu 1500 qdisc mq state up group default qlen

inet 192.168.51.103/24

[root@ambari01 bin]

# beeline -u jdbc:hive2:

0: jdbc:hive2:> load data local inpath '/export/data/student.txt' into table student;

error: error while compiling statement: failed: semanticexception line 1:23 invalid path ''/export/data/student.txt''

: no files matching path file:/export/data/student.txt (state=42000,code=40000)

會報以上錯誤,其實是應為你的104主機沒有/export/data/student.txt

解決方法一:

在104的機子上建立/export/data/student.txt檔案就可以解決。

解決方法二:

直接把檔案上傳的hdfs上從hdfs檔案中獲取(這裡還有乙個坑,注意看命令它是沒有local,load data:載入資料; local:本地資料 inpath:檔案的位址 overwrite:覆蓋表中的資料 加overwrite是重寫表的資料,不加是追加資料)

0: jdbc:hive2:> load data inpath '/export/data/student.txt' into table student;

(8)結果查詢

0: jdbc:hive2:> select * from student;

+-------------+---------------+--+

| student.id | student.name |

+-------------+---------------+--+

| 101 | hadoop |

| 102 | hive |

| 103 | hbase |

+-------------+---------------+--+

VUE 匯入本地json檔案

同樣的問題已經碰見了兩三次了,都是扒以前的 這次做個記錄 1.直接匯入,直接使用 在需要使用的vue檔案中 import 名稱 from json檔案位址 宣告乙個變數接收,例如 let data 名稱 然後就可以使用了,之前好像測試過放在static下,打包後訪問不了,但具體是啥情況已經記不清了,...

hive 本地檔案匯入表

在hive中將本地檔案匯入 建立名為idata tmp.yanxue hivetest的表 create table idata tmp.yanxue hivetest num int name string row format delimited fields terminated by t 注...

將本地檔案匯入 Hive 案例

需求 將本地 export servers data student.txt 這個目錄下的資料匯入到 hive 的 student id int,name string 表中。1 資料準備 1 在 export servers data 這個目錄下準備資料 root hadoop01 export ...