Hive

写在入职一周年

别等时光非礼了梦想. 提交于 2020-08-17 03:43:51
老实说我没想到这么快就入职一年了,而且有将近半年都是在家办公的状态。 虽然大家都说2020年活着就好,可我仍然觉得这不是懒散堕落的理由。 Table of Contents 一、我的工作 二、我与CSDN 三、我的生活 一、我的工作 至今为止,在组里做了四个项目、写了两篇论文、四篇专利。 绩效拿过一次最高级、两次第二级,剩下那一次是所有新员工入职第一个季度都是同一评级。 经历过带我的老员工离职,让我刚摸索出一点工作方式就要改变自己。 也经历过带新员工一起做项目,怕自己水平不够误人子弟。 经历过被领导当着全组的面大声批评。 也经历过代表全组给总经理汇报得到赞扬。 反思一下自己现在的状态,还没有老员工独当一面的水平,却没了刚入职时的激情。 果然, 工作不能靠激情,得靠实力和责任感 。 二、我与CSDN 截止到我写文章的时候,我一共写了 234 篇文章,粉丝101 个,访问量 116978。这绝对是我没想到的。毕竟刚开始写博客还不到一年,真的是感谢大家的喜爱。 这些内容主要是: 1、我工作中实际遇到的问题和解决办法。这些就比较杂,有hive,SQL,dbeaver,Oracle,Python,pandas 等等。 2、也有我刷过的LeetCode 题目。我在找工作的时候就深知自己的刷题能力不行,工作之后亲身体会到有些工程需求就是LeetCode题目的实际应用。在我目前工作中遇到的问题

Presto性能调优的五大技巧

放肆的年华 提交于 2020-08-17 03:36:43
概述 Presto架构 Presto是一个分布式的查询引擎,本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询。 Presto的架构分为: Coodinator: 解析SQL语句,生成执行计划,分发执行任务给Worker节点执行。 Discovery Server: Worker节点启动后向Discovery Server服务注册,Coordinator从Discovery Server获得可以正常工作的Worker节点。 Worker: 负责执行实际查询任务,访问底层存储系统。 存储 :Presto的数据可以存储在HDFS/OBS,推荐热数据存储在HDFS,冷数据存储在OBS。 内存调优 内存管理原理 Presto有三种内存池,分别为GENERAL_POOL、RESERVED_POOL、SYSTEM_POOL。 GENERAL_POOL:用于普通查询的physical operators。GENERAL_POOL值为 总内存(Xmx值)- 预留的(max-memory-per-node)- 系统的(0.4 * Xmx)。 SYSTEM_POOL:系统预留内存,用于读写buffer,worker初始化以及执行任务必要的内存。大小由config.properties里的resources.reserved-system-memory指定。默认值为JVM max

用户画像产品化——从零开始搭建实时用户画像(六)

血红的双手。 提交于 2020-08-16 17:42:29
在开发好用户标签以后,如何将标签应用到实际其实是一个很重要的问题。只有做好产品的设计才能让标签发挥真正的价值,本文将介绍用户画像的产品化过程。 一、标签展示 首先是标签展示功能,这个主要供业务人员和研发人员使用,是为了更直观的看见整个的用户标签体系。 不同的标签体系会有不同的层级,那么这个页面的设计就需要我们展示成树状的结构,方便以后的扩展。 在最后一个层级,比如自然性别,可以设计一个统计页面,在进入页面后,可以展示相应的数据统计情况, 可以更直观看见标签中值得比例,也可以为业务提供好的建议,另外可以对标签的具体描述进行展示,起到一个说明的作用,还可以展示标签按天的波动情况,观察标签的变化情况。 这一部分的数据来源呢?之前也提到过,这些标签的元数据信息都存在mysql中,方便我们查询。 所以树状图和标签描述信息需要去mysql中获取,而比例等图表数据则是从Hbase,Hive中查询获取的,当然也有直接通过ES获取的。但是每天的标签历史波动情况,还是要通过每天跑完标签后存在mysql中作为历史记录进行展示。 二 、标签查询 这一功能可以提供给研发人员和业务人员使用。 标签查询功能其实就是对用户进行全局画像的过程,对于一个用户的全量标签信息,我们是需要对其进行展示的。 输入用户id后,可以查看该用户的属性信息、行为信息、风控属性等信息。从多方位了解一个具体的用户特征。

Spark读取Mysql,Redis,Hbase数据(一)

谁说我不能喝 提交于 2020-08-16 13:21:31
1、读取Mysql数据 object JdbcRddDemo { def getConn() = { Class.forName( "com.mysql.jdbc.Driver" ).newInstance() DriverManager.getConnection( "jdbc:mysql://hadoop000:3306/hive", "root", "root" ) } def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setAppName("jdbcRdd").setMaster("local[*]" ) val sc = new SparkContext(sparkConf) val jdbcRDD = new JdbcRDD( sc, getConn, "select * from TBLS where TBL_ID >= ? and TBL_ID <= ?" , 1 , 10 , 2 , rs => { val id = rs.getInt(1 ) val name = rs.getString(2 ) val age = rs.getInt(3 ) (id,name,age) } ) jdbcRDD.collect().toBuffer } } 来源: oschina 链接

如何在CDH 6.3.2 启用Kerberos 中 使用sentry限制 用户读写

泄露秘密 提交于 2020-08-16 10:28:59
如何在CDH 6.3.2 启用Kerberos 中 使用sentry 限制用户读写 标签(空格分隔): 大数据平台构建 一: 系统环境介绍 二: CDH6.3.2 启用安装sentry 三: sentry 使用 四:启用sentry测试 一: 系统环境介绍 操作系统 CentOS7.5x64 cdh/cm 版本 cm:6.3.1 cdh:6.3.2 采用root用户操作 前置条件: 1.CDH集群运行正常 2.集群已启用Kerberos且正常使用 ##二:CDH6.3.2 启用安装sentry 1.在MySQL中创建sentry数据库 # mysql -uroot -pflyfish225 mysql> create database sentry character set latin1; (这个地方必须是latin1 字符集) mysql> grant all privileges on sentry.* to 'sentry'@'%' identified by 'sentry_1234' with grant option; mysql> flush privileges; 三: sentry 使用 3.1 在 hive 中使用sentry 1.配置Hive使用Sentry服务 2.关闭Hive的用户模拟功能 3.2 在impala 中启用sentry

用户画像标签体系——从零开始搭建实时用户画像(三)

心不动则不痛 提交于 2020-08-16 09:52:09
用户画像标签体系 ​ 用户画像的核心在于给用户“打标签”,每一个标签通常是人为规定的特征标识,用高度精炼的特征描述一类人,例如年龄、性别、兴趣偏好等,不同的标签通过结构化的数据体系整合,就可与组合出不同的用户画像。 ​ 梳理标签体系是实现用户画像过程中最基础、也是最核心的工作,后续的建模、数据仓库搭建都会依赖于标签体系。 ​ 为什么需要梳理标签体系,因为不同的企业做用户画像有不同的战略目的,广告公司做用户画像是为精准广告服务,电商做用户画像是为用户购买更多商品,内容平台做用户画像是推荐用户更感兴趣的内容提升流量再变现,金融行业做用户画像是为了寻找到目标客户的同时做好风险的控制。 ​ 所以第一步,我们要结合所在的行业,业务去分析我们用户画像的目的。这其实就是战略,我们要通过战略去指引我们最终的方向。 对于电商企业来说,可能最重要的两个问题就是: 现有用户- 我的现存用户是谁?为什么买我的产品?他们有什么偏好?哪些用户价值最高? 潜在客户- 我的潜在用户在哪儿?他们喜欢什么?哪些渠道能找到他们?获客成本是多少? 而对于金融企业,还要加上一条: 用户风险—用户的收入能力怎么样?他们是否有过贷款或者信用卡的逾期?他们的征信有问题吗? 我们做用户画像的目的也就是根据我们指定的战略方向最终去解决这些问题。 在梳理标签的过程还要紧密的结合我们的数据,不能脱离了数据去空想

SparkSQL 核心编程

蓝咒 提交于 2020-08-16 07:17:33
文章目录 SparkSQL 核心编程 新的起点 DataFrame 创建DataFrame 从Spark数据源进行创建 从RDD进行转换 从Hive Table进行查询返回 SQL语法 DSL语法 RDD转换为DataFrame DataFrame转换为RDD DataSet 创建DataSet RDD转换为DataSet DataSet转换为RDD DataFrame和DataSet转换 RDD,DataFrame,DataSet 三者的关系 三者的共性 三者的区别 三者的互相转换 IDEA开发SparkSQL 用户自定义函数 UDF UDAF 弱类型 - DataFrame 强类型 - DataSet 数据的加载和保存 通用的加载和保存方式 加载数据 保存数据 Parquet 加载数据 保存数据 JSON CSV MySQL 导入依赖 读取数据 写入数据 Hive 内嵌的HIVE 外部的HIVE 运行Spark SQL CLI 代码操作Hive SparkSQL 核心编程 新的起点 Spark Core中,如果想要执行应用程序,需要首先构建上下文环境对象 SparkContext ,Spark SQL其实可以理解为对Spark Core的一种封装,不仅仅在模型上进行了封装,上下文环境对象也进行了封装。 在老的版本中,SparkSQL提供两种SQL查询起始点

hive sql计算连续签到天数

泄露秘密 提交于 2020-08-16 06:58:54
在a表中有id和date两列,记录用户当天是否签到,想查询出哪些用户连续签到了3天(或连续签到更多天,是连续签到),sql改如何写呢? 首先 用row_number来统计排名 select id,date,row_number() over(partition by id order by date) as rank 结果 然后 用date-rank作为一个新的字段,再count不同的date-rank作为cnt,并且group by id,(date-rank),得到如下结果: 后面的那个cnt就是代表这个id连续的次数 来源: oschina 链接: https://my.oschina.net/u/2000675/blog/4297834

Hive内嵌字符处理函数:regexp_extract,regexp_replace,split,replace,translate

假如想象 提交于 2020-08-16 03:22:45
1.Hive内嵌函数说明 官方地址: hive函数大全官方地址 Hive字符处理函数系列1: hive内嵌字符串函数1 String Functions Return Type Name(Signature) Description regexp_extract(string subject, string pattern, int index) Returns the string extracted using the pattern. For example, regexp_extract('foothebar', 'foo(.*?)(bar)', 2) returns 'bar.' Note that some care is necessary in using predefined character classes: using '\s' as the second argument will match the letter s; '\\s' is necessary to match whitespace, etc. The 'index' parameter is the Java regex Matcher group() method index. See docs/api/java/util/regex/Matcher.html for more

大数据学习笔记之一基本概念

社会主义新天地 提交于 2020-08-15 21:47:00
近年来,随着IT技术与大数据、机器学习、算法方向的不断发展,越来越多的企业都意识到了数据存在的价值,将数据作为自身宝贵的资产进行管理,利用大数据和机器学习能力去挖掘、识别、利用数据资产。 如果缺乏有效的数据整体架构设计或者部分能力缺失,会导致业务层难以直接利用大数据大数据,大数据和业务产生了巨大的鸿沟,这道鸿沟的出现导致企业在使用大数据的过程中出现数据不可知、需求难实现、数据难共享等一系列问题,本文介绍了一些数据平台设计思路来帮助业务减少数据开发中的痛点和难点 一大数据技术栈 大数据整体流程涉及很多模块,每一个模块都比较复杂,下图列出这些模块和组件以及他们的功能特性,后续会有专题去详细介绍相关模块领域知识,例如数据采集、数据传输、实时计算、离线计算、大数据储存等相关模块。 二、lambda架构和kappa架构 目前基本上所有的大数据架构都是基于lambda和kappa架构,不同公司在这两个架构模式上设计出符合该公司的数据体系架构。lambda 架构使开发人员能够构建大规模分布式数据处理系统。 它具有很好的灵活性和可扩展性,也对硬件故障和人为失误有很好的容错性,关于lambda架构可以在网上搜到很多相关文章。而kappa架构解决了lambda架构存在的两套数据加工体系,从而带来的各种成本问题,这也是目前流批一体化研究方向,很多企业已经开始使用这种更为先进的架构。 Lambda架构