作者:陈俊英围脖_687 | 来源:互联网 | 2023-10-12 18:37
Hive常识Hive中没有定义专门的数据格式不需要从用户数据格式到Hive定义的数据格式的转换不会对数据本身进行任何修改,甚至不会对数据进行扫描不会对数据中的
Hive常识
Hive中没有定义专门的数据格式
不需要从用户数据格式到 Hive 定义的数据格式的转换
不会对数据本身进行任何修改,甚至不会对数据进行扫描
不会对数据中的某些 Key 建立索引
Hive 不适合在线数据查询
Hive数据库、表在HDFS上存储的路径
/user/hive/wearhouse
Hive 的数据库、数据表、分区 在HDFS上的存在形式是什么
文件夹
Hive和传统数据库的区别
Hive延迟较高的原因
Hive内部解析、编译等流程需要时间。提交任务后,提交到Yarn,Yarn内部调度机制需要时间。Hive内
的数据较大,比较耗时。
where 与having的区别
Where可以作用在表中所有的字段上
Having可以只能作用在结果字段上(select 后面的字段)
order by与sort by的区别
order by 全局排序,只有一个reduce,数据量大时效率较慢
sort by 一个reduce内部排序,不是全局排序。
LIKE和RLIKE区别
Like 后面不能加正则表达式
Rlike 后面能加正则表达式
GROUP BY用法
group by的字段,必须是select后面的字段,select后面的字段不能比group by的字段多,若有多的字
段,必须使用聚和函数。
distribute by+sort by(相同字段) 与Cluster by的区别
DISTRIBUTE BY的字段与SORT BY的字段相同时,可以使用CLUSTER BY进行替换,但CLUSTER
BY不能指定排序规则(只能是升序),DISTRIBUTE BY+SORT BY可以指定排序规则(可升可降)
Hive的参数设置
配置文件:Hive的配置文件包括
用户自定义配置文件:$HIVE_CONF_DIR/hive-site.xml
默认配置文件:$HIVE_CONF_DIR/hive-default.xml
用户自定义配置会覆盖默认配置。
另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖
Hadoop的配置。
配置文件的设定对本机启动的所有Hive进程都有效。命令行参数:启动Hive(客户端或Server方式)时,可以在命令行添加-hiveconf param=value来设定
参数,例如:
bin/hive -hiveconf hive.root.logger=INFO,console
这一设定对本次启动的Session(对于Server方式启动,则是所有请求的Sessions)有效。参数声明:可以在HQL中使用SET关键字设定参数,例如:
set mapred.reduce.tasks=100;
参数声明 > 命令行参数 > 配置文件参数(hive)
Hive自定义函数的类型
UDF : 一进一出
UDAF: 多进一出
UDTF:一进多出
自定义函数实现过程
1、创建项目,编写自定义函数代码继承 UDF,在UDF内编写 evaluate方法(有参:有输入。有返回:有输出)
2、将自定义UDF代码打包并上传到“本地”系统(linux)
3、在hive shell窗口添加jar。add jar UDFjar文件的路径和文件名
4、创建函数 并指定调用的方法‘’create temporary function tolowercase as 'cn.itcast.udf.ItcastUDF'
5、调用函数
Hive 常用的数据压缩算法
Gzip、Bzip2、Snappy、LZO、LZ4
常用的数据存储格式
1、ORC
2、Parquet3、textFile
压缩比ORC > Parquet > textFile
hive表的数据存储格式一般选择:orc或parquet。压缩方式一般选择snappy。
什么是MR本地计算
任务提交后,移动计算到数据端,数据在哪个节点,计算任务优先发送到哪个节点上。
什么是MR本地模式
任务不提交到集群,直接在提交任务的节点上运行。