Hive学习 day02

今天,继续学习了Hive。首先,先是复习了之前学过的内容,然后学习了DML数据导入导出、Centos7.5安装Mysql5.6.49-yum方式、强制删除hive的数据库、yum.conf、基本查询、where查询、分组查询、Join查询、排序查询实操、排序查询原理、排序原理-再解说、分桶实操、分桶xy参数讲解。
总结一下:
1.Hive常见属性配置
1、Hive数据仓库位置配置
(1)Default数据仓库的最原始位置是在hdfs上的/user/hive/warehouse路径下。
(2)在仓库目录下,没有对默认的数据库default创建文件夹。如果某张表属于default数据库,直接在数据仓库目录下创建一个文件夹。
(3)修改default数据仓库原始位置(将hive-default.xml.template如下配置信息拷贝到hive-site.xml文件中)。
(4)配置同组用户有执行权限。
2、Hive运行日志信息配置
1)Hive的log默认存放在/tmp/victor/hive.log目录下(当前用户名下)。
2)修改hive-log4j.properties.template文件名称为hive-log4j.properties。
3)在hive-log4j.properties文件中修改log存放位置。
3、显示当前数据库,以及查询表的头信息配置
1)在hive-site.xml文件中添加如下配置信息,实现显示当前数据库,查询表的头信息。
2)重新启动hive,对比配置前后差异。
4、参数配置方式
1)查看当前所有的配置信息。
hive>set;
2)参数的配置三种方式
(1)配置文件方式
默认配置文件:hive-default.xml
用户自定义配置文件:hive-site.xml
注意:用户自定义配置会覆盖默认配置。另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖Hadoop的配置。配置文件的设定对本机启动的所有Hive进程都有效。
(2)命令行参数方式
启动Hive时,可以在命令行添加-hiveconf param=value来设定参数。
[victor@node1 hive]$ bin/hive -hiveconf mapred.reduce.tasks=10
注意:仅对本次hive启动有效。
查看参数设置
hive(default)>set mapred.reduce.tasks;
(3)参数声明方式
可以在HQL中使用SET关键字设定参数。
hive(default)>set mapred.reduce.tasks=100;
注意:仅对本次hive启动有效。
查看参数设置
hive(default)>set mapred.reduce.tasks;
提示:上述三种设定方式的优先级依次递增。即参数声明覆盖命令行参数,命令行参数覆盖配置文件设定。某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了。
2.管理表(内部表)概念
默认创建的表都是所谓的管理表,有时也被称为内部表。因为这种表,Hive会(或多或少地)控制着数据的生命周期。Hive默认情况下会将这些表的数据存储在由配置项hive.metastore.warehouse.dir(例如,/user/hive/warehouse)所定义的目录的子目录下。当我们删除一个管理表时,Hive也会删除这个表中数据。管理表不适合和其他工具共享数据。
3.外部表概念
因为表是外部表,所有Hive并非认为其完全拥有这份数据。删除该表并不会删除掉这份数据,不过描述表的元数据信息会被删除掉。
4.管理表(内部表)和外部表的使用场景:
每天将收集到的网站日志定期流入HDFS文本文件。在外部表(原始日志表)的基础上做大量的统计分析,用到的中间表、结果表使用内部表存储,数据通过SELECT+INSERT进入内部表。
5.分区表
分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。
6.LIKE和RLIKE
1)使用LIKE运算选择类似的值。
2)选择条件可以包含字符或数字:
%代表零个或多个字符(任意个字符)。
_代表一个字符。
3)RLIKE子句是Hive中这个功能的一个扩展,其可以通过Java的正则表达式这个更强大的语言来指定匹配条件。
7.大多数情况下,Hive会对每对JOIN连接对象启动一个MapReduce任务。
Hive总是按照从左到右的顺序执行的,而且连接 n个表,至少需要n-1个连接条件。例如:连接三个表,至少需要两个连接条件。
8.笛卡尔积JOIN
笛卡尔集会在下面条件下产生
(1)省略连接条件
(2)连接条件无效
(3)所有表中的所有行互相连接
9.排序
全局排序(Order By)
1)使用ORDER BY子句排序
ASC(ascend):升序(默认)
DESC(descend):降序
2)ORDER BY子句在SELECT语句的结尾
10.分桶表数据存储
概念
分区针对的是数据的存储路径,分桶针对的是数据文件。
分区提供一个隔离数据和优化查询的便利方式。不过,并非所有的数据集都可形成合理的分区,特别是之前所提到过的要确定合适的划分大小这个疑虑。
分桶是将数据集分解成更容易管理的若干部分的另一个技术。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值