- 博客(160)
- 资源 (17)
- 问答 (1)
- 收藏
- 关注

原创 Apache Calcite如何Debug查看学习代码
Apache Calcite刚接触Apache Calcite时(Version 1.26),各种变量比较复杂,上手门槛较高,那么如何直接通过命令行能快速Debug Apache Calcite呢?编译这里不过多叙述,有问题欢迎大家交流。Debug步骤准备工作将example/csv/sqlline文件中的最后一行更改为:exec java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -Xmx1g $
2021-04-20 14:19:40
817

原创 Apache Calcite 实现方言转换
定义Calcite能够通过解析Sql为SqlNode,再将SqlNode转化为特定数据库的方言的形式实现Sql的统一。实现在Calcite中实现方言转换的主要类是SqlDialect基类,其具体的变量含义如下:public class SqlDialect {BUILT_IN_OPERATORS_LIST: 支持的内置定义函数或者运算符(例如:abs and..)// 列 表的标识符String identifierQuoteString: 标识符的开始符号String ident
2021-04-20 13:53:26
3487
3

原创 hadoop生态系统的详细介绍
前提日常喜欢看一些微信分享的好文,总结下来,可以作为过滤器吧(节约更多人的时间!),在这里引用的是别人的文章!对原文的作者表示感谢!确实写的很好!hadoop生态系统的详细介绍简介Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。今天我们来详细介绍下hadoop的生态系统。Hadoop生态系
2017-05-16 23:31:02
17008

原创 Java中violate关键字详解(2)?真正了解violate
一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主内
2017-04-11 09:03:30
25696
15
原创 Apache Calcite-SparkSQL数据准备
由于在学习Apache Calcite的过程中,需要用到SparkSql,会涉及测试一些方法以及函数的作用,因此将创建数据的语句在这里进行记录。
2024-06-17 08:40:05
371
2
原创 Cracking the Data Modeling Interview: Part 1 an Overview
The Data Modeling Interview will require you to delve into foundational SQL concepts and the nuances of data modeling. You must deeply understand relational databases and data warehouses, normalization, indexing, and how to design data structures that effi
2024-04-21 10:55:56
645
原创 End-to-End Data Engineering System on Real Data with Kafka, Spark, Airflow, Postgres, and Docker
【代码】End-to-End Data Engineering System on Real Data with Kafka, Spark, Airflow, Postgres, and Docker。
2024-04-21 08:21:55
1157
1
原创 MySql、PostGreSql中关于Char和VarChar的设定
MySqlcreate tablecreate table table_char_test(charColumn char(3) null,varCharColumn varchar(3) null);insert into calcite.table_char_test values ('a','a');insert into calcite.table_char_test values ('ab','ab');insert into calcite.table_char_
2021-11-25 21:58:06
1067
原创 GITHUB-操作命令记录
强制同步远程与本地分支git push origin HEAD [--force]A handy way to push the current branch to the same name on the remote.
2021-10-26 08:50:40
230
转载 Apache Calcite——Custom traits
由于Apache Calcite的功能复杂,很多专业词汇不好理解,因此将找到的一系列YYDS的博客分享给大家,文章结束会附上转载地址,仅限大家互相学习,支持原创,多多交流。https://www.querifylabs.com/blog/custom-traits-in-apache-calcitehttps://www.querifylabs.com/author/vladimir-ozerov...
2021-08-13 15:47:59
420
原创 Apache Calcite-添加聚合函数(MODE Aggregation Function)
由于在Apache Calcite社区贡献了聚合函数的PR且被合入,这篇博客主要记录一下聚合函数的实现过程以及注意事项。添加聚合函数步骤在Parser.jj添加关键字(这个可以根据实际情况添加,由于当前MODE函数只在PostGresql中实现,因此在合入时候没有将MODE添加为关键字)新增函数解析在SqlKind新增Aggregation Function函数MODE在SqlStdOperatorTable(中保存了SqlOperator和SqlFunction)中新增MODE函数定义
2021-08-12 15:10:52
1057
原创 Apache Calcite-NOT IN Sql 等价转换记录
在使用Apache Calcite的过程中发现Calcite的NOT IN子查询在包含NULL值时不能返回正确的值,在查看select 'T' not in ('S', NULL);这条Sql的执行计划后,发现会将当前语句解析为left join的形式,因此就在思考是不是在转化过程中丢失了什么条件问题。由于需要找到和NOT IN等价的JOIN Sql语句,因此需要从各个方面验证这个语句的正确性。语句1SELECT * FROM orders WHERE order_id NOT IN(SELECT
2021-07-14 14:59:00
452
原创 Apache Calcite——Grouping Sets 子句
目的这个文章主要用来记录在Sql中Grouping Sets 子句的作用,之前在工作中没有接触到这部分内容。这里涉及的表使用上篇文章中的雇员表(EMP)。概要grouping sets子句允许你指定多个group by 选项。增强了group by 的功能。可以通过一条select 语句实现复杂繁琐的多条select 语句的查询。并且更加的高效,解析存储一条SQL于语句。过程下面通过使用 grouping sets 子句与没有使用grouping sets 子句来对比学习该子句。查询每个部门的每
2021-06-30 11:01:34
353
2
原创 Apache Calcite——PostgreSql 数据准备
由于在学习Apache Calcite的过程中,需要用到PostgreSql,会涉及测试一些方法以及函数的作用,因此将创建数据的语句在这里进行记录。CREATE TABLEIF NOT EXISTS dept ( -- 部门编号 deptno serial PRIMARY KEY, -- 部门名称 dname VARCHAR (15), -- 部门所在位置 loc VARCHAR (50));CREATE TABLEIF NOT EXISTS em
2021-06-30 10:08:56
1031
1
原创 PostgreSql-详解Ordered-Set Aggregate Functions
主要解释一下percentile_cont的计算方法:数据准备创建表:create table test( id integer, info text);alter table test owner to postgres;插入数据:INSERT INTO public.test (id, info) VALUES (1, 'test1');INSERT INTO public.test (id, info) VALUES (2, 'test2');INS
2021-06-23 10:30:58
547
原创 JMX 连接 Docker 内 java 应用注意事项
由于近期可能需要观察程序运行的内存以及线程等指标,需要监控在Docker中java应用,在尝试与之前的方式添加后,并不能生效,因此在这里记录,和大家分享。需要添加JMX配置如下-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local
2021-06-18 15:08:11
407
原创 Linux 常见排查命令
收集常见服务排查命令查看某个rpm包已经被安装rpm -qa | grep ***查看僵尸进程信息ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'查看服务器的位数(32/64位)getconf LONG_BIT查看当前文件大小du -h查看整个磁盘的大小df -lh删除查询得到的所有数据find / -name "SERVICE-OOZIE-*" | xargs rm -Rfkill掉所有相关的进程ps -ef|gr
2021-06-18 15:05:47
617
原创 Apache Calcite——新增动态UDF支持
简介通过Apache Calcite支持UDF有两种方式:动态支持:直接通过执行时候将UDF的函数名以及类名传进去,这种方式解析的时候可以在schema中获取到UDF的信息,进而通过Sql校验(这次主要描述这种用法的使用过程以及注意事项)。静态支持:类似Sql中已有的sum、abs等内置函数,通过侵入式的方式将函数添加到其中。使用过程这里以JdbcExample为准,介绍整体的使用方式。加在特定的Schema中为特定的Schema添加UDF支持,调用时统一使用"schemaName".u
2021-06-16 13:45:29
2745
6
原创 Apache Calcite——新增DDL语法支持
在日常需求中,需要Calcite中添加对DDL语法的支持,这里记录一下调研过程以及实施结果。parser.jj、parserImpls.ftl和config.fmpp其中core模块中的parser.jj中定义了支持的语法模板,core模块中的parserImpls.ftl为空,在Server模块中的parserImpls.ftl中定义了具体的DDL语法,作为对core模块中的parserr.jj的补充,即如果采用serser模块中编译生成的SqlDdlParserImpl,是可以解析dql与ddl的,
2021-06-10 14:58:29
2322
3
原创 Gradle 仓库地址配置信息
记录一下Gradle仓库地址: repositories { maven { isAllowInsecureProtocol = true url = uri("https://maven.aliyun.com/repository/public/") } maven { isAllowInsecureProtocol = true url = uri("h
2021-06-08 15:52:32
1446
原创 Linux服务器SSH配置问题
生成命令ssh-keygen -m PEM -t rsa -P '' -f /root/.ssh/id_rsa同步公钥命令cat ~/.ssh/id_*.pub | ssh root@10.66.113.107 'cat >> .ssh/authorized_keys'注意ssh文件的权限问题会影响SSH失败
2021-06-03 16:02:19
176
原创 java程序CPU飙高导致Linux服务器反应缓慢的问题
问题出现使用服务器时发现服务器响应迟钝,因此使用Top命令查看服务器上运行的程序:发现第一个程序57695占用CPU占比为%1102。因此想找到这个问题由什么问题导致的。使用top命令查看具体的线程信息top -p 57695 -H由上图发现就一个应用本身的线程,其余都是与GC相关的线程,并且CPU占用率都比较高。jstack 47 >> 47.stack打印堆栈到具体的文件里面,然后使用linux命令:printf '%x' 459即可打印出CPU超高线程在具体执行
2021-06-03 14:31:40
467
原创 oozie-远程debug参数说明
早期版本4.3.0以及之前版本1. oozie调试Spark应用程序在SparkOpts中添加:sparkOpts=--conf "spark.driver.extraJavaOptions=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,syspend=y,address=8000"2. oozie调试Mapper进行调度相应的Action...
2018-10-27 10:28:11
877
原创 Cloudera Manager 安装提示: jdk x86_64 2000:1.6.0_31-fcs 没有安装源
手动安装对应版本的jdk1.6即可! 下载jdk1.6地址: 下载地址
2018-09-09 00:39:37
754
原创 Cloudera Manager 安装提示: 卡在正在获取安装锁..
解决方案rm -rf /tmp/scm_prepare_node.*rm -rf /tmp/.scm_prepare_node.lock
2018-09-09 00:31:14
1826
原创 Clouder-Manager安装 JDBC driver cannot be found. Unable to find the JDBC database jar on host : slave1
解决方案 1. 将 mysql-connector-java-5.1.30-bin.jar放置在/usr/share/java 2. 务必将包重命名mysql-connector-java.jar
2018-09-04 23:44:41
2108
原创 Linux:解决虚拟机可以ping通,但是不能SSH远程登录的问题
问题分析首先,Linux可以互相ping通,说明Linux的网络配置没有问题,那么就专注解决SSH的问题。可能原因Linux防火墙没有关闭,导致SSH连接失败(关闭防火墙)LinuxSSH服务没有启动,查看是否启动SSH服务SSH服务启动后,仍然连接不上,需要确认是否是SSH服务得端口问题,核对连接端口( /etc/ssh/sshd_config)...
2018-09-04 12:02:02
17323
原创 Hadoop Yarn RM启动失败提示:transport error 202: bind failed:地址已占用
问题原因集群开启了远程Debug,当这个端口被占用时,出现此问题导致RM启动失败主要启动参数transport=dt_socket,server=y,suspend=n,address=*
2018-09-04 11:54:37
1011
原创 CDH 版本下载库
CDH 版本下载库https://www.cloudera.com/documentation/enterprise/release-notes/topics/cdh_vd_cdh_package_tarball_57.html
2018-09-03 15:43:21
2613
原创 Spark DataFrame:value $ is not a member of StringContext df.select($"name", $"age" + 1).show()
错误信息Error:(29, 15) value $ is not a member of StringContext df.select($"name", $"age" + 1).show()解决方案··· //在创建SparkSession之后 import sparkSession.implicits._ ···...
2018-08-31 14:13:42
3659
原创 Can't connect to X11 window server using 'localhost:12.0' as the valu e of the DISPLAY variable.
错误描述at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65) at sun.awt.X11GraphicsEnvironment$1.run(...
2018-08-23 16:24:12
1854
原创 oozie on spark2:Failing Oozie Launcher, main() threw exception, null
问题详情iling Oozie Launcher, Main class [org.apache.oozie.action.hadoop.SparkMain], main() threw exception, nulljava.lang.NullPointerException at scala.collection.mutable.ArrayOps$ofRef$.newBu...
2018-08-22 09:12:22
996
原创 oozie on spark2:java.lang.IllegalArgumentException: Attempt to add jar multiple times to the distrib
错误信息详情2018-08-20 19:55:03,088 [uber-SubtaskRunner] ERROR org.apache.spark.SparkContext - Error initializing SparkContext.java.lang.IllegalArgumentException: Attempt to add (hdfs://hdh116:8020/us...
2018-08-22 09:07:12
2067
转载 oozie on spark2:基于Yarn运行Spark2时出现的错误说明(scala does not exist; make sure Spark is built.)
Oozie adds all of the jars in the Oozie Spark sharelib to the DistributedCache such that all jars will be present in the current working directory of the YARN container (as well as in the container cl...
2018-08-21 18:41:34
3348
1
原创 oozie on spark2:发布oozie任务时出现错误
错误信息variable [spark] cannot be resolved解决方案将变量名中不包含特殊字符
2018-08-21 09:38:25
621
原创 oozie on spark2:部署Oozie4.3.0出现部署错误
错误详情Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/Filter at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java...
2018-08-21 09:36:52
312
原创 oozie on spark2:运行Oozie中自带的Yarn出现问题
运行Oozie中自带的Yarn出现问题:Error: Could not load YARN classes. This copy of Spark may not have been compiled with YARN support.Run with --help for usage help or --verbose for debug outputIntercepting...
2018-08-21 09:35:41
1890
原创 ZK-节点信息说明
节点存储内容说明null(节点中保存的数据信息)cZxid = 0x100000052(创建节点的事务ID)ctime = Fri Jun 22 17:50:30 CST 2018(节点创建时间)mZxid = 0x100000052(最后一次更新节点的事务ID)mtime = Fri Jun 22 17:50:30 CST 2018(节点更新时间)pZxid = 0x10000...
2018-08-11 14:20:14
1675
ISO-2016-SQL.zip
2021-11-16
hadoop-2.7.0-winutils.zip
2018-04-11
linux Shell 得到当前路径的问题
2016-11-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人