自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(176)
  • 资源 (1)
  • 收藏
  • 关注

原创 Hive实战处理(二十三)hive整合phoenix

业务表使用hbase存储,使用hive整合phoenix,使用sql语法进行数据查询。

2024-01-04 15:49:19 1085

原创 HIVE实战处理(二十二)股票连续上涨最长的天数

sum和leg函数可以完美解决连续型数据问题

2022-09-15 14:46:34 1093 1

原创 Idea 导入多个maven项目,通过父工程引入子工程

刚刚开始使用IDEA很多不习惯,导入第二个maven项目时之前的项目就没了,下面介绍下导入多个maven项目展示在左侧栏Maven Projects,提醒:使用工具的时候一定看清楚提示再操作,就会少走好多弯路。1、选择file-new-Module from Existing Sources…2、选中项目的根目录,点击OK 3、默认选择Ceate module from existing sources,但是我们要选择Import module from external model,然

2022-05-12 15:34:10 4493

原创 oracle创建分区表以及索引

一、分区表、索引的分类1、分区表原理:对于10gR2而言,ORACLE对于分区表方式其实就是将表分段存储,一般普通表格是一个段存储,而分区表会分成多个段,所以查找数据过程都是先定位根据查询条件定位分区范围,即数据在那个分区或那几个内部,然后在分区内部去查找数据,一个分区一 般保证四十多万条数据就比较正常了,2、分区表的分类:•    Range(范围)分区range分区方式,也算是最常用的分区方式,其通过某字段或几个字段的组合的值,从小到大,按照指定的范围说明进行分区,我们在INSER

2022-04-15 18:06:07 8871

原创 数据指标体系的构建思路

前言指标一般分为:结果性指标和过程性指标1)结果性指标,比如电商场景下的 GMV 或订单量,它通常是业务漏斗的底部,是一个不可更改的、后验性的指标。2)过程性指标,可以简单理解为我到达这个结果之前经过的路径,以及通过这个路径去衡量转化好坏的过程,它是可干预的,而且通常是“用户行为”。在实际的业务运营过程中,不仅要关注结果性指标,更要关注过程性指标,通过优化过程性指标便能够更加有效的达成结果性指标。在了解了指标的类型之后我们就可以着手开始搭建我们的指标体系了,首先需要找到什么是我们关注的核心指标?

2021-06-28 17:14:16 1324

原创 canal实操(一)监控mysql的数据打印到控制台

前言:本实操参考: 超详细的Canal入门,看这篇就够了!一、简易版本的canal控制台输出增量的日志1、准备一个mysql表,mysql压缩包解压的安装教程2、插入一条数据3、对应canal启动的客户端会把插入的log日志信息打印出来。以上需要本地开启canal 启动命令startup.batmysql服务启动准备好更新/插入的数据INSERT INTO runoob_tbl VALUES('2','肉包','小米','20210503');一旦上面1,2启动,mysq

2021-05-27 11:24:37 1341 1

原创 mysql实战环境(二)压缩包直接解压后启动mysql

1、压缩包下载地址:http://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.24-winx64.zip当然也可在官网进行免费下载2、直接解压压缩包到指定目录3、原始压缩包应该是没有data目录、ini文件的,启动mysql前都需要创建。1)windows环境下的ini的配置信息如下:注意:1)需要修改的地方basedir和datadir2)skip-grant-tables 这个配置项很重要,作用是跳过登录的验证,因为刚安装你不

2021-05-27 09:52:43 711

原创 mysql实战环境(一)win的5.5.5升级到5.7.20

一、mysql更新升级前的准备工作1、windows下查看mysql的安装路径登录MySQL的客户端,然后输入命令:show variables like “%char%”;直接看最后一行2\二、mysql升级Windows下将MySQL5.5升级为MySQL5.7第一步:停止原来的MySQL服务,打开任务管理器,找到mysqld的进程名,停止掉。第二步:备份原来数据库的文件,在C:\ProgramData\MySQL 相应的版本目录下面,有data目录,将此目录复制到其他地方备份。第三

2021-05-24 18:30:56 320 1

原创 Hive学习之路 (二十三)Hive 常用的内置函数(补充) posexplode

一、时间区间拆分成单独行1、天级别:根据指定日期(到天)和结束日期,列出这段时间内的所有明细时间select tf.*,t.*, date_add(start_date,pos) from ( select 'a' as a, '2018-11-01' as start_date, '2018-12-01' as end_date ) t lateral view posexplode(split(space(datediff(end_date,start_date)),' ')) tf as

2021-05-20 10:21:26 801 1

原创 Hive实战(三)特定分割符\u0003

create table temp.tmp_test_serp(id string,name string,password string)row format delimited fields terminated by '\003'使用java编写一个特定分割符\u0003的txt文件。 int splitChar = 3; String splitString1 = String.valueOf((char)splitChar); System.out

2021-05-17 13:35:13 4022

原创 Java实战(二)读取mysql数据并以特定分隔符写入到本地文件

一、创建一个maven项目Demp,构建结构如下图所示:1、读取mysql数据库的数据,封装为User对象。重新toString()方法,用特定分隔符进行组装。package example.dao;import java.util.ArrayList;import java.util.List;public class User { private String id; private String name; private String password;

2021-05-14 15:39:14 964 2

原创 spark基础知识(一)spark submit的提交参数

1、因为生产环境的环境依赖不够,需要单独引用参数设置./spark-submit --master spark://ip:7077 #如果时本地模式,用local[n] ,n>1--class com.ec.SparkConsumer \--jars $(echo /home/rowen/libs/*.jar | tr ' ' ',') \ #批量引用环境需要的jar包--packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2

2021-05-11 18:48:27 197

原创 大数据开发选择之技术路线 or 业务路线?

问题一、大数据开发在公司是不是每天写sql,会转别的吗?问题的本身是在思考技术人的职业发展和自身能力提升的瓶颈。如果是做大数据平台开发,那更多是偏向后端,所以是必须要写代码的,不限于java\scala等语言。如果是数仓开发,那么会偏向业务,会涉及维度建模,ETL,报表开发等等。数仓开发又分传统的离线数仓和实时数仓。1)离线数仓的话写Hive SQL或者Spark SQL比较多,但也不是单纯的写写SQL而已,有时候会开发一些自定义函数,或者与第三方存储进行集成时,都是要写代码的。2) 实时

2021-05-11 18:03:43 625

原创 JAVA基础(三)设计模式之单例模式以及线程安全问题

一、线程安全1、什么是线程安全?如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所提供的接口对于线程来说是原子操作,或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题,那就是线程安全的。2、单例模式下的线程安全实战//创建单例类public class TestSingleton { String name

2021-05-11 17:21:08 363

原创 JAVA理论(二)JAVA多线程实现同步+多线程并发同步解决方案

一、线程安全问题1、为什么有线程安全问题?当多个线程同时共享同一个全局变量或静态变量,做写的操作(修改变量值)时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作时不会发生数据冲突问题。2、案例:需求现在有100张火车票,有两个窗口同时抢火车票,请使用多线程模拟抢票效果。1)改良前代码/** * 需求现在有100张火车票,有两个窗口同时抢火车票,请使用多线程模拟抢票效果。 * Created by yz on 2018/04/01. */public class ThreadDe

2021-05-07 17:05:47 608 1

原创 maven实战(三)maven构建scala的项目以及maven环境bug修复

1、选择maven可选的模版创建scala项目2、配置gva坐标,选择对应的maven依赖、setting文件。3、直接点击下一步,选择对应项目的路径地址。4、中间因为maven环境问题,导致项目创建失败,src文件夹也创建失败。5、后面发现是setting文件中的镜像问题,镜像越多反而会让项目加载失败。后面更新了mirror,只填写了阿里云的镜像源,其余的都删除了。<mirror> <id>alimaven</id> <n

2021-04-14 17:03:28 277

原创 linux桥接模式下导入VMX文件之后的相关设置和xshell连接

1、获得本地路由ip地址(本地也是在wifi情况下连接,只不过是使用ipv4)注意:ipv6的有坑,我们另说。 1、修改网卡eth0设置ONBOOT=“yes”IPADDR=192.168.43.111 #在0-255之间随便设置一个ip作为虚拟机ip地址。GATEWAY=192.168.43.1 #设置为和本地路由地址一样的ip,查看看本地路由地址的见上面。DNS2=192.168.43.1[hadoop@hadoop000 network-scripts]$ pwd/etc/sysco

2021-04-13 18:43:39 218

原创 sparkstreaming实战(一)sparkstraming的Output Operations之foreachrdd实例

sparkstreaming 导出到外部数据库,foreachrdd的应用:https://blog.csdn.net/legotime/article/details/51836039

2021-04-13 14:41:17 104

原创 shell实战(二) 提取文件全路径的不后缀的文件名

[root@localhost log]# var=/dir1/dir2/file.txt[root@localhost log]# echo ${var##*/}file.txt2、提取后缀[root@localhost log]# echo ${var##*.}txt3、提取不带后缀的文件名,分两步[root@localhost log]# tmp=${var##*/}[root@localhost log]# echo $tmpfile.txt[root@localhost log

2021-04-12 12:00:17 3070 1

原创 shell实战(一)循环获得父目录下的子目录

#!bin/sh#获得目录下面的子目录名称,并保存在数组中LOCAL_PATH=$1 #/home/hadoop/test/cd $LOCAL_PATHfunction test(){#创建目录的listchannelArr=("") i=0 for line in `ls $LOCAL_PATH` #此处也适合hdfs目录 hdfs dfs -ls $HDFS_PATH do #echo $line channelArr[i]=${line} echo "$c

2021-04-12 11:25:27 701

原创 Nginx反向代理的两种配置方式

一、nginx反向代理简单配置1、准备nginx环境这篇文章的前提是已经配置好了NGINX,而且tomcat已经配置好了,而且能能够访问了。反向代理不同端口(本案例均是单节点)这里介绍一台nginx服务器(192.168.83.130),代理两个本机的tomcat(端口分别为:192.168.83.130:8080、192.168.83.130:8081),下面是安装后情况:1)nginx目录:2)tomcat实例:首先在两个tomcat的/conf/server.xml里面分别配置端口如

2021-04-09 15:41:37 10281 1

原创 负载均衡篇(二)实现Web负载均衡的几种方式

负载均衡(Load Balance)是集群技术(Cluster)的一种应用。负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力。目前最常见的负载均衡应用是Web负载均衡。根据实现的原理不同,常见的web负载均衡技术包括:DNS轮询、IP负载均衡和CDN。其中IP负载均衡可以使用硬件设备或软件方式来实现。一、什么是web负载均衡服务器集群(Cluster)使得多个服务器节点能够协同工作,根据目的的不同,服务器集群可以分为:高性能集群:将单个重负载的请求分散到多个节点进行处理,最后再将处理结

2021-04-09 11:46:26 616

原创 负载均衡篇(一)浅谈Nginx负载均衡和F5的区别

前言最近在负责某集团网站时,背景是:同一局域网的用户请求时候,对外暴露的公网ip是同一个,基本就是用户请求ip扎堆。同时用到了Nginx与那么后面就改造为F5,如图所示,负载均衡器F5作为处理外界请求的第一道“墙”,将请求分发到web服务器后,web服务器上的Nginx再进行处理,静态内容直接访问本地门户,动态数据则通过反向代理指向内网服务。其实Nginx和F5这两者均可用作网站负载均衡,那二者有什么区别呢?笔者在此浅谈下Nginx与F5的一些区别。目前很多网站或应用在设计之初都会为高并发的数据

2021-04-09 11:34:43 861

原创 web网络知识(一)公网IP、内网IP

一、公网和内网的区别1、什么是出口ip?就是你上网时候暴露在公网的ip。2、内网ip和实际的出口ip有什么不同?通过系统查看的ip是在局域网内的ip,也就是内网ip,但是需要上网的话会通过NAT出口,会被分配一个公网ip查看公网出口ip的:在百度输入ip。查看内网ip: cmd ->>ipconfig例子:出口ip(公网ip)和自己的电脑ip...

2021-04-09 10:17:19 2745

原创 Hive学习之路 (二十五)Hive 行转列str_to_map类比mysql的Pivot (补充)

前言传统关系型数据库中,无论是Oracle(11g之后)还是SQLserver(2005之后),都自带了Pivot函数实现行转列功能,本文主要讲述在Hive中实现行转列的两种方式。一、关系型数据库方式如果使用mysql\oracle对应的pivot函数的话,sql如下:with testtable(select 1 id,'k1' key,123 value union allselect 1,'k2' key,124 value union allselect 2,'k1',234

2021-04-07 15:43:04 470

原创 mysql建表的时候需不需要外键

主键(PK)和索引是不可少的,不仅可以优化数据检索速度,开发人员还省不其它的工作,一、矛盾焦点:数据库设计是否需要外键。这里有两个问题:1)是如何保证数据库数据的完整性和一致性;2)是第一条对性能的影响。正方观点:1)由数据库自身保证数据一致性,完整性,更可靠,因为程序很难100%保证数据的完整性,而用外键FK即使在数据库服务器当机或者出现其他问题的时候,也能够最大限度的保证数据的一致性和完整性。eg:数据库和应用是一对多的关系,A应用会维护他那部分数据的完整性,系统一变大时,增加了B应用,A和

2021-04-06 18:50:07 1314

原创 Hive实战处理(十八)拉链表的设计和使用

一、拉链表的使用场景在数据仓库的数据模型设计过程中,经常会遇到下面这种表的设计:1、 有一些表的数据量很大,比如一张用户表,大约10亿条记录,50个字段,这种表,即使使用ORC压缩,单张表的存储也会超过100G,在HDFS使用双备份或者三备份的话就更大一些。2、 表中的部分字段会被update更新操作,如用户联系方式,产品的描述信息,订单的状态等等。3、 需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史某一个时间点的状态。4、表中的记录变化的比例和频率不是很大,比如,总共有

2021-03-31 18:51:44 429

原创 IDEA实战(二)错误: 找不到或无法加载主类 解决方法

1、未能成功编译;尝试:菜单—》Build—》Rebuild Prodject结果:启动服务仍然报同样的错误2、缓存问题;尝试:菜单—》File—》Invalidate Caches/Restart 选择Invalidate and Restart 或者 只是Invalidate,清除掉缓存,然后Rebuild Project结果:启动成功,问题解决3、设置一下file–>project structure–>Module:paths里面的编译路径Complier outpu

2021-03-30 16:14:44 891

原创 mysql服务器配置系列之(一)mysql代理服务器+主从库同步 配置步骤

mysql 主从同步 mysql代理服务器一、搭建mysql主从同步(实现数据自动备份)实例:把主机192.168.4.100的数据库配置为主机192.168.4.99的从数据库一、主数据库服务器配置1、主从服务器分别作以下操作:1.1、版本一致1.2、初始化表,并在后台启动mysql1.3、修改root的密码2、修改主服务器mater:[root@mysql ~]# vim /etc/my.cnf[mysqld] log-bin=mysql-bin //[必须]启用二进制日志

2021-03-17 14:48:00 577

原创 ASCII码对照表 八进制 十六进制 十进制 字符

背景:信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。1、sqoop import 参数可以设置为八进制的 (\0标识是8进制数字,\x0标识16进制数字;’\0037’中的第2个0 是标准写法)/usr/bin/sqoop

2021-03-16 15:17:30 6019

原创 Ngnix的安装步骤

nginx安装背景:因为机器迁移,需要对服务进行进行迁移,对于上面的有python语言相关的,则直接把对应的服务目录copy到新机器上即可。但是特殊的nginx这些服务的copy是不起作用的,必须要重新在新机器重新安装。1、查看网络和nas挂载情况ping 10.200.60.129,就是日常连接hive集群的机器ip,这个要看这个机器是和什么地方进行数据交互使用的。2、 查看各个服务的安装地址(例如nginx)ps -ef | grep nginxversion 10779 22137

2021-03-11 16:53:55 110

原创 HIVE实战处理(十) hive函数json_tuple、get_json_object中遇到的json格式不符合规范问题

1、json解析格式的时候失败的时候检查格式问题。注意: 后面的value如果是json的话,外层{}的外面不需要再有""--处理前的代码select line,get_json_object(line,'$.ext')from (select '{"ext":"{"isNeedToMigu":"0"}"}' as line) a;因为格式问题,所以解析json失败,代码结果:--处理后的代码select line,line_new,get_json_object(line_new,'$

2021-03-04 14:58:45 1537 1

原创 Hive学习之路 (二十四)Hive 分桶表介绍

暂无分桶表的使用场景1、概念: 对于表或分区,进一步细分成桶。 分桶方式: 对列进行hash再对桶个数取模,确定记录入桶。 2、操作 普通表:create table nor_tab(id int,name String,age int) row format delimited fields terminated by '\t' lines terminated by '\n'; 加载数据:load data local inpath

2021-03-03 16:44:44 165 1

原创 HIVE实战处理(九) hive函数sort_array解决排序求最大值以及collet_list列表排序混乱

背景:播放数据有2个来源,根据2个来源取每个用户最大的播放时长作为最后结果。因为sort_array不支持倒序排列,只能根据arr[1]来确认是最大值(因为只有2个数据源)select arr,arr[0],arr[1]from (select name, collect_list(play_duration_ms) , sort_array(collect_list(play_duration_ms)) arr, arr[1] --最大的播放时长 --sort_array(ar

2021-03-02 18:12:39 4771

原创 HIVE实战处理(八) hive窗口函数

1、 count、sum、avg、max、min# 按照 year 来分组,统计每一年的总和# 结果:每个月的值都是本年的总和sum(val) over(partition by year)# 按照 year 来分组,按照 month 来排序# 结果:n 月的值是本年 1月到 n 月的累计值sum(val) over(partition by year order by month)通过 explain select ... 来查看语句解析,可以简单理解为,在每一次 order by 之后

2021-02-09 17:54:56 711

原创 impala同步hive数据

impal同步#bin/shset -eshopt -s expand_aliases #这里是可以在shell里面用重命名.~/.bash_profilestypeset -u sub_part_flag #把变量转换成大写# typeset的-l选项将一个变量的字符变成小写# typeset的-u选项将一个变量的字符变成大写table_name=$1part_name=$2sub_part_flag=$3dw_hdfs_path="/user/hive/warehouse"if

2021-01-29 11:14:22 2834

原创 Oracle实用操作(三)oracle 表名长度的限制

Oracle实用操作(三)oracle 表名长度的限制1、在新建oracle表的时候,经过查找相关资料oracle表名的最大长度是30,我加上了0331正好是30,多加2为就32了,当然报错了。2、同时有网友说看看desc user_tables,看table_name字段的定义也可以发现,这个很有道理,于是我看了一把.这么看来,表空间名最大长度也是30 。看来oracle对30,情有独钟嘛。...

2021-01-20 10:08:35 6860 2

原创 IDEA 在同一个界面新建多个工程项目

一、方法一(外层不是maven项目)1、新建一个空项目2、设置新建空项目的名称,其实就是个文件夹名称。3、给项目新建Module,对应的module就是相应的项目4、我们选择新建一个空白的maven项目,选择对应的模板archetype,下一步就是检查子项目的位置正确与否5、按照上面同样的步骤,我们再建一个空白maven项目,这样我们就在“Eureka实例的健康自检”目录下建立了两个maven项目,同样的步骤我们可以在IDEA中创建更多的项目。项目目录结构如下二、方法二(外层不是

2021-01-15 11:35:50 2061 1

原创 网络应用名词解释(APP APK SDK GPS JDK IDE)

APP (Application)应用程序 :读作[æp]。不限于操作系统,指的是一种可执行程序。例如:QQ是一种应用程序,有 QQ ios版,QQ Android版。APK (Android Package)安卓安装包:软件编码完成后,制作成安装包(apk),用户得到安装包后,安装到自己的安卓设备上使用。类似于Windows环境下的安装软件,例如下载QQ安装软件,安装到Windows系统中。SDK (Software Development Kit)软件开发工具包:软件开发过程中需要的工具包。例如:

2021-01-08 17:29:34 1226

原创 Kettle实战(二)替换文件分割符为十六进制分割符

具体实操见百度网盘链接:https://pan.baidu.com/s/1AezX78uhR1VKDQA03StEMA

2020-10-22 14:17:54 678

hbase安装和基本介绍

安装详情

2017-07-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除