Hive
孙文旭
这个作者很懒,什么都没留下…
展开
-
Hive 三个配置:显示表头,数据库名
添加以下三个配置到hive-site.xml<property> <name>hive.cli.print.header</name> <value>true</value> <description>Whether to print the names of the columns in query...原创 2019-07-08 08:27:12 · 606 阅读 · 0 评论 -
Hive分区表学习总结
用了这么久的Hive,而没有认真的学习和使用过Hive的分区,现在学习记录一下。分区表一般在数据量比较大,且有明确的分区字段时使用,这样用分区字段作为查询条件查询效率会比较高。Hive分区分为静态分区和动态分区1、建表语句先用一个有分区字段的分区表进行学习,静态分区和动态分区的建表语句是一样的。create table test_partition (id string com...转载 2019-07-09 22:46:37 · 348 阅读 · 0 评论 -
Hive 运行模式:严格模式
在实际的项目集群环境中,hive的运行模式肯定是严格模式配置方式:Hive CLi 临时hive-site.xml 全局配置 hive.mapred.mode strict //默认是nonstrict 不严格 The mode in which the Hive operations are being performed. In...原创 2019-07-09 22:50:48 · 225 阅读 · 0 评论 -
hive 参数传递
Hive 参数传递命令行模式,或者说目录模式,可以使用hive 执行命令。选项说明:-e : 执行短命令-f : 执行文件(适合脚本封装)-S : 安静模式,不显示MR的运行过程-hivevar : 传参数 ,专门提供给用户自定义变量。-hiveconf : 传参数,包括了hive-site.xml中配置的hive全局变量。案例:脚本调用test.sql...转载 2019-07-18 19:19:45 · 2621 阅读 · 0 评论 -
Hive lateral view使用
多行转换:lateral view说明:lateral view用于和json_tuple,parse_url_tuple,split, explode等UDTF一起使用,它能够将一行数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。hive> select s.x,sp from test.dual s lateral view explode(split(concat_ws('...转载 2019-07-18 20:46:29 · 1139 阅读 · 0 评论 -
数据库和数据仓库的区别、数据仓库架构
转载 2019-07-18 21:01:08 · 177 阅读 · 0 评论 -
数据仓库?为什么要分层?
我们对数据进行分层的一个主要原因就是希望在管理数据的时候,能对数据有一个更加清晰的掌控,详细来讲,主要有下面几个原因:清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。数据血缘追踪:简单来讲可以这样理解,我们最终给业务诚信的是一能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。减少...翻译 2019-07-18 21:39:39 · 3530 阅读 · 1 评论 -
【干货】Hive 总结篇及Hive的优化
概述Hive学习也有一段时间了,今天来对Hive进行一个总结,谈谈自己的理解,作者还是个小白,有不对的地方请大家指出相互学习,共同进步。今天来谈一谈什么是Hive,产生背景,优势等一系列问题。什么是Hive先来谈谈自己的理解:有些人可能会说Hive不就是写SQL的吗,那我们其实可以从另一个角度来理解:Hive就是那么强大啊,只要写SQL就能解决问题,其实这些人说的也没错Hive确实就是写S...转载 2019-07-12 15:39:33 · 421 阅读 · 0 评论 -
hive 优化2+问题
优化时,把hive sql当做map reduce程序来读,会有意想不到的惊喜。理解hadoop的核心能力,是hive优化的根本。这是这一年来,项目组所有成员宝贵的经验总结。长期观察hadoop处理数据的过程,有几个显著的特征:1.不怕数据多,就怕数据倾斜。2.对jobs数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联多次汇总,产生十几个jobs,没半小时是跑不完的。m...转载 2019-07-12 15:41:46 · 167 阅读 · 0 评论 -
Hive 注解中文乱码问题解决
/* Hive中创建数据库*/CREATE DATABASE IF NOT EXISTS db_05555 COMMENT '用于20180508测试使用'/**查看数据详情*/desc database db_05555;/* 为了解决Hive中创建表的时候,注解等中文显示的乱码问题,需要设置MetaStore DataBase中某些字段的字符编码为utf-8 */C...原创 2019-07-12 15:46:09 · 164 阅读 · 0 评论 -
Hive 创建表方式以及表的类型
创建表的三种方式1)常规方式create table table_name(…字段)2)通过子查询方式(类似于MySQL中视图的创建方式)create table table_nameas select …3)创建类似表(只有表结构,没有数据)create table new_table_name like old_table/view表的三种类型1)管理表默认就是管理表,...原创 2019-07-09 22:40:00 · 2391 阅读 · 0 评论 -
Hive常用函数大全一览
文章目录关系运算1、等值比较: =2、不等值比较: <>3、小于比较: <4、小于等于比较: <=5、大于比较: >6、大于等于比较: >=7、空值判断: IS NULL8、非空判断: IS NOT NULL9、LIKE比较: LIKE10、JAVA的LIKE操作: RLIKE11、REGEXP操作: REGEXP数学运算:1、加法操作: +2、减法操作: -3...转载 2019-07-09 21:14:58 · 1892 阅读 · 0 评论 -
Hive进阶 设置reduce Task数量
思考:某个MapReduce程序,到底有多少个Map Task和reduceTaskmapTask:要处理的数据放在HDFS上,有多少个Block就有几个Maptask,一个block被一个MapTask处理。reduceTask:自己编写MapReduce程序,自己设定hive:下面3个参数决定设置每个reduceTask处理的数据量在hive cli中执行hql控制台会打印一下日...原创 2019-07-08 22:14:55 · 3684 阅读 · 0 评论 -
Hive运行模式
集群模式:Yarn,每个task(map 和reduce )都各自运行在一个JVM中,每个任务都是一个进程。本地模式:local model,所有任务,都是运行在一个进程里面的目的:为了hive CLi中方便测试,采取设置hive运行模式set hive.exec.mode.local.auto=true;如果设置为true,hive框架会自动根据需要处理的数据大小,去决定是否跑本地模式。...原创 2019-07-08 08:33:37 · 406 阅读 · 0 评论 -
Hive 导入数据的方式
方式一:使用LOAD方式加载加载本地local数据:(本质hdfs put)LOAD DATA LOCAL INPATH ‘Inpath’ INTO TABLE “目标表”;加载HDFS数据:(本质 hdfs mv)LOAD DATA INPATH ‘Inpath’ INTO TABLE “目标表”;方式二:直接使用HDFS中普通命令上传直接将数据上传到对应目录即可(适用于表已经建...原创 2019-07-08 08:37:16 · 242 阅读 · 0 评论 -
Hive 结果的保存
现象:如果不做处理,只会在控制台打印结果,而不会保存解决:将运行结果长期保存到第二张表中回忆:Hive建表的两种方式:1)CREATE TABLE table_name() 分割方式2)CREATE TABLE table_name()ASselect_statment和mysql视图的创建语法一样我们就可以使用第二种方式创建一张结果表来进行结果的保存。衍生:性能优化分...原创 2019-07-08 08:45:13 · 315 阅读 · 0 评论 -
Hive 在企业中的实际应用
方式一:你需要执行的SQL语句是单条bin/hive -e “SQL语句”方式二:多条语句,放到文件中bin/hive -f “xxx.sql”方式三:脚本#!/bin/shHIVE_HOME=....${HIVE_HOME}/bin/hive -f sql方式四:crond跑定时任务...原创 2019-07-08 08:51:09 · 888 阅读 · 0 评论 -
Hive 表的类型
Managed Table(内部表/管理表)管理表有如下特点:表数据存储在管理表的存储目录下;删除管理表时,元数据和表数据都会被删除;External Table(外部表)外部表特点如下:表数据为已经在HDFS中存在的数据,外部表的目录并没有数据(相当于一个链接);删除外部表时,只会删除元数据,并不会删除表数据;使用场景:共享数据场景(同一份数据可能被多个工具分析使用);...转载 2019-07-08 08:56:04 · 307 阅读 · 0 评论 -
Hive/MySql 踩坑
在使用hive 需要配置元数据存储在mysql中,来解决不能多连接的问题数据库的名称1)不能含有" . "2)不要以数字开始原创 2019-07-08 09:03:58 · 2055 阅读 · 0 评论 -
Hive进阶 自定义函数
–查看支持的函数–show functions;–查看具体一个函数使用–desc function 函数名Hive自定义函数官方文档自定义函数的类型UDF(User-defined function)一对一:传递一个参数,然后一个值,substringUDAT (Aggregate Functions)多对一:传递多个参数,返回一个参数 max通常group by连用U...原创 2019-07-08 21:35:36 · 138 阅读 · 0 评论 -
Hive进阶 分析窗口函数
需求:找出雇员(emp)表,各个部门工资前三个员工信息来源:Oracle,db2,Sql server等数据库,这类型数据库被金融公司使用,做一些报表。hive相关支出:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+WindowingAndAnalyticsselect ename, deptno,sal,...原创 2019-07-08 22:02:34 · 142 阅读 · 0 评论 -
Hive进阶 设置日志存储目录
环境:chd版本hive修改配置文件名称在conf目录下mv hive-log4j.properties.template hive-log4j.properties在hive根目录新建log存放目录:mkdir -p logs编辑hive-log4j.properties文件dir改成刚刚新建的目录即可...原创 2019-07-08 22:07:38 · 1326 阅读 · 0 评论 -
Hive 企业中两种常用表创建组合
常用组合:parquet格式 + snappy压缩set parquet.compression=snappy; CREATE TABLE db_name.tb_name(id STRING)PARTITIONED BY (date_str STRING ,hour_str STRING )ROW FORMAT DELIMITED FIELDS TERMINA...原创 2019-07-12 15:48:51 · 200 阅读 · 0 评论