前提
用户已经成功配置了hadoop 的 hdfs 和 yarn 环境。
成功安装了hive。
通过hive shell 访问hive
直接通过hive 命令进入shell
![](https://img.haomeiwen.com/i8451293/69e3c599b0c53b30.png)
显示如上内容就表示已经成功进入hive shell 了。
hive 创建数据库
$hive>create database mydb2 ;
$hive>use mydb2 ;
查看刚创建的数据库
![](https://img.haomeiwen.com/i8451293/9580c0a4163ce490.png)
可以看到已经有了 mydb2 这个库了。
hive 创建表
$hive>CREATE external TABLE IF NOT EXISTS t2(id int,name string,age int) COMMENT 'xx' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE ;
![](https://img.haomeiwen.com/i8451293/309cdcb9ca28aa0b.png)
删除表
drop table t2;
![](https://img.haomeiwen.com/i8451293/0357a2967467556d.png)
hive 插入数据
为了测试把刚才删除的表重新create
insert into t2(id,name,age) values(6,'moon',44);
![](https://img.haomeiwen.com/i8451293/67faa09a019159b7.png)
可以看到插入数据的过程是MapReduce 过程。
hive 查询数据
![](https://img.haomeiwen.com/i8451293/ecd43046bb2c87a3.png)
hive 删除数据
![](https://img.haomeiwen.com/i8451293/2fda438f2e4f8ccf.png)
提示不能执行删除操作
这是因为Hive是不支持更新操作的,你可以这样子做,从Hive表中查询出你想保留的数据,并且输入到原来的表中。
执行如下操作
insert overwrite table t2 select * from t2 where id != 6;
![](https://img.haomeiwen.com/i8451293/1e18a459fee1f7bd.png)
再查看数据
![](https://img.haomeiwen.com/i8451293/4e8e46ccc380ced6.png)
ok 已经删除了
hive load 数据
在linux 本地目录 编辑文件 customers.txt
![](https://img.haomeiwen.com/i8451293/65a402a7bc8c167d.png)
载入数据到hive
load data local inpath '/home/river/workspace/customers.txt' into table t2 ;
![](https://img.haomeiwen.com/i8451293/5882e0823f9d8393.png)
通过 命令 hdfs dfs -lsr /user/hive 查看文件是否已经上传成功
可以看到 customers.txt 文件已经在t2 表中
![](https://img.haomeiwen.com/i8451293/e144556d657ba96a.png)
通过hive 查看 数据
![](https://img.haomeiwen.com/i8451293/a3ce78cbb8968587.png)
可以看到数据已经在表里。
因为数据是以文件的形式存在在hive中的,所以我们通过hdfs 看到是文件形式。
测试 是否可以通过put命令将文件直接put到hdfs内后,是否可以通过hive查询出来
通过命令将文件直接put到hdfs 的hive 目录下
![](https://img.haomeiwen.com/i8451293/126a91164f550bf7.png)
再查看
![](https://img.haomeiwen.com/i8451293/2e6ad1a3496ad1ab.png)
ok 可以看到数据查询出来了。看来真的就是文件。而hive的load命令就是文件copy
网友评论