- 博客(16)
- 收藏
- 关注
原创 yarn的job提交流程
yarn的job提交流程1. 客户端向Resource Manager提交job运行的请求2. Resource Manager进行检查,没有问题后向客户端返回一个共享资源路径和job_id3. 客户端将资源放到共享路径下4. 客户端向Resource Manager反馈,资源已经放入共享路径下,并申请运行mrAppMaster5. Resource Manager将用户的请求初始化为一个Task,并放入调度队列当中6. Node Manager领取到Task7. Resource Mana
2020-09-10 23:01:42
618
原创 使用FileInputStream 读取文件
public static void main(String[] args) { InputStream is = null; try { // 实例化一个InputStream // 对文件进行读操作的是FileInputStream is = new FileInputStream(new File("E:/test/temperature/input/1901")); // 定义一个字.
2020-07-06 23:09:38
1221
原创 Hive 自定义函数-UDF
为什么要自定义函数hive的内置函数无法满足实际开发环境的所有情况,这个时候需要我们根据业务自定义函数来解决问题。hive提供了很多模块的自定义功能,如:serde、自定义函数、输入输出格式化等常见的自定义函数UDF:User Define Function.一对一的输入输出,非常使用。UDAF:User Define Agregation Function.用户的自定义聚合函数。多对一的输入输出 UDTF:User Define Table‐Generate Function.用户自定的表生
2020-07-06 17:15:09
220
原创 HQL 复杂数据类型
array案例重庆市 渝中区,江北区,南岸区,沙坪坝区,九龙坡区,渝北区,大渡口区,巴南区,北碚区浙江省 杭州市,绍兴市,宁波市,台州市create table `users`.`t_view`(pageid string,adid_list array<int>)row format delimitedfields terminated by '\t'collection items terminated by ',';注意事项1. 在建表的时候指定某字段的类型:a
2020-07-03 20:51:17
479
原创 HQL 日期函数
1 current_date():返回当前日期select current_date;# 结果:2020-07-032 current_timestamp():返回当前时间select current_timestamp();# 结果:2020-07-03 12:42:25.7253 add_months(start_date, num_months):返回开始日期后num_months的日期select current_date;# 结果:2020-07-03select add_m
2020-07-03 17:00:46
7507
原创 HQL按班级排序问题
排序函数row_number():没有并列,相同名次顺序排列rank():有并列,相同名次采取空位dense_rank():有并列,相同名次不空位数据01 gp1802 8402 gp1801 8403 gp1802 8404 gp1802 8405 gp1801 8106 gp1802 8107 gp1802 8108 gp1801 8109 gp1802 8110 gp1802 8111 gp1803 8112 gp1802 8913 gp1802 8914 gp1
2020-07-03 11:15:29
195
原创 HQL 虚拟视图和行转列函数
案例array 行转列create table `users`.`t_view`(pageid string,adid_list array<int>)row format delimitedfields terminated by '\t'collection items terminated by ',';# 语法lateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias (',' col
2020-07-03 10:57:22
143
原创 HQL 静态分区
1. 什么是分区直白一点来说,分区就是在表目录下建立子目录。2. 为什么要使用分区随着系统运行时间的增长,数据文件就会越来越大,当Hive对文件进行搜索时,会对全表进行搜索,导致效率降低。而分区的作用就是将表目录下的文件进行分类,将数据分类后进行存储,这样就会避免全表搜索,提高查询效率。3.什么是静态分区静态分区就是添加数据时需要手动指定分区4. 创建静态分区4.1 语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
2020-07-02 11:56:21
389
原创 HQL表操作
1 创建表1.1 语法#1. CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name # 表名[(col_name data_type [COMMENT col_comment], ...)] # 列名[COMMENT table_comment] #表批注[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] # 分区[CLU
2020-07-01 19:48:11
428
原创 HQL 数据库操作
1 创建数据库1.1 语法CREATE DATABASE [IF NOT EXISTS] database_name # 指定库名称 [COMMENT database_comment] # 库批注 [LOCATION hdfs_path] # 指定库的位置 [WITH DBPROPERTIES (property_name=property_value, ...)]; # 指定库的属性信息1.2 实例CREATE DATABASE IF NOT EXISTS EmployeeCOM
2020-07-01 12:39:43
290
原创 Hive的配置安装教程
1. 环境要求jdk,安装目录:/usr/localhadoop,安装目录:/usr/local2. Hive安装模式内嵌模式使用Hive自带默认元数据库derby来进行存储,一般用于测试。优点:使用简单,不需要配置缺点:只支持单session本地模式使用mysql替换derby进行元数据的存储,hive的相关进程都是在同一台机器上,即本地模式。mysql因为是 独立的进程,所以mysql可以和hive在同一机器上,也可以在其他机器上。通常使用关系型数据库进行元数据
2020-06-19 19:51:38
238
原创 Hadoop MapReduce的生命周期
Hadoop MapReduce 作业的生命周期假设用户编写了一个MapReduce程序,并将其打包成xxx.jar文件,并提交作业,该作业的运行过程如图所示:这个过程分为以下5个步骤:作业提交与初始化。用户提交作业后,首先由JobClient实例将作业相关信息,(比如讲程序jar包、作业配置文件、分片元信息文件等)上传到分不是文件系统(一般为HDFS)上,其中分片元信息文件记录了每个输入分片的逻辑位置信息。然后JobClient通过RPC通知JobTracker收到新作业提交请求后,由作业调度
2020-06-14 16:27:53
404
原创 Hadoop MapReduce架构与解析
Hadoop MapReduce 架构hadoop MapReduce 采用了Master/Slave架构,具体如下图所示。它主要由以下几个组件组成:Client、JobTracker、TaskTracker和Task。1.Client用户编写的Map Reduce程序通过Client提交到Job Tracker端;同时 ,用户可以通过Client提供的一些接口查看作业运行状态。在Hadoop内部用“作业”(Job)来表示Map Reduce程序。一个Map Reduce程序可对应若干个作业,每个作
2020-06-13 19:42:56
507
原创 使用Java语言求一个数的二进制原码
使用字符串接收二进制原码。1、辗转相除2、凑齐位数3、补齐符号位public class Binary{ public static void main(String[] args){ String binary1 = getBinary(125); String binary2 = getBinary(-134); System.out.println(binary1);...
2020-02-15 11:16:18
801
1
原创 用Java实现计算两个日期之间相差的天数
public Calculate { public static void main(String[] args){ int days = getBetweenDays(2019,5,20,2020,2,14); } //计算相差天数 public static int getBetweenDays(int fromYear,int fromMonth,int fromDay,int ...
2020-02-15 09:22:43
1012
原创 原码、反码、补码的关系
在了解原码、反码和补码前需要先了解机器数和真值。一、机器数和真值1、机器数一个数在计算机中的二进制表现形式称为这个数的机器数。在机器数中,一个数的最高位是符号位。例如:十进制中的 5 转为机器数就是 0000 0101,-5转为机器数就是 1000 0101。2、真值因为最高位是符号位,所以一个数的机器数并不能代表他的真值。例如1000 0101的最高位1代表负值,其真正的数值是-5,而...
2020-02-15 09:20:37
30089
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人