Hive基本 *** 作

Hive基本 *** 作,第1张

Hive基本 *** 作 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;

exit:先隐性提交数据,再退出;

quit:不提交数据,退出;

3、Hive命令行的使用
[root@hadoop0001 bin]# hive --help --service cli

usage: hive
 -d,--define          Variable subsitution to apply to hive
                                  commands. e.g. -d A=B or --define A=B

#定义一个变量值,这个变量可以在Hive交互Shell中引用,例如:-d A=B
 

  --database     Specify the database to use

#进入Hive交互Shell时候指定数据库,默认进入default数据库


 -e         SQL from command line

#命令行执行一段SQL语句


 -f                    SQL from files

#filename文件中保存HQL语句,执行其中的语句


 -H,--help                        Print help information

#显示帮助信息


    --hiveconf   Use value for given property

#在命令行中设置Hive的运行时配置参数,优先级高于hive-site.xml,但低于Hive交互Shell中使用Set命令设置。


    --hivevar         Variable subsitution to apply to hive
                                                commands. e.g. --hivevar A=B

#同:define
 -i                    Initialization SQL file

#进入Hive交互Shell时候先执行filename中的HQL语句
 -S,--silent                      Silent mode in interactive shell

#静默模式,指定后不显示执行进度信息,最后只显示结果


 -v,--verbose                     Verbose mode (echo executed SQL to the
                                  console) 

#冗余模式,额外打印出执行的HQL语句

(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;


OK
22      33
1001    hyt
1002    zhangsan
1003    lisi
Time taken: 0.408 seconds, Fetched: 4 row(s)

 在执行插入数据等job任务出错:

Number of reduce tasks is set to 0 since there's no reduce operator
#翻译:由于没有减少 *** 作符,减少任务数被设置为0

若输入文件很小,但是分布式任务的生成的其他过程会消耗大量时间。

这样的情况,适合在本地模式下运行。

适合在本地模式的情况:

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

解决方案:配置参数

set hive.exec.mode.local.auto=true;

hive> set hive.exec.mode.local.auto=true;
4、DDL数据定义 4.1 创建数据库

基本语法:

1、默认存储在/data/hive/warehouse文件夹下

create database 数据库名 ;

hive> create database student;

 

2、避免重复创建至错:

create database if not exist 数据库名 ;

hive> create database if not exists student;

3、指定在HDFS中存放的位置(要指定数据库名)

create database if not exist 数据库名 location '/指定的目录' ;

hive> create database if not exists stude location '/hive.db';

 

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');

 4.4删除数据库

1.删除空数据库

drop database 数据库名

hive>drop database stude;

2.如果删除的数据库不存在,最好采用 if exists判断数据库是否存在

drop database if exists 数据库名

hive> drop database stude;

FAILED: SemanticException [Error 10072]: Database does not exist: stude

hive> drop database if exists stude;

3.如果数据库不为空,可以采用cascade命令,强制删除

drop database 数据库名 cascade;

hive> drop database stude;

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Database stude is not empty. One or more tables exist.)

hive> drop database stude cascade;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5699908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存