Hive

hive常用日期函数-模板

♀尐吖头ヾ 提交于 2020-11-26 07:24:43
已知日期 要求日期 语句 结果 本周任意一天 本周一 select date_sub(next_day('2016-11-29','MO'),7) ; 2016-11-28 本周任意一天 上周一 select date_sub(next_day('2016-11-29','MO'),14) ; 2016-11-21 本周任意一天 本周二 select date_sub(next_day('2016-11-29','MO'),6) 2016-11-29 本周任意一天 上周二 select date_sub(next_day('2016-11-29','MO'),13) ; 2016-11-22 本周任意一天 上周末 select date_sub(next_day('2016-11-29','MO'),8) ; 2016-11-27 本月任意一天 上月末 select date_sub(trunc('2016-11-02','MM'),1); 2016-10-31 本月任意一天 上月初 select trunc(add_months('2016-11-02',-1),'MM') 2016-10-01 本月任意一天 本月初 select trunc('2016-11-02','MM') 2016-11-01 本月任意一天 上上月26 select date_add(add_months

献给迷茫的你!

别说谁变了你拦得住时间么 提交于 2020-11-26 03:51:13
最近,也有粉丝问浪尖,很迷茫怎么办? 刚学习大数据,刚入门很迷茫! 搞了一两年了,不知从哪深入,很迷茫? 浪尖也是从零走过来的,只是比较幸运遇到了不错的领导和同事,然后自己坚持学习,测试,分析,总结,才一步步积累到今天的经验。 那么,学习,工作过程中迷茫该怎么办? 浪尖说的话就只有两个字— 坚持 !!! 刚入行,刚学习你迷茫,建议你坚持翻译几遍官网,比如spark官网,hive官网。有权威指南的比如hadoop权威指南,hive编程指南,都细致的看几遍。 细致了解框架能做啥,咋用,原理,调优点是啥等等。也可以弥补了知识盲点。 英文非常弱,你可以在某宝搜集大量视频,统统浏览一遍,总结共性和差异,收获也会很大。 坚持看英文官网很枯燥,比如浪尖最近看的janusgraph官网,也觉得无聊,看了忘,那就看一遍,然后整理一遍成文档,然后再总结为自己的知识。 坚持到最后发现基本都很细致的了解了框架,百度得到的知识都是渣渣(除了浪尖的文章)。 假如你已经有了些经验,然后迷茫,我觉得这时候可以什么都不想,去坚持看一个框架的源码,坚持他一年半载,而不是左顾右盼,左看右看,到最后什么都没搞成。 坚持到最后,你可能会养成好的源码阅读习惯和阅读思路,学习了别人的代码,细致了解了底层,这样还愁不会调优吗? 不积跬步无以至千里,不积小流无以成江河。 道理简单,不知道你能否力行,或许人跟人区别在此吧。

Ubuntu18.04下hadoop2.10安装详细步骤(亲测有效,可供参考)

岁酱吖の 提交于 2020-11-25 11:49:55
** 安装详细步骤 ** 首先给出安装过程需要用到的安装包: 云盘连接 提取码:rfxs 解压过后里面有四个文件: 下面给出详细安装步骤,博主是在虚拟机(Ubuntn18.04)上安装的, 注意:需要将文中的xxx换成自己的目录即可。 一、首先需要安装jdk环境: 1、更新Ubuntu源 sudo apt-get update 2、将JDK压缩包(jdk-8u251-linux-x64.tar.gz)解压到Ubuntu系统中 /usr/local/ 中 sudo tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local/ 3、将解压的文件夹重命名为 jdk8 cd /usr/local/ sudo mv jdk1.8.0_251/ jdk8 4、添加到环境变量 cd /home/xxx/ sudo gedit .bashrc 在文件末尾添加如下内容: export JAVA_HOME=/usr/local/jdk8 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=. : $JAVA_HOME/ lib : $JRE_HOME/lib export PATH=. : $JAVA_HOME/ bin : $PATH source .bashrc 验证是否安装成功 java -version

优化 Hive ETL 任务(参数篇)

心不动则不痛 提交于 2020-11-25 05:56:06
点击蓝色“ 大数据每日哔哔 ”关注我 加个“ 星标 ”, 第一时间获取 大数据架构,实战经验 图片来源网络,点赞 工作中常用的 hive 参数调优,整理如下。 通过查看线上日志的任务日志,可以获取任务运行每个阶段的耗时情况,结合集群的资源、任务的逻辑,可以从下面这几个角度优化我们的任务。 有时候,并不需要调整任务的参数,可能只需要调整任务的定时即可,大任务错峰执行,也可以优化单个任务的运行时长。 原则: 最少数据 最少字段 最少Job数 最少读取次数 避免数据倾斜 整体最优而不是局部最优 JVM 内存 (以上,最优解组合不一定是整体最优,要视情况而定。) 文件大小合理切分 这里需要结合 集群的资源 来合理的设置切片大小。 # 文件分割大小 set mapreduce.input.fileinputformat.split.maxsize=536870912; # 节点文件分割大小 set mapreduce.input.fileinputformat.split.minsize.per.node=536870912; # 机架文件分割大小 set mapreduce.input.fileinputformat.split.minsize.per.rack=536870912; # Reduce 文件分割大小 set hive.exec.reducers.bytes.per

2020大数据面试题真题总结(附答案)

怎甘沉沦 提交于 2020-11-24 15:57:03
版本 更新时间 更新内容 v1.0 2020-07-01 新建 v1.1 2020-06-13 朋友面试大数据工程师提供的关于架构及数仓方面的题目 v1.2 2020-08-08 朋友面试数据专家提供的数据驱动,spark及flink方面面试题 v1.3 2020-08-22 朋友面试数据开发提供的关于hive及数仓方面的题目 一.Hadoop 1.hdfs写流程 2.hdfs读流程 3.hdfs的体系结构 4.一个datanode 宕机,怎么一个流程恢复 5.hadoop 的 namenode 宕机,怎么解决 6.namenode对元数据的管理 7.元数据的checkpoint 8.yarn资源调度流程 9.hadoop中combiner和partition的作用 10.用mapreduce怎么处理数据倾斜问题? 11.shuffle 阶段,你怎么理解的 12.Mapreduce 的 map 数量 和 reduce 数量是由什么决定的 ,怎么配置 13.MapReduce优化经验 14.分别举例什么情况要使用 combiner,什么情况不使用? 15.MR运行流程解析 16.简单描述一下HDFS的系统架构,怎么保证数据安全? 17.在通过客户端向hdfs中写数据的时候,如果某一台机器宕机了,会怎么处理 18.Hadoop优化有哪些方面 19.大量数据求topN

hive常用命令

这一生的挚爱 提交于 2020-11-24 06:57:20
一、连接 后台启动hiveserver2 nohup bin/hive --service hiveserver2 & 连接hiveserver2 bin/beeline !connect jdbc:hive2://node03.hadoop.com:10000 使用本地模式 set hive.exec.mode.local.auto=true; 二、数据库增删改查 创建 create database if not exists myhive; create database myhive2 location '/myhive2'; # 指定hdfs存储位置 use myhive; 删除 drop database myhive2; # 删除空数据库 drop database myhive cascade; # 强制删除数据库,包含数据库下面的表一起删除 修改 alter database myhive2 set dbproperties('createtime'='20180611'); # 可以使用alter database 命令来修改数据库的一些属性。 # 但是数据库的元数据信息是不可更改的,包括数据库的名称以及数据库所在的位置 查看 show databases; desc database myhive2; # 查看数据库信息 desc database

欢迎添加博主微信,期待与你一起交流

*爱你&永不变心* 提交于 2020-11-23 21:42:05
你不可能从现在预测到未来,只有回头看时,才会发现事物之间的联系。所以你必须相信,那些生命中的点点滴滴,将会在你未来的生命里以某种方式串联起来。你必须相信一些东西---你的勇气、宿命、生活、因缘、随便什么,它们将给你追寻内心真正所想的自信,带你走出平凡,变得与众不同。 -- From乔布斯在斯坦福毕业典礼上的演讲 从今年3月份开通公众号,到现在已经更新了 50 +篇原创文章。虽然平时工作很忙,但是也会抽出时间每周发1~2篇原创分享文章。目前的文章主要集中在大数据技术方面(如:Spark、Flink、Hive、Kafka、ClickHouse等),后期会分享一些工作的点滴和读书感悟。 由于新申请的公众号不具备留言功能,很多粉丝会通过后台私信的方式联系我,有时候会不能及时回复(公众号私信超过48小时,不能给对方发消息)。大家可以添加我的微信: xibei_2011 ,平时有什么事情可以给我发消息,有时间我会一一回复,期待与你一起交流。 扫描二维码添加我微信 期待与你一起交流 往期文章回顾 基于Canal与Flink实现数据实时增量同步(一) CDH集群之YARN性能调优 Flink运行架构剖析 Flink的状态后端(StateBackends) 基于Canal与Flink实现数据实时增量同步(二) Flink的八种分区策略源码解读 经典Hive-SQL面试题 Flink1

Hive 基本语法操练(四):Hive 复合类型

本小妞迷上赌 提交于 2020-11-23 07:25:59
hive语法中主要提供了以下复合数据类型: 1)Structs: structs内部的数据可以通过DOT(.)来存取。例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域a。 2)Map(K-V对):访问指定域可以通过["指定域名称"]进行。例如,一个Map中M包含了一个group->gid的K-V对,gid的值可以通过M['group']来获取。 3)Array:array中的数据为相同类型。例如,假如array A中元素['a','b','c'],则A[1]的值为'b' 1、Struct使用 1) 建表 hive> create table student_test(id int, info struct<name:string, age:int>) row format delimited fields terminated by ',' collection items terminated by ':' ; OK Time taken: 0.386 seconds  hive> show tables;  OK   student_test  Time taken: 0.046 seconds, Fetched: 1 row(s) 'FIELDS TERMINATED BY' :字段与字段之间的分隔符。'COLLECTION

Apache Spark SQL 参数介绍

我与影子孤独终老i 提交于 2020-11-20 16:06:27
文章目录 1 spark.sql.adaptive.enabled 2 spark.sql.adaptive.minNumPostShufflePartitions 3 spark.sql.adaptive.shuffle.targetPostShuffleInputSize 4 spark.sql.allowMultipleContexts 5 spark.sql.autoBroadcastJoinThreshold 6 spark.sql.avro.compression.codec 7 spark.sql.broadcastTimeout 8 spark.sql.caseSensitive 9 spark.sql.cbo.enabled 10 spark.sql.cbo.joinReorder.enabled 11 spark.sql.cbo.starSchemaDetection 12 spark.sql.codegen.comments 13 spark.sql.codegen.factoryMode 14 spark.sql.codegen.fallback 15 spark.sql.codegen.hugeMethodLimit 16 spark.sql.codegen.useIdInClassName 17 spark.sql.codegen.maxFields

数据仓库①:数据仓库概述

风格不统一 提交于 2020-11-20 07:43:50
前言 阅读本文前,请先回答下面两个问题: 1. 数据库和数据仓库有什么区别? 2. 某大公司Hadoop Hive里的关系表不完全满足完整/参照性约束,也不完全满足范式要求,甚至第一范式都不满足。这种情况正常吗? 如果您不能五秒内给出答案,那么本文应该是对您有帮助的。 注:如果您还不清楚完整参照性约束,请参考 《数据库关系建模》 :,如果您还不了解范式,请参考 《更新异常与规范化设计》 。 数据库的"分家" 随着关系数据库理论的提出,诞生了一系列经典的RDBMS,如Oracle,MySQL,SQL Server等。这些RDBMS被成功推向市场,并为社会信息化的发展做出的重大贡献。然而随着数据库使用范围的不断扩大,它被逐步划分为两大基本类型: 1. 操作型数据库 主要用于 业务支撑 。一个公司往往会使用并维护若干个数据库,这些数据库保存着公司的日常操作数据,比如商品购买、酒店预订、学生成绩录入等; 2. 分析型数据库 主要用于 历史数据分析 。这类数据库作为公司的单独数据存储,负责利用历史数据对公司各主题域进行统计分析; 那么为什么要"分家"?在一起不合适吗?能不能构建一个同样适用于操作和分析的统一数据库? 答案是NO。一个显然的原因是它们会"打架"......如果操作型任务和分析型任务抢资源怎么办呢?再者,它们有太多不同,以致于早已"貌合神离"。接下来看看它们到底有哪些不同吧。