将本地文件导入 Hive 案例
需求
将本地/opt/module/data/student.txt 这个目录下的数据导入到 hive 的
student(id int, name string)表中。
1 数据准备
在/opt/module/data 这个目录下准备数据
(1)在/opt/module/目录下创建 data
mkdir -p /opt/module/data
(2)在/opt/module/data/目录下创建 student.txt 文件并添加数据
[dev1@hadoop102 data]$ touch student.txt
[dev1@hadoop102 data]$ vi student.txt
内容如下
1001 zhangshan
1002 lishi
1003 zhaoliu
注意以 tab 键间隔。
2 Hive 实际操作
(1)启动hive
[dev1@hadoop102 hive]$ bin/hive
(2)显示数据库
hive>show databases;
(3)使用default 数据库
hive>use default;
(4)显示default 数据库中的表
hive>show tables;
(5)删除已创建的 student 表
hive> drop table student;
(6)创建 student 表, 并声明文件分隔符’\t’
hive> create table student(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
terminated
英[ˈtɜːmɪneɪtɪd]
美[ˈtɜːrmɪneɪtɪd]
v. (使)停止,结束,终止; 到达终点站;
(7)加载/opt/module/data/student.txt 文件到 student 数据库表中。
hive> load data local inpath '/opt/module/data/student.txt' into table student;
(8)Hive 查询结果
hive> select * from student;
3.遇到的问题
Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient