- 博客(13)
- 收藏
- 关注
原创 Hive表格式转换
Hive 表有多种存储格式,TextFile、ORC、RCFile等等。TextFile 的存储格式是未经压缩的纯文本格式,按指定分隔符对字段进行划分。当数据本身包含了分隔符,就会导致数据错位问题,所以使用TextFile存储数据有较大的安全隐患如果表本身的存储格式已经是TextFile,想要转换成其他格式该如何操作?本教程适合于Hive分区表,如果Hive表不是分区表,直接修改存储格式会导致数据读取失败!一、查看表格式通过建表语句,查看表本身的存储格式命令如下:SHOW CREATE T
2021-11-06 17:45:41
2929
原创 《Hive、Spark、Presto SQL 输入输出表解析》
Hive SQL 解析通过阅读Hive源码,Hive 通过 ParseDriver.parse() 将 SQL 解析成 AST 树AST 树描述了 SQL 的各种操作,解析 AST 树就可以获得输入输出表信息NodeProcessor 接口提供了一个 process 方法,在该方法中,对 AST树 进行深度优先遍历。通过 ASTNode 的 Token 判断当前节点类型,当遇到输入表节点和输出表节点时,解析对应的 ASTNode 获取表名以下是一些与输入输出表相关的 Token,以及对应的 SQL
2021-05-27 23:49:05
1285
原创 基于FsImage和AuditLog的HDFS元仓建设 - (1)数据源篇
如今大数据时代,动辄就是几十上百PB的数据量,每日有会大量的新增数据。HDFS 存储整体的增长情况如何?或许还可以监控 NameNode 的 Summary 来获取。但这只是粗粒度的数据,很难在其中探查出可用于优化的信息。我们会想知道某个目录的一些具体信息,比如:数据量是多少?增长趋势如何?小文件数量如何?访问情况如何?是否长时间无人访问,可以删除?访问频率低但仍需长时间保存,可以通过冷存储降低存储成本?对 HDFS 进行监控、治理离不开这些数据的支持,那么这些数据又该如何获取呢?
2021-04-27 21:30:02
677
原创 数据治理 - TextFile格式Hive表压缩优化实践
背景由于缺少统一的规范落地和平台工具支持,大部分的业务人员、技术人员在建表时并没有考虑到 Hive表 格式的重要性。随着数据量的上升,TextFile格式的存储浪费情况越来越严重在数仓建设中,除了ODS层的表使用TextFile来加快数据加载外,其他层的 Hive 表都应该使用具有高压缩比的 ORC 等存储格式Hive表 具有多种存储格式,这里先简单介绍两种存储格式:TextFile 和 ORCTextFile数据按行存储,默认无压缩,可选择数据压缩方式TextFile格式的 Hive表,数据加
2021-04-24 15:34:56
1314
原创 Hive Meta(Hive元数据)
数据库DBS数据库信息,记录了数据库的名称、Location和描述等列名描述示例数据DB_ID数据库ID1DESC数据库描述Default Hive databaseDB_LOCATION_URI数据库Locationviewfs://…NAME数据库名defaultOWNER_NAME数据库ownerpublicOWNER_TYPEowner类型ROLE表TBLSHive表信息,记录了表的名称、类型外键:DB
2021-04-24 15:33:50
1312
原创 Hive UDF 开发手册
文档目的笔者在工作中有接触到 Hive UDF 的开发任务,大部分 UDF 开发并不困难,困难的往往是:不清楚 UDF 代码的编写逻辑(UDF、UDTF、UDAF)不清楚如何传入特定类型的参数不清楚如何返回特定类型的结果特此整理一番,供自己日后工作参考之用。同时也分享给大家,可以指导初学者开发自定义UDF,也可以作为随用随查的参考手册:UDF开发手册 - UDFUDF开发手册 - UDTFUDF开发手册 - UDAFUDF概念Hive 一共有三种 UDF:UDFUDTFU
2021-04-24 15:32:39
430
原创 UDF开发手册 - UDAF
多行输入,一个结果实现 UDAF 需要实现两个类org.apache.hadoop.hive.ql.udf.generic.GenericUDAFResolver2 UDAF入口类 负责参数校验,决定UDAF核心逻辑实现类org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator UDAF核心逻辑实现类 负责数据聚合案例为了更加直观,本篇文章将以实现计算平均数的案例来讲解功能:计算平均数参数类型:nu
2021-04-24 15:30:32
295
原创 UDF开发手册 - UDF
一行输入,返回一个结果可以满足日常工作中的大部分需求UDF的实现方法Hive 提供了两个实现 UDF 的方式:第一种:继承 UDF 类优点:实现简单支持Hive的基本类型、数组和Map支持函数重载缺点:逻辑较为简单,只适合用于实现简单的函数这种方式编码少,代码逻辑清晰,可以快速实现简单的UDF第二种:继承 GenericUDF 类优点:支持任意长度、任意类型的参数可以根据参数个数和类型实现不同的逻辑可以实现初始化和关闭资源的逻辑(initialize、cl
2021-04-24 15:28:54
1275
原创 UDF开发手册 - UDTF
表生产函数一行输入,输出多行结果实现 自定义UDTF 需要继承 GenericUDTF,并且实现其三个方法:initialize()process()close()其中 process()、close() 为 GenericUDTF 中的抽象方法,必须实现。initialize() 虽然不是抽象方法,但必须手动覆盖实现该方法,因为 GenericUDTF 的 initialize() 最终会抛出一个异常:throw new IllegalStateException("Should not
2021-04-24 15:28:02
767
原创 Hive:select count(distinct)优化以及hive.groupby.skewindata
问题引入数据分析师小A接到需求,需要统计当日各个省份20岁以下的日活跃用户数(去重统计user_id,即UV)现有一个Hive表存储着用户行为数据Hive表:user_behaviour_trace_info 列 描述 user_id 用户id nickname 昵称 age 年龄 province 省份 url 访问地址 access_time 访问时间 device_id 用户手机设备id 小A很顺其自然的写.
2021-02-09 16:41:27
3286
原创 Android 使用OKHttp获取字符串和下载图片
一、使用前需要添加依赖compile 'com.squareup.okhttp3:okhttp:3.10.0'附上GitHub上OKHttp的地址:OkHttp项目AndroidManifest文件中需要添加网络使用权限<uses-permission android:name="android.permission.INTERNET"/>二、实例化OkHttpClient,用于发送请...
2018-06-26 16:07:33
757
原创 使用GSON解析JSON数据的一种方式
一、添加GSON依赖compile 'com.google.code.gson:gson:2.7'注:最新的GSON版本可以在这里查看:GSON二、建立JSON数据的映射对象类名可随意,但属性名要和JSON数据中的key一一对应下面列出几种简单的JSON格式以及其对应的属性://键值对"name":"Jack","sex":"man","age":18,private String name...
2018-06-25 22:50:29
156
原创 Java 向main方法传值时关于*号的问题
现有要求如下: 通过cmd的方式,求简单表达式的值。 比如输入 java Expression 3 + 4 得到的结果为:7代码:import java.text.DecimalFormat;public class Expression {public static void main(String[] args) throws Exception { if(args == null |...
2018-06-25 20:31:16
140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人