Hive
Hive
梁云亮
电 话:13264494458
微 信:13264494458
扣 扣:369950806
展开
-
Flume实时读hive日志到HDFS
需求实时监控Hive日志,并上传到HDFS中实现第一步:在flume目录下创建文件夹job,然后在其下面创建配置文件flume-telnet-logger.conf:# Name the components on this agenta2.sources = r2a2.sinks = k2a2.channels = c2# Describe/configure the sour...原创 2020-03-16 00:12:47 · 614 阅读 · 0 评论 -
HBase2.1.3整合Hive3.1.2
相关博客错误:org.apache.hbase.thirdparty.com.google.common.cache.CacheLoader的解决方案hbase与hive集成第一步:创建HBase和Hive环境变量第二步:将HBase中的jar包软链接到hiveln -s $HBASE_HOME/lib/hbase-common-2.1.3.jar $HIVE_HOME/lib/hb...原创 2020-03-11 21:25:37 · 1098 阅读 · 2 评论 -
org.apache.hbase.thirdparty.com.google.common.cache.CacheLoader
错误:Hive与HBase整合过程中创建关联表正确,往Hive中导入数据时出现错误:解决办法将guava-11.0.2.jar拷贝到${HADOOP_HOME}/bin目录下面原创 2020-03-11 20:59:18 · 2263 阅读 · 4 评论 -
Hive 分区
分区简介Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。分区表实际上对应一个HDFS文件系统上的文件夹,该文件夹下是该分区的数据文件。HIVE的分区通过在创建表时启用partition by实现,具体分区的标识是插入内容时指定的。当要查询某一分区的内容时可以采用where语句,通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。示例:...原创 2020-03-05 11:50:12 · 1689 阅读 · 0 评论 -
order by、distribute by、sort by、group by、partition by
order by:全局排序order by 会对数据进行一次全局排序,所以说,只要hive的sql中指定了order by,那么所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。order by 只在一个reduce中进行,所以数据量特别大的时候效率非常低。建议在小的数据集中使用order by进行排序可以通过设置hiv...原创 2020-03-04 19:05:34 · 17426 阅读 · 4 评论 -
Hive 表优化
//todo原创 2020-03-02 12:17:02 · 367 阅读 · 0 评论 -
Hive调优之 执行计划
语法:explain [extended | dependency | authorization] queryextended可以用来显示抽象语法树示例:示例:需要经过MapReduce的任务来显示语法书原创 2020-03-02 12:16:14 · 1128 阅读 · 0 评论 -
Hive调优之 严格模式
通过严格模式,Hive可以防止用户执行一些性能不好的HQL语句。建议开启严格模式。hive-site.xml:<property> <name>hive.strict.checks.orderby.no.limit</name> <value>false</value> </property> &...原创 2020-03-02 12:15:09 · 1647 阅读 · 0 评论 -
Hive调优之 数据倾斜
解决方案:小文件进行合并不是map数越多越好。比如:一个任务有很多小文件(远远小于块大小128m),则每个小文件也会被当做一个块,用一个map任务来完成,而一个map任务启动和初始化的时间远远大于业务处理的时间,就会造成很大的资源浪费。而且,同时可执行的map数是受限的。系统默认的格式CombineHiveInputFormat具有对小文件进行合并的功能。hive-site.xml:&l...原创 2020-03-02 12:14:02 · 177 阅读 · 0 评论 -
Hive调优之 本地模式
大多数的Hadoop Job是需要Hadoop提供完整的可扩展性来处理数据的。不过,有时Hive的输入数据量是非常小的。在这种情况下,为查询而触发执行任务消耗的时间可能会比实际job的执行时间要多的多。对于大多数这种情况,Hive可以通过本地模式在单台机器上处理所有的任务。本地模式对于小数据集,执行时间可以明显被缩短。用户可以通过设置hive.exec.mode.local.auto的值为t...原创 2020-03-02 12:12:53 · 1443 阅读 · 0 评论 -
Hive调优之 Fetch抓取
Fetch抓取是指在Hive中对某些情况的查询可以不使用MapReduce计算。例如:SELECT * FROM tb_emp;在这Fetch抓取情况下,Hive可以简单地读取tb_emp对应的存储目录下的文件,然后输出查询结果到控制台。Fetch抓取在hive-site.xml中对应的配置信息:<property> <name>hive.fetch.task.c...原创 2020-03-02 12:12:31 · 771 阅读 · 0 评论 -
Hive调优之其它
Fetch抓取本地模式表的优化数据倾斜解决方案:小文件进行合并不是map数越多越好。比如:一个任务有很多小文件(远远小于块大小128m),则每个小文件也会被当做一个块,用一个map任务来完成,而一个map任务启动和初始化的时间远远大于业务处理的时间,就会造成很大的资源浪费。而且,同时可执行的map数是受限的。系统默认的格式CombineHiveInputFormat具有对小文件进行合...原创 2020-02-28 00:05:13 · 222 阅读 · 0 评论 -
谷粒影音:业务处理
统计视频观看数Top10思路:使用order by按照 views 字段做一个全局排序,设置只显示前10条即可实现SQL:select videoid,uploader,age,category,length,views,rate,ratings,commentsfrom guliyingyin_video_orcorder by views desclimit 10;![在这...原创 2020-02-23 02:15:49 · 605 阅读 · 0 评论 -
谷粒影音:准备工作
数据及结构user数据barelypolitical 151 5106bonk65 89 144camelcars 26 674cubskickass34 13 126boydism08 32 50deckthree 6 753fiveawesomegirls 182 3ericielfenix 6 0erricshade 3 49blacktreemedia 520 ...原创 2020-02-22 22:46:46 · 694 阅读 · 0 评论 -
Hive文件存储格式
列式存储和行式存储上图左边为逻辑表,右侧上边第一个为行式存储,下边第二个为列式存储。行存储的特点查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,而行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快。列存储的特点因为每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量;每个字段的数据类型一定是...原创 2020-02-22 17:53:43 · 1091 阅读 · 0 评论 -
Hive 压缩
Map输出压缩开启map输出阶段压缩可以减少job中map和Reduce task间数据传输量。示例:开启hive中间传输数据压缩功能hive (default)>set hive.exec.compress.intermediate=true;开启mapreduce中map输出压缩功能hive (default)>set mapreduce.map.output.co...原创 2020-02-22 14:16:09 · 277 阅读 · 0 评论 -
Hive 函数
日期函数条件函数字符串函数原创 2020-02-20 17:41:07 · 212 阅读 · 0 评论 -
Hive 常用查询函数
NVLNVL( string1, replace_with):给值为NULL的数据赋值:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值;如果两个参数都为NULL ,则返回NULL。CASE WHEN数据计算结果:行转列CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支...原创 2020-02-20 16:49:03 · 466 阅读 · 0 评论 -
Hive 分桶
概念分桶:将数据集分解成更容易管理的若干部分。分区针对的是数据的存储路径,分桶针对的是数据文件。创建桶查看结果:抽样查询语法:TABLESAMPLE(BUCKET x OUT OF y)y必须是table总bucket数的倍数或者因子。hive根据y的大小,决定抽样的比例。例如,table总共分了4份,当y=2时,抽取(4/2=)2个bucket的数据,当y=8时,抽取(...原创 2020-02-20 16:26:58 · 222 阅读 · 0 评论 -
Hive 窗口函数
理论over():指定分析函数工作的数据窗口的大小,这个数据窗口大小会随着行的变而变化。over跟在聚合函数后面,只对聚合函数生效。current row:当前行n preceding:往前n行数据n following:往后n行数据unbounded:起点:unbounded preceding 表示从前面的起点开始, unbounded following表示到后面的终点结束la...原创 2020-02-20 16:24:35 · 263 阅读 · 0 评论 -
Hive 排序
order byorder by 语句会对查询结果集执行一个全局排序,对于大数据集,这个过程会消耗很大的时间。结果:sort bysort by:在每个reduce中对数据进行排序,也就是执行一个局部排序过程。这可以保证每个reduce输出的数据都是有序的(但并非全局有效)。这样就可以提高后面进行的全局排序的效率了。示例:设置mapreduce.job.reduces=1,结果和使...原创 2020-02-20 16:21:20 · 630 阅读 · 0 评论 -
HiveJDBC访问
参考博客:Hive Beeline连接报错:Could not open client transport with JDBC Uri: jdbc:hive2://hcmaster:10000/default启动hiveserver2服务启动beeline连接hiveserver2使用示例原创 2020-02-20 11:31:39 · 356 阅读 · 0 评论 -
Hive Beeline连接报错:Could not open client transport with JDBC Uri: jdbc:hive2://hcmaster:10000/default
问题解决方案在hadoop的配置文件core-site.xml增加如下配置: <property> <name>hadoop.proxyuser.hc.hosts</name> <value>*</value> </property> <property> <na...原创 2020-02-20 11:23:13 · 1862 阅读 · 1 评论 -
Hive 查询
基本查询示例1:示例2:示例3:示例4:示例:说明:LIKE模糊查询,匹配条件可以包含字符或数字:% 代表零个或多个字符(任意个字符)。_ 代表一个字符。RLIKE子句是Hive中模糊查询功能的一个扩展,它可以通过Java的正则表达式指定匹配条件。示例:分组示例:havinghaving和where的区别:where针对表中的列发挥作用,查...原创 2020-02-20 00:25:37 · 1348 阅读 · 0 评论 -
Hive创建表:dept和emp
tb_deptcreate table tb_dept(deptno int,dname string,loc string)row format delimited fields terminated by ‘\t’;10 ACCOUNTING NewYork20 RESEARCH Boston30 SALES Dallas40 OPERATIONS Chicagotb_e...原创 2020-02-19 23:31:20 · 1788 阅读 · 0 评论 -
Hive DML
数据导入Hive不支持update的操作。数据一旦导入,则不可修改。要么drop掉整个表,要么建立新的表,导入新的数据。load:加载数据到表load data [local] inpath ‘filepath’ overwrite | into table 表名 [partition (partcol1=val1,…)];单纯的复制/移动:将 filepath 中指定的文件复制到目标...原创 2020-02-19 15:58:23 · 418 阅读 · 0 评论 -
Hive DDL 之 表
创建表语法:CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name[(col_name data_type [COMMENT col_comment], …)][COMMENT table_comment][PARTITIONED BY (col_name data_type [COMMENT col_comment], …)][CLUS...原创 2020-02-19 12:43:13 · 249 阅读 · 0 评论 -
Hive DDL 之 数据库
创建数据库语法:create database [if not exists] 数据库名;查询数据库查看Hive中创建了哪些数据库语法:show databases;查看数据详情语法:desc database 数据库名查看数据详情语法:desc database extended 数据库名使用数据库语法:use 数据库名修改数据库数...原创 2020-02-19 11:45:28 · 202 阅读 · 0 评论 -
Hive数据类型
基本数据类型集合数据类型数据类型转换隐式类型转换规则如下自动向上转型:任何整数类型都可以隐式地转换为一个范围更广的类型,如TINYINT可以转换成INT,INT可以转换成BIGINT。所有整数类型、FLOAT和STRING类型都可以隐式地转换成DOUBLE。TINYINT、SMALLINT、INT都可以转换为FLOAT。BOOLEAN类型不可以转换为任何其它的类型。可以使用...原创 2020-02-18 12:21:03 · 509 阅读 · 0 评论 -
Hive常用Shell命令
在启动Hive之前,必须先启动hdfs和yarn$ sbin/start-dfs.sh$ sbin/start-yarn.sh启动hive。$ bin/hive查看数据库hive> show databases;打开默认数据库hive> use default;显示default数据库中的表hive> show table...原创 2020-02-17 10:22:37 · 1023 阅读 · 0 评论 -
Hive开发环境搭建
软件版本Hadoop 3.1.2 ,参看博客:搭建Hadoop3.1.2伪分布方式环境Hive3.1.1Hive安装及配置第一步:把apache-hive-3.1.1-bin.tar.gz上传到linux的/usr/local/src目录下第二步:解压apache-hive-3.1.1-bin.tar.gz到/usr/local/目录下面$ tar -zxvf apache-h...原创 2020-02-12 01:05:27 · 530 阅读 · 0 评论