Hive
BigMoM1573
淡泊名利
展开
-
Hive> 表的优化
文章目录JoinMapJoinJoinJoin原则:1)小表Join大表,将key相对分散,并且数据量小的表放在join的左边,这样可以有效减少内存溢出错误发生的几率;再进一步,可以使用Group让小的维度表(1000条以下的记录条数)先进内存。在map端完成reduce。select count(distinct s_id) from score;select count(s...原创 2019-12-02 20:55:42 · 69 阅读 · 0 评论 -
Hive> JVM重用与推测执行
JVM重用JVM重用是Hadoop调优参数的内容,其对Hive的性能具有非常大的影响,特别是对于很难避免小文件的场景或task特别多的场景,这类场景大多数执行时间都很短。Hadoop的默认配置通常是使用派生JVM来执行map和Reduce任务的。这时JVM的启动过程可能会造成相当大的开销,尤其是执行的job包含有成百上千task任务的情况。JVM重用可以使得JVM实例在同一个job中重新使用...原创 2019-12-02 20:15:55 · 349 阅读 · 0 评论 -
Hive>并行执行和严格模式
并行执行Hive会将一个查询转化成一个或者多个阶段。这样的阶段可以是MapReduce阶段、抽样阶段、合并阶段、limit阶段。或者Hive执行过程中可能需要的其他阶段。默认情况下,Hive一次只会执行一个阶段。不过,某个特定的job可能包含众多的阶段,而这些阶段可能并非完全互相依赖的,也就是说有些阶段是可以并行执行的,这样可能使得整个job的执行时间缩短。不过,如果有更多的阶段可以并行执行,那...原创 2019-12-02 20:05:11 · 486 阅读 · 0 评论 -
Hive>数据倾斜、Map个数和Reduce个数
文章目录Map数如何适当的增加map数reduce数Map数1)通常情况下,作业会通过input的目录产生一个或者多个map任务。主要的决定因素有:input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M,可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改);2)举例:a)一个大文件: 假设input目录下有1个...原创 2019-12-02 18:24:51 · 240 阅读 · 0 评论 -
Hive>动态分区调整
动态分区调整关系型数据库中,对分区表Insert数据时候,数据库自动会根据分区字段的值,将数据插入到相应的分区中,Hive中也提供了类似的机制,即动态分区(Dynamic Partition),只不过,使用Hive的动态分区,需要进行相应的配置。以第一个表的分区规则,来对应第二个表的分区规则,将第一个表的所有分区,全部拷贝到第二个表中来,第二个表在加载数据的时候,不需要指定分区了,直接用第一个...原创 2019-12-02 17:48:12 · 235 阅读 · 0 评论 -
Hive>分区剪裁、列剪裁
使用分区剪裁、列剪裁在SELECT中,只拿需要的列,如果有,尽量使用分区过滤,少用SELECT *。在分区剪裁中,当使用外关联时,如果将副表的过滤条件写在Where后面,那么就会先全表关联,之后再过滤,比如:环境准备:创建表1create table ori(id bigint, time bigint, uid string, keyword string, url_rank int,...原创 2019-12-02 17:18:43 · 2403 阅读 · 1 评论 -
Hive>Group By和Count与笛卡尔积
文章目录Group ByCount(distinct)笛卡尔积Group By默认情况下,Map阶段同一Key数据分发给一个reduce,当一个key数据过大时就倾斜了。并不是所有的聚合操作都需要在Reduce端完成,很多聚合操作都可以先在Map端进行部分聚合,最后在Reduce端得出最终结果。1)开启Map端聚合参数设置(1)是否在Map端进行聚合,默认为Trueset hive...原创 2019-12-02 17:01:17 · 444 阅读 · 0 评论 -
Hive>本地模式
本地模式大多数的Hadoop Job是需要Hadoop提供的完整的可扩展性来处理大数据集的。不过,有时Hive的输入数据量是非常小的。在这种情况下,为查询触发执行任务时消耗可能会比实际job的执行时间要多的多。对于大多数这种情况,Hive可以通过本地模式在单台机器上处理所有的任务。对于小数据集,使用本地模式执行时间可以明显被缩短。用户可以通过设置hive.exec.mode.local.au...原创 2019-12-02 10:30:03 · 282 阅读 · 0 评论 -
Hive>调优-Fetch抓取
Fetch抓取(Hive可以避免进行MapReduce)Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台。在hive-default.xml.template文件中hive.fetch.task.conversion默认是m...转载 2019-12-02 09:42:23 · 84 阅读 · 0 评论 -
Hive>存储和压缩结合
官网:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORCORC存储方式的压缩:KeyDefaultNotesorc.compressZLIBhigh level compression (one of NONE, ZLIB, SNAPPY)orc.compress.size26...原创 2019-11-30 17:44:38 · 174 阅读 · 0 评论 -
Hive>Hive支持的数据存储格式
hive的数据存储格式Hive支持的存储数据的格式主要有:TEXTFILE(行式存储) 、SEQUENCEFILE(行式存储)、ORC(列式存储)、PARQUET(列式存储)。列式存储和行式存储上图左边为逻辑表,右边第一个为行式存储,第二个为列式存储。行存储的特点: 查询满足条件的一整行数据的时候,行存储只需要找到其中一个值,其余的值都在相邻地方。列存储则需要去每个聚集的字段找到对应的...原创 2019-11-30 17:36:54 · 1024 阅读 · 0 评论 -
Hive>Hive的数据压缩
文章目录hive的数据压缩MR支持的压缩编码压缩配置参数开启Map输出阶段压缩开启Reduce输出阶段压缩hive的数据压缩在实际工作当中,hive当中处理的数据,一般都需要经过压缩,前期我们在学习hadoop的时候,已经配置过hadoop的压缩,我们这里的hive也是一样的可以使用压缩来节省我们的MR处理的网络带宽MR支持的压缩编码压缩格式工具算法文件扩展名是否可切分...原创 2019-11-30 17:20:35 · 79 阅读 · 0 评论 -
Hive>Hive参数配置方式
文章目录Hive Shell参数Hive命令行Hive参数配置方式Hive Shell参数Hive命令行语法结构hive [-hiveconf x=y]* [<-i filename>]* [<-f filename>|<-e query-string>] [-S]说明:1、-i 从文件初始化HQL。2、-e从命令行执行指定的HQL3、-f ...原创 2019-11-30 16:15:40 · 121 阅读 · 0 评论 -
Hive>hive查询语法
文章目录hive查询语法SELECT全表查询选择特定列查询列别名常用函数LIMIT语句WHERE语句比较运算符(BETWEEN/IN/ IS NULL)LIKE和RLIKE逻辑运算符(AND/OR/NOT)分组GROUP BY语句HAVING语句JOIN语句等值JOIN表的别名内连接(INNER JOIN)左外连接(LEFT OUTER JOIN)右外连接(RIGHT OUTER JOIN)满外连...原创 2019-11-30 16:05:21 · 179 阅读 · 0 评论 -
Hive>hive表中的数据导出
文章目录hive表中的数据导出清空表数据hive表中的数据导出将hive表中的数据导出到其他任意目录,例如linux本地磁盘,例如hdfs,例如mysql等等insert导出1) 将查询的结果导出到本地insert overwrite local directory '/export/servers/exporthive/a' select * from score;2)将查询...原创 2019-11-30 15:22:42 · 358 阅读 · 0 评论 -
Hive>hive表中加载数据
直接向分区表中插入数据create table score3 like score;插入数据insert into table score3 partition(month ='201807') values ('001','002','100');通过查询插入数据通过load方式加载数据load data local inpath '/export/servers/hivedat...原创 2019-11-29 21:22:51 · 192 阅读 · 0 评论 -
Hive>修改表和删除表
表重命名基本语法:alter table old_table_name rename to new_table_name;把表score4修改成score5alter table score4 rename to score5;增加/修改列信息(1)查询表结构desc score5;(2)添加列alter table score5 add columns (myco...原创 2019-11-29 21:08:50 · 174 阅读 · 0 评论 -
Hive>分桶表
将数据按照指定的字段进行分成多个桶中去,说白了就是将数据按照字段进行划分,可以将数据按照字段划分到多个文件当中去开启hive的桶表功能set hive.enforce.bucketing=true;设置reduce的个数(相当于分桶个数)set mapreduce.job.reduces=3;创建桶表create table course (c_id strin...原创 2019-11-29 20:53:26 · 110 阅读 · 0 评论 -
Hive>分区表
文章目录创建分区表语法创建一个表带多个分区加载数据到分区表中加载数据到一个多分区的表中去多分区联合查询使用union all来实现查看分区删除分区外部分区表综合练习:第二种实现方式,上传数据之后手动添加分区即可在大数据中,最常用的一种思想就是分治,我们可以把大的文件切割划分成一个个的小的文件,这样每次操作一个小的文件就会很容易了,同样的道理,在hive当中也是支持这种思想的,就是我们可以把大...原创 2019-11-29 20:41:35 · 327 阅读 · 0 评论 -
Hive>HIVE简答题
文章目录简答题简答题1、什么是Hive是一个基于hadoop的数据仓库工具,可以将结构化数据映射成一张数据表,并提供类SQL的查询功能2、Hive的意义(最初研发的原因)背景:hadoop是个好东西,但是学习难度大,成本高,坡度陡。意义(目的):降低程序员使用hadoop的难度。降低学习成本。3、Hive的内部组成模块,作用分别是什么元数据:描述数据的数据内部执行流程...原创 2019-11-28 21:30:32 · 841 阅读 · 0 评论 -
Hive>Hive的常用运算和函数
文章目录hive 常用运算第一部分:关系运算第二部分:逻辑运算与数学运算第三部分:数值运算第四部分:日期函数第五部分:条件函数第六部分:字符串函数hive 常用运算第一部分:关系运算Hive支持的关系运算符常见的关系运算符等值比较: =不等值比较: <>小于比较: <小于等于比较: <=大于比较: >大于等于比较: &g...原创 2019-11-25 16:57:54 · 222 阅读 · 0 评论 -
Hive>Hive函数(UDF和reflect)
文章目录内置函数Hive自定义函数UDF开发实例内置函数内容较多,见《Hive官方文档》https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF1)查看系统自带的函数#hive> show functions;hive> show functions 函数名;2)显示自带的函数的用法hive...原创 2019-11-23 23:58:53 · 869 阅读 · 0 评论 -
Hive>内部表和外部表
文章目录加载数据从linux中加载数据到hive从hdfs中加载数据到hive外部表说明外部表因为是指定其他的hdfs路径的数据加载到表当中来,所以hive表会认为自己不完全独占这份数据,所以删除hive表的时候,数据仍然存放在hdfs当中,不会删掉管理表和外部表的使用场景每天将收集到的网站日志定期流入HDFS文本文件。在外部表(原始日志表)的基础上做大量的统计分析,用到的中间表、...原创 2019-11-23 16:38:05 · 185 阅读 · 0 评论 -
Hive>Hive创建数据库与创建数据库表
创建数据库与创建数据库表创建数据库并指定hdfs存储位置原创 2019-11-22 20:09:16 · 10414 阅读 · 1 评论 -
Hive>Hive的两种访问方式
文章目录第一种访问方式:Hive交互shell第二种访问方式:Hive JDBC服务(推荐)Hive命令(传选项)第一种访问方式:Hive交互shell在Hive客户端,配置hive到环境变量的前提下,在节点的任意位置 直接输入hive + 回车第一种交互方式:Hive交互shellcd /export/servers/hive-1.1.0-cdh5.14.0bin/hive查...原创 2019-11-21 21:07:28 · 5744 阅读 · 0 评论 -
Hive> HIVE的安装部署
文章目录HIVE的安装部署(一)derby版hive直接使用:1、直接启动 bin/hive使用mysql共享hive元数据mysql数据库的安装方式一(使用rpm包的方式进行安装,`不推荐`)mysql数据库的安装(使用yum源进行安装,强烈推荐)HIVE的安装部署(二)修改hive的配置文件上传mysql的lib驱动包HIVE的安装部署(一)准备集群#启动集群[root@node01...原创 2019-11-21 18:07:27 · 116 阅读 · 0 评论 -
Hive>Hive基本介绍 和 Hive的数据存储
文章目录Hive基本概念为什么使用HiveHive的意义是什么Hive可以对数据进行存储与计算Hive的特点Hive架构Hive与Hadoop的关系Hive与传统数据库对比Hive的数据存储Hive基本概念Hive是一个基于hadoop的数据仓库工具,可以将结构化数据映射成一张数据表,并提供类SQL的查询功能。其本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据...原创 2019-11-21 11:09:30 · 741 阅读 · 0 评论