IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hive-常用命令 -> 正文阅读

[大数据]Hive-常用命令

Hive常用交互命令

-e:不进入hive的交互窗口执行sql语句

bin/hive -e "select id from test;"

-f:执行脚本中sql语句

创建sql脚本hive.sql

select * from test;

执行脚本

bin/hive -f data/hive.sql > data/result.txt

Hive常用命令

退出hive窗口

hive> exit;
hive> quit;

在hive客户端命令窗口中如何查看hdfs文件系统

hive> dfs -ls /;

查看在hive中输入的所有历史命令

进入到当前用户的根目录cd ~,查看.hivehistory文件

cat .hivehistory

Hive运行日志信息配置

Hive的log 默认存放在/tmp/当前用户名/hive.log 目录下

image-20210724102500277

修改hive的 log 存放日志到/opt/module/hive/logs

第一步:修改hive/conf/hive-log4j2.properties.template文件名称为hive-log4j2.properties

第二步:在hive-log4j2.properties文件中修改log存放位置

image-20210724102916944

打印当前库和表头

在hive-site.xml中加入如下两个配置

<property>
    <name>hive.cli.print.header</name>
    <value>true</value>
</property>
<property>
    <name>hive.cli.print.current.db</name>
    <value>true</value>
</property>

image-20210724103454782

Hive参数配置方式

查看当前所有的配置信息

hive> set

参数的配置三种方式

参数的配置三种方式

默认配置文件:hive-default.xml

用户自定义配置文件:hive-site.xml

用户自定义配置会覆盖默认配置,另外Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖Hadoop的配置。配置文件的设定对本机启动的所有Hive进程都有效

命令行参数方式

启动Hive时,可以在命令行添加-hiveconf param=value来设定参数,仅对本次hive启动有效

bin/hive -hiveconf mapred.reduce.tasks=10;

查看参数设置

hive> set mapred.reduce.tasks;

image-20210724105545277

参数声明方式

可以在HQL中使用SET关键字设定参数

hive> set mapred.reduce.tasks=100;

上述三种设定方式的优先级依次递增。即配置文件<命令行参数<参数声明。注意某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了

Hive数据类型

基本数据类型

Hive数据类型Java数据类型长度例子
TINYINTbyte1byte有符号整数20
SMALINTshort2byte有符号整数20
INTint4byte有符号整数20
BIGINTlong8byte有符号整数20
BOOLEANboolean布尔类型,true或者falseTRUE FALSE
FLOATfloat单精度浮点数3.14159
DOUBLEdouble双精度浮点数3.14159
STRINGstring字符系列,可以指定字符集,可以使用单引号或者双引号。hive
TIMESTAMP时间类型
BINARY字节数组

对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储2GB的字符数

集合数据类型

数据类型描述语法示例
STRUCT和c语言中的struct类似,都可以通过“点”符号访问元素内容。例如,如果某个列的数据类型是STRUCT{first STRING, last STRING},那么第1个元素可以通过字段.first来引用struct()
MAPMAP是一组键-值对元组集合,使用数组表示法可以访问数据。例如,如果某个列的数据类型是MAP,其中键 ->值对是’first’->’John’和’last’->’Doe’,那么可以通过字段名[‘last’]获取最后一个元素map()
ARRAY数组是一组具有相同类型和名称的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,编号从 零开始。例如,数组值为[‘John’, ‘Doe’],那么第2个元素可以通过数组名[1]进行引用Array()

Hive有三种复杂数据类型ARRAY、MAP和STRUCT。ARRAY和MAP与Java中的Array和Map类似,而STRUCT与C语言中的Struct类似,它封装了一个命名字段集合,复杂数据类型允许任意层次的嵌套

集合数据操作

{
 	"name": "czs",
 	"friends": ["qhh" , "xyx"] , //列表 Array, 
 	"children": { //键值 Map,
 	"czs age": 18 ,
 	"qhh age": 19
 	}
 	"address": { //结构 Struct,
 	"street": "tkk",
 	"city": "xujc"
 	}
}

创建数据库

create table stu
(
name string,
friends array<string>,
children map<string,int>,
address struct<street:string,city:string>
)
row format delimited fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n';

row format delimited fields terminated by ',':列分隔符

collection items terminated by '_':MAP STRUCT和ARRAY的分隔符(数据分割符号)

map keys terminated by ':':MAP中的key与value的分隔符

lines terminated by '\n';:行分隔符

创建数据

数据繁多,可以通过外部文件方式导入数据

czs,qhh_xyx,czs age:18_qhh age:19,tkk_xujc

导入文本数据到测试表

load data local inpath 'hive/datas/test.txt' into table test;

访问数据

select friends[1],children['czs age'],address.city from test where name="czs";

Hive类型转化

Hive的原子数据类型是可以进行隐式转换的,类似于Java的类型转换,例如某表达式使用INT类型,TINYINT会自动转换为INT类型,但是 Hive不会进行反向转化,例如,某表达式使用TINYINT类型,INT不会自动转换为TINYINT类型,它会返回错误,除非使用CAST操作

隐式类型转换规则

  • 任何整数类型都可以隐式地转换为一个范围更广的类型,如TINYINT可以转换成INT,INT可以转换成BIGINT
  • 所有整数类型、FLOAT和STRING类型都可以隐式地转换成DOUBLE
  • TINYINT、SMALLINT、INT都可以转换为FLOAT
  • BOOLEAN类型不可以转换为任何其它的类型

使用CAST操作显示进行数据类型转换

CAST(‘1’ AS INT)将把字符串’1’ 转换成整数 1;如果强制类型转换失败,如执行 CAST(‘X’ AS INT),表达式返回空值 NULL

select '1'+2, cast('1'as int) + 2;
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-26 12:08:54  更:2021-07-26 12:09:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/19 17:35:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码