自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(233)
  • 收藏
  • 关注

原创 详细讲解hive on tez中各个参数作用,以及如何优化sql

最近经常有优化sql的任务,但是自己能力有限,只能凭经验去优化,现整理加学习一波,也欢迎各位学习和讨论。我们经常用hivesql 的模型就是 join.如下。这里面发生了什么,执行流程是什么,为什么有的insert要几十分钟有的只要几分钟。--造1000w条数据 文件大小为300M已知上面的数据为1000w条其中 id=1的有1000条 其余id=1000到1000w的依次分布。

2024-09-05 15:56:58 857

原创 ES数据类型学习之keyword和text以及查询条件match和term

参考文章如上。开始学习。

2024-08-08 16:18:20 1298

原创 mysql如何交换两列的值

1.多加一列 比如add column tmp , set tmp=des,des=name,name=tmp。发现结果 好像是先把des赋值给name了,然后再执行set des=name所以数据不对。简单的一个思路,唯一注意的是要注意on的关联条件,使用主键关联。如上图所示name和des两列数据错位了。我看到网上有几种方法。2.使用一个临时表 具体也没看。

2024-08-07 17:54:59 255

原创 ES中的数据类型学习之Aggregate metric(聚合计算)

"metrics": [ "min", "max", "sum", "value_count" ], --那些聚合操作。--"field": "agg_metric" 代表的是对哪个字段进行聚合可能有agg_metric1,agg_metric2。"default_metric": "max" -- 默认显示的聚合字段 用来query的。"type": "aggregate_metric_double", --字段类型。"my-agg-metric-field": { -- 字段名。

2024-07-22 17:12:55 863

原创 ES中的数据类型学习之ALIAS

注意 必须是全路径,如果原字段名的是object person {"name","cc","sex":"nan"},你想给name一个别名,必须是 "path": "person.name"某些情况下是查不出别名字段的,比如_source 顾名思义,source就是原始字段,这个别名只能算是一个新增虚拟字段。1.目标字段必须是固定的字段,不是一个对象或这个其他的字段的别名,也就是别名 不能是[keyword的别名]的别名。我们再看看官网给的说法。这样 我实际存储的还是两个字段,但是对外暴露的还是一个字段。

2024-07-22 15:52:42 766

原创 ES中的数据类型学习之ARRAY

1.es里没有专用的array类型,实际类型是keyword 或者object类型。3.es这里的数组不是真正的数组,如果要用真正的数组,推荐用nested数据类型。查看下映射 GET my-index-000001/_mapping。发现属性实际为keyword 和properties。但是查询 对象中的多个属性的时候就会出现问题。2.es的array只能存相同类型的数据。还有一些就不复制粘贴了。这个时候就需要用到nested了。发现查出两条数据没有问题。

2024-07-22 12:20:28 1041

原创 elastic中的merge

官网永远是学习的最好地方。

2024-07-22 11:55:06 903

原创 一文教你搞懂hive中的NULL,null,\N,空

因为这个只是一个linux的显示,他只能显示字符串,不管是你是字符串NULL还是真正的空,我总得显示一下吧?显示''空字符串,或者小写的null,或者大写的NULL,甚至字符串'空'。如何理解beeline这个很简单,--nullemptystring=false就用NULL代表空 --nullemptystring=true 就用''代表空。(1,'cclovezbf','普通字符串cclovezbf'),(2,'\\N','字符串两个反斜杠一个N'),(5,'NULL','字符串NULL'),

2024-07-19 19:10:58 427

原创 hive 报错return code 40000 from org.apache.hadoop.hive.ql.exec.MoveTask解决思路

但是这个错是hive的错,我们开发过程 中会遇到很多hive问题,都怎么解决呢?我建议看源码,但先不要看报错源码,直接看errorCode源码,别人hive的开发者也是人,也知道这里会报错,可能会好心告诉我们怎么解决。看到这里获取配置项,就舒服了,毕竟就算我们发现假设hive源码有问题,我也没法修改cdp的源码。那么直接看hive的源码,毕竟cdp也是抄的hive官方的代码。1.设置线程数为1,线程数越少,产生bug的几率就越小。3.改为分区表,此时不在一个目录了,就不会有这个问题了。

2023-11-23 17:32:42 3142

原创 hive 之select 中文乱码

concat_ws("",arrary("境内")) 有用,此时也不知道如何下手,只有掏出大杀器 explain.其实还有别的办法,但是和concat_ws(array(""))一样比较丑陋,我就不说了。经过多方面测试 concat("境内") concat_ws("","境内")没用,有时候我们需要自定义一列,有时是汉字有时是字母,结果遇到这种情况了。此处的中文乱码和mysql的库表 编码 latin utf 无关。此时怀疑就是if 函数起了作用,但是一时间不知道是为啥。即可解决中文乱码问题!

2023-10-12 16:16:44 1461

原创 HiveServer2 Service Crashes(hiveServer2 服务崩溃)

Troubleshooting Hive | 5.9.x | Cloudera Documentation1.hive分区表太多(这里没有说具体数量。)2.并发连接太多,我记的以前默认是200个连接 3.复杂的hive查询访问表的的分区4.hs2实例数太少如果存在这些情况中的任何一种,Hive可能运行缓慢,或者可能崩溃,因为整个HS2堆内存已满。1.hs2服务直接挂掉,或者你开启新会话失败。2.hs2服务看起来是好的,但是你连接被拒绝3.查询提交重复失败4.查询一直在提交,查询时间长这里太长了,我直接用我自

2023-10-07 15:38:47 1776

原创 logback日志框架学习(3)configuration配置文件

除了这三个常见元素之外,<appender>元素可以包含与appender类的JavaBean属性相对应的任意数量的元素。顺便说一句,现有的log4j用户可以使用我们的PropertiesTranslator web应用程序将他们的log4j.properties文件转换为logback.xml。打包数据由jar文件的名称和版本组成,jar文件是堆栈跟踪行的类的来源。在上面的示例中,假设nodeId属性是在上下文范围中定义的,那么它将在每个日志记录事件中可用,即使是那些通过序列化发送到远程主机的事件。

2023-09-26 19:57:54 1206

原创 logback日志框架学习(2)logback的构造

x.y.z.appender.add=a-xyz1 additivty.flag=true x.y.z继承x最后appender=A1,a-x1,a-x2,a-xyz1。设置root=debug,x=info ,x.y=NONE ,x.y.z=NONE,最后x.y和x.y.z的日志级别都继承了x=INFO。设置root=error,x=info ,x.y=NONE ,x.y.z=warn,最后x.y的日志级别是继承了x=INFO。例如 com.chenchi就是com.chenchi.age的父级关系。

2023-09-26 16:41:40 264

原创 impala常用时间函数,date->string->timestamp互转

impala 和hive不一样,hive是弱类型,比如int和string在大部分条件下可以比较比如hive select 1='1' --结果true或false但是impala select 1='1' 报错 operands of type TINYINT and STRING are not comparable: 1 = '1'这样带来的好处是 类型一致结果更准确,缺点是增加开发人员的精力。。话不多说直接来案例。

2023-09-22 16:39:23 3433

原创 mysql convert函数 解决读取double为科学计数法问题

为什么需要这个函数?mysql是弱类型的 where stringcol=1 and intcol='1' 都行 会自动转化,那我为什么还要呢?转化为char targetId=506 batchid=9.061340835102065e17 还是错的。很简单 java读取double时会科学计数法,那么我不读取double 读取varchar就好了。mysql有个类型是double ,基本没人用,但是就是有人用。看似解决了,其实没解决,过了几天发现另外一个问题。看到没,出现了科学计数法, 这怎么可以呢?

2023-09-14 19:07:23 639

原创 konisGraph学习。复杂查询优化记录

g.V().has('company','company_name', P.within("公司1")).repeat(outE('invest').otherV().simplePath()).times(7).g.V().has('company','company_name', P.within("公司1")).repeat(outE('invest').otherV().simplePath()).times(7).前者会先获取 1-7跳的所有数据然后再过滤最后节点为公司7的数据。

2023-09-11 18:42:48 233

原创 flink学习之state

同时判断clickcntState次数是否>=10如果大于就将该userid 输出到sink。有valueState listState mapstate。1.如果一个用户1s翻1页,或者速度更快,连续10次,那么就认为用户是机器人。别人只能通过截屏,提取文字的方式盗版小说。clickcntState 保留用户1s1页连续点击次数。lastClickState 保留用户上一次的点击时间。如果间隔<1s clickcntState就+1。如果>1s clickcntState就置于0。

2023-09-07 18:41:33 361

原创 flink学习之广播流与合流操作demo

比如lol,每天不断有人再投诉举报,客服根本忙不过来,腾讯内部做了一个判断,只有vip3以上的客户的投诉才会有人工一对一回复,过了一段时间大家都发现vip3才有人工,都开始充钱到vip3,此时人还是很多,于是只有vip4上的客户才能人工回复。demo思想:以上述vip做例子,获取用户不断投诉的id和vip等级, 数据库保存可以享受人工服务的vip等级,该等级可以自行调整(我是随着时间变化主键增大)。但是task10 task9都还是vip=0 ,说明流没有广播,除非此处并行度设置为1。

2023-09-06 15:30:03 699

原创 elastic数据迁移或者修改mapping

4.重新创建 i_dw_cc_test索引 设置好自己想要的mapping 比如我这里都想要text。get i_dw_cc_test_bak/_mapping 查询备份数据的mapping啥样。get i_dw_cc_test/_mapping 查询备份数据的mapping啥样。get i_dw_cc_test_bak/_count 查询数据是否ok。get i_dw_cc_test/_count 查询数据是否ok。例如我现在有个index i_dw_cc_test。如何修改mapping呢?

2023-09-06 11:37:29 147

原创 gremlin安装使用 详细步骤

gremlin是一个图数据库查询工具,注意他只是一个工具类似于dbeaver,navicat,sqlyog,是专门来分析图数据库的一个工具。

2023-08-21 18:55:17 565

原创 maven报错error while loading <root>, Error accessing

如果是老道的程序员已经发现这里的不对了。就是如果jar下载成功了不该有lastupdated文件的。删掉这里的全部文件,换个重新配置settings.xml的仓库 重新下。看没有lastupdated文件 ,jar也能正常打开。这个就是你下的jar不对 我们打开目录。

2023-08-14 17:59:47 747

原创 hive on tez资源控制

sql 注意这里文件数有17个 共计321M 最后是划分为了21个task为什么会有21个task?不是128M 64M 或者说我这里小于128 每个文件一个map吗?再仔细看每个task的日志 map0 data_source=CSIG/HIVE_UNION_SUBDIR_1/000008_0:0+16903572map1 data_source=CSIG/HIVE_UNION_SUBDIR_1/000000_0:0+16960450map2 data_source=CSIG/HIVE_UNION

2023-08-10 16:33:52 1398

原创 logback日志框架学习(1)介绍logback

首先说下对日志框架的感受,很多人slf4j-api slf4j-simplelogback-core logbak-classic log4j logj42很多的日志框架,控制台各种输出的时候日志框架warn error,有时候还不能输出日志。究其原因,大家都觉得日志框架不太重要,反正能输出就行了,感觉和sout也差不多,我也是这样的想法…出了问题百度下,复制两个log4j.properties ,log4j.xml就好了,下次有问题继续cv。不想这样了,我要好好学习下日志框架,希望大家也能好好学习。

2023-08-09 14:33:16 439

原创 设计原则学习之里氏替换原则

2、简单的示例1。

2023-07-31 17:00:35 353 1

原创 设计模式学习之开闭原则

开闭原则的英文全称是 Open Closed Principle,简写为 OCP。它的英文描述是:software entities (modules, classes, functions, etc.) should be open for extension , but closed for modification。我们把它翻译成中文就是:软件实体(模块、类、方法等)应该“对扩展开放、对修改关闭”。说人话就是,当我们需要添加一个新的功能时,应该在已有代码基础上扩展代码(新增模块、类、方法等),

2023-07-31 09:58:25 449

原创 Error attaching to process: sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported versions a

加了-F 成功 /usr/java/jdk1.8.0_232-cloudera/bin/jstack -F 21439 >jstack.txt。所以再执行/usr/java/jdk1.8.0_232-cloudera/bin/jstack 21439 >jstack.txt 失败。找bin/下的java文件通过试java -version 来看当前运行的程序是执行的哪个 java。找到java目录 /usr/java/jdk1.8.0_232-cloudera/bin/java。

2023-07-28 19:26:11 534

原创 hive通过外表整合es,超详细过程。

简单的理解,我们最开始写的地址没有错,但是es这个家伙会发现其他节点的ip,然后用其他ip去连,你这个为true了就只能用我写的那个了。这个不就是kibana的get请求么,我在es试了确实没权限,要组长帮忙开通这个权限后,这个错就解决了。官网的介绍很简单,我看了很多博客,写的也很简单,但是我搞了半天才勉强成功,分享下,免得各位多走弯路。这里提到了essential 和required看来都是必须的,还有写defalut的就不说了。我遇到了一个最大的问题。但是tm的就是不能直接select *!

2023-07-28 17:15:58 1483

原创 CountDownLatch和CyclicBarrier学习

CountDownLatch是4个线程都执行完countDown后,程序继续向下运行,后面的事和4个线程无关,和CountDownLatch.await()此方法等待你们4个干完活有关。这里类似 你自己diy电脑,买了主机,cpu,电源 ,主板,等等,必须等所有快递到了之后你才能安装电脑。CyclicBarrier是在cyclicBarrier.await()执行后 也是4-1 等到4减到0后,也可以继续执行程序,否则一直会等待。CyclicBarrier是你们4个干完活了,等都干完活了,你们接着继续干。

2023-07-26 18:30:25 350

原创 flink1.16使用消费/生产kafka之DataStream

flink高级版本后,消费kafka数据一种是Datastream 一种之tableApi。上官网。

2023-07-25 14:13:52 2703

原创 flink写入到kafka 大坑解析。

加了重试机制 env.setRestartStrategy(RestartStrategies.failureRateRestart(3,Time.of(5000, TimeUnit.SECONDS),Time.of(5000,TimeUnit.SECONDS)));失败的任务只会重试几次。这里就报了java的最常见错误 空指针,原因就是flink要把kafka的消息getbytes。还有此时kafka的offset由flink在管理, 消费的offset 一直没有被commit,所以一直重复消费。

2023-07-25 11:03:07 1475

原创 flink1.16读取hive数据存到es 本地和服务器上遇到的问题和解决思路

- hadoop 版本不需要引入,服务器的hadoop_home有 但是flink启动的时候缺少了hadoop-mapreduce-client-core-3.1.1.7.1.7.1046-1.jar这个jar-->我当时觉得就是缺少了hive的jar 还想ln-s 把CDH/hive/conf里的jar 引入到flink_home/lib里 发现真是错了。--需要引入3.1.2的jar 用的服务器3.1.3的版本会报错-->路径是没有问题的, kinit -kt 成功的。

2023-07-18 18:33:49 895

原创 ElasticSearch学习(1) 基础操作

查询数据 类似 select * from t where name like '%zbf2%' 这里会分词 不同于mysql模糊查询。#精确查询 这里是terms select * from t where name in (zbf2,cc)我们的操作无非是增删改查, 增对的就是库表(index),字段名和属性(mapping),每一行的值(doc。ES首先是index 对应的是数据库,7以前有type的概念,7没有type的概念,也就是说现在ES7。一个库(index)只有一个表(type)。

2023-07-17 19:50:49 1272

原创 flink-cdc之读取mysql变化数据

由于打印的日志太多 我们可以用fastjson稍微封装下 然后传给sink去处理,根据update delete insert实时更新下游数据。修改一条数据 age=1 ->age=2。

2023-07-13 19:15:05 1733

原创 flink启动报错Failed to construct kafka producer

目前是b的工程,那么会不会是jar冲突了,是自己工程冲突了 还是打的jar和flink_home/jar里的jar冲突了?本地起了一个sink2kafka的demo 也没问题,但是在服务器启动的时候就报错了,试了多次无果,开始分析报错原因。a喜欢打非依赖的jar的包,也就是flink的jar都不打进去,全放到服务器的flink_home/jar里。当时我最开始就考虑是jar包冲突,再看下是否冲突,突然想到一个问题,项目中的有两个人。b喜欢打全依赖的jar包,也就是所有flink的jar都打进去,然后执行。

2023-07-13 10:14:09 1990 1

原创 linux 读取文件,并输出含空格的每一行

我们需要分清楚在for循环的时候 $res /"$res" / echo "$res"/ echo $res 这几个区别。这个时候思考下 echo $res和 echo "$res"有啥区别。需求 输出三行 分别是 aaaa bbbb cccc。结果好像不对 好像把空格当作分割符了。OLDIFS="$IFS" #备份旧的IFS变量。IFS="$OLDIFS" #还原IFS变量。IFS=$'\n' #修改分隔符为换行符。咋一看很简单,实则里面有很多小问题。快速的写出for循环 结果。

2023-07-12 18:13:25 866

原创 java如何解析命令行参数

比如 class 是类名, deploy-mode 是部署方式 -conf 是配置文件,为什么别人的这么优雅,我们的这么丑陋!比如 java -jar xxx.jar args1 args2 ,这样没什么问题,但是很多时候这些参数只有我们自己知道。但是我们看好点的项目 例如datax flink,spark 等等 被人的熟知的项目 都是见名知意。可以将参数直接转化为list类型,或者map或者直接转化为一个pojo。很多时候我们的程序都是通过main方法启动,同时传入参数。说这么多还不如直接看官网。

2023-07-06 17:03:05 671

原创 oracle中的iw和ww学习

ww认为01月01日式今年的时间了,认为这个就是2023年的第一周,不管他是周天还是周六,它都属于2023年,

2023-06-13 18:47:06 945 1

原创 hive创建udf函数流程

- 这个属于额外的jar包 自己按需引用 比如你想搞得函数 里面要连接mysql 这里肯定需要引入mysql的驱动包 我这个包是为了计算字符串的表达式的。开始继承hive的udf接口,有很多小伙伴这个时候就喜欢看别人是怎么写的,这个时候就是体现个人差距的时候了,如何不看别人文档自己写呢?抄别人的 为啥不直接抄hive的呢?-- 这个只需provided即可,因为服务器有hive环境-->就是因为没加数据库的名字,反正建议各位加下。注意啊 这里加上数据库的名字,否则退出会话就没了。有精度误差,无伤大雅。

2023-06-09 16:03:18 1050

原创 mysql之uniquekey学习。

个人猜想 因为null值代表一个未知的值 它和0 '' 空表示的意义不一样,0这种都是固定的值,而null代表一个不固定的值。uniquekey就真的是唯一键了吗?可以允许多个重复null值的存在,版本5.73。我插入了重复的数据 null 1 两条结果是成功。思考下null为什么允许重复插入呢?注意唯一键是score+name。插入'' ,1 两条失败。

2023-06-08 17:04:34 746

原创 hive中如何计算字符串中表达式

(4-3) 差分为 4-3结果为 4 + -3 因为括号前面是负号 改为 negtive(4) +negtive(-3)。'1+(2-3)+(-4.1-3.1)+13-(4-3)-(-3.3+4.3)-11' 如何拆分为下面的数组。结果 ["1","+(2-3)","+(-4.1-3.1)","-(4-3)","-(-3.3+4.3)"]前提式 只有+和-的运算,而且只有嵌套一次 -(4-3)没有 -(-4+(3-(3+1)))嵌套多次。结果 ["1","+(2-3)","+(-4.1-3.1)

2023-06-05 17:53:32 771

空空如也

空空如也

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

TA关注的人

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