1、开启hive
1.1 进入 hive/bin
[root@hadoop0001 bin]#cd /opt/software/apache-hive-1.2.1-bin/bin/
1.2执行 hive 命令,开启hive
[root@hadoop0001 bin]#hive
1.3若开启正常跳过,若报Cannot create directory /tmp/hive/root/533855bd-351b-4146-9227-10c16868ffd3. Name node is in safe mode.错误
完整错误如下
这个错误是由于开启hadoop集群是进入了安全模式
[root@hadoop0001 bin]# hadoop dfsadmin -safemode leave
退出安全模式后执行1.2 开启成功
2、退出hive窗口
hive> exit;
或者
hive> quit;
3、Hive命令行的使用
[root@hadoop0001 bin]# hive --help --service cli
(2)显示数据库
hive> show databases;
(3)使用default数据库
hive> use default;
(4)显示default数据库中的表
hive> show tables;
(5)创建student表, 并声明文件分隔符’\t’
hive> create table student(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
(6)加载/opt/student.txt 文件到student数据库表中。
hive> load data local inpath '/opt/student.txt' into table student;
(7)Hive查询结果
hive> select * from student;
若输入文件很小,但是分布式任务的生成的其他过程会消耗大量时间。
这样的情况,适合在本地模式下运行。
适合在本地模式的情况:
1.job的输入数据大小必须小于参数:hive.exec.mode.local.auto.inputbytes.max(默认128MB)
2.job的map数必须小于参数:hive.exec.mode.local.auto.tasks.max(默认4)
3.job的reduce数必须为0或者1
解决方案:配置参数
hive> set hive.exec.mode.local.auto=true;
4、DDL数据定义
4.1 创建数据库
基本语法:
4.2查询数据库
4.2.1 显示数据库
1、查询数据库
基本语法:show databases;
hive> show databases;
2、模糊查询数据库
基本语法:show databases like '需查询的数据库名的部分*';
4.2.2查询数据库详情
1.显示数据库信息
基本语法:desc database 数据库名;
hive> desc database stude;
4.2.3切换数据库
基本语法:use 数据库名;
hive> use student1
4.3 修改数据库
SET DBPROPERTIES ('property_name'='property_value' [, ...]
为名为 property_name
的数据库指定一个或多个属性,并分别将每个属性的值设置为 property_value
。如果 property_name
已存在,则会用 property_value
覆盖旧值。
hive> ALTER SCHEMA student1
> SET DBPROPERTIES ('creator'='HYT');