我是靠谱客的博主 漂亮小天鹅,这篇文章主要介绍命令行操作Hive,现在分享给大家,希望可以做个参考。

针对命令行这种方式,其实还有两种使用
第一个是使用bin目录下的hive命令,这个是从hive一开始就支持的使用方式。后来又出现一个beeline命令,它是通过HiveServer2服务连接hive,它是一个轻量级的客户端工具,所以 后来官方开始推荐使用这个。

1:先看第一种,这种直接就可以连进去

复制代码
1
2
3
4
5
[root@test apache-hive-3.1.2-bin]# bin/hive Hive-on-MR is deprecated in Hive 2 and may not be available in the future ver Hive Session ID = e106db23-21b8-488f-8c13-85efd30f395a hive>

这里有一行信息提示,从Hive2开始Hive-on-MR就过时了,并且在以后的版本中可能就不维护了,建议 使用其它的计算引擎,例如:spark或者tez

下面以hive开头的内容就是说明我们进入了Hive的命令行中,在这里就可以写Hive的SQL了

创建一个表

复制代码
1
2
3
4
hive> create table t1(id int,name string); OK Time taken: 1.064 seconds

查看有哪些表

复制代码
1
2
3
4
5
hive> show tables; OK t1 Time taken: 0.18 seconds

向表里面添加数据

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
hive> insert into t1(id,name) values(1,"zs"); Query ID = root_20200506162317_02b2802a-5640-4656-88e6-1e4eaa811017 Total jobs = 3 Launching Job 1 out of 3 Number of reduce tasks determined at compile time: 1 In order to change the average load for a reducer (in bytes): set hive.exec.reducers.bytes.per.reducer=<number> In order to limit the maximum number of reducers: set hive.exec.reducers.max=<number> In order to set a constant number of reducers: set mapreduce.job.reduces=<number> Starting Job = job_1588737504319_0001, Tracking URL = http://bigdata01:8088/ Kill Command = /data/soft/hadoop-3.2.0/bin/mapred job -kill job_15887375043 Hadoop job information for Stage-1: number of mappers: 1; number of reducers 2020-05-06 16:23:36,954 Stage-1 map = 0%, reduce = 0% 2020-05-06 16:23:47,357 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 3.1 2020-05-06 16:23:56,917 Stage-1 map = 100%, reduce = 100%, Cumulative CPU 5 MapReduce Total cumulative CPU time: 5 seconds 160 msec Ended Job = job_1588737504319_0001 Stage-4 is selected by condition resolver. Stage-3 is filtered out by condition resolver. Stage-5 is filtered out by condition resolver. Moving data to directory hdfs://bigdata01:9000/user/hive/warehouse/t1/.hive- Loading data to table default.t1 MapReduce Jobs Launched:  Stage-Stage-1: Map: 1 Reduce: 1 Cumulative CPU: 5.16 sec HDFS Read: 1520 Total MapReduce CPU Time Spent: 5 seconds 160 msec OK Time taken: 41.534 seconds

可以看到,此时就产生了MapReduce任务

查询数据

复制代码
1
2
3
4
5
hive> select * from t1; OK 1 zs Time taken: 2.438 seconds, Fetched: 1 row(s)

删除表

复制代码
1
2
3
4
hive> drop table t1; OK Time taken: 0.89 seconds

2:接着看一下第二种方式 beeline
我们要先启动hive的服务

复制代码
1
2
bin/hiveserver2

然后使用beeline连接

复制代码
1
2
bin/beeline -u jdbc:hive2://localhost:10000

这里可能会碰到匿名用户对/tmp/hadoop-yarn没有权限的问题,解决方案有两个:

  1. 给hdfs中的/tmp/hadoop-yarn设置777权限,让匿名用户具备权限可以直接给tmp及下面的所有目录设置777权限
复制代码
1
2
hdfs dfs -chmod -R 777 /tmp
  1. 在启动beeline的时候指定一个对这个目录有操作权限的用户
复制代码
1
2
bin/beeline -u jdbc:hive2://localhost:10000 -n root

具体的表操作和方式1是一样的,这里就不重复讲解了。

最后

以上就是漂亮小天鹅最近收集整理的关于命令行操作Hive的全部内容,更多相关命令行操作Hive内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部