本地建立/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 ...