3 早点起床晒太阳

尚未进行身份认证

我其实不大懂,我只是官网的搬运工。

等级
TA的排名 20w+

parquet文件格式解析

参考资料:https://parquet.apache.org/documentation/latest/https://www.jianshu.com/p/47b39ae336d5前言Apache Parquet是Hadoop生态系统中任何项目均可使用的列式存储格式,由于OLAP场景下的数据大部分情况下都是批量导入,基本上不需要支持单条记录的增删改操作,而查询的时候大多数都是只使用部分列进行过滤、聚合,所以列式存储在这种场景下效率很高原理解析1、名词解释File:hdfs文件,必须包含该.

2020-05-29 15:10:44

logback配置文件的结构与解析

1、logback整体的日志结构包含1个元素,包含零个或多个元素,然后是零个或多个元素,然后是最多一个元素,如以下示例<configuration scan="true" scanPeriod="60 seconds" debug="false"> <appender> //xxxx </appender> <logger> //xxxx </logger>

2020-05-26 14:52:26

Logback的Filters详解

前言:并不是懂很多,只是官网的搬运工参考资料: http://logback.qos.ch/manual/filters.html概念讲解我们在讲之前需要了解几个概念DENY,NEUTRAL和ACCEPT这三个值是通过调用Filter的decide()方法的返回值。(如果需要实现自己的Filter,也是需要实现Filter的decide()方法的,这个一会说明).如果返回值为DENY,那么此日志将会被放弃并且不会被剩余的过滤器考虑。如果返回值为NEUTRAL,那么将会经过下一个过滤器。如果.

2020-05-25 16:48:40

连接池泄露问题解决

前言我们这边的项目的连接池使用的Hikari,连接连的是sparkThriftserver。但随着项目越来越大,发现用一阵子,连接就扩大到160甚至更多。解决问题1、排查连接情况我们使用netstat -nat | grep -i “10001” | wc -l来查看连接此端口的TCP连接情况。2、Hikari局限以及选用druid我们在调查连接泄露的问题时候出现了麻烦。项目过大,每个人都说自己的连接都关闭了,排查代码显得很艰难。Hikari虽然号称最快,也最轻量,但是对于连接泄露这块显

2020-05-21 16:29:02

spark提交内存分配机制

参考资料 https://zhuanlan.zhihu.com/p/137471443前言众所周知,我们一直在用spark-submit 来提交任务,在yarn 见面的Allocated Memory可以看到yarn总共的占用内存。以及启动的Containers。那具体的内存占用情况却没有显示那么清楚,今天来具体分析一下这一块。1、基本概念1、spark相关1、spark.driver.memory默认值1g。driver进程的on-heap内存,driver进程就是sparkconte.

2020-05-18 17:25:09

sparkThriftserver 长时间运行HDFS_DELEGATION_TOKEN失效问题

参考资料:https://github.com/apache/spark/pull/91681、背景sparkThriftserver 运行一天后,有人反馈查询报错,我自己测试了下,确实如此org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken): token (HDFS_DELEGATION_TOKEN token 93611 for hadoop) ca.

2020-05-18 14:33:08

git stash的应用场景

前言自己用git 其实不多,在这里记录下git stash场景我现在正在修改一个小功能,还没有修改完,领导让我在别的分支先把一个bug修改了,然后这时候我这边新的代码需要保存下,因为我后续还需要开发,解决发现可以使用git stash 来解决这个问题git stash命令可以保存和恢复进度。把暂存区和工作区的改动保存起来。执行完这个命令后,在运行git status命令,就会发现当前是一个干净的工作区,没有任何改动。不管是切换分支,还是在当前分支开发,开发完成后,然后再恢复工作区的代码就好了。

2020-05-15 10:26:44

漫谈Java 线程池ThreadPoolExecutor

参考资料https://www.cnblogs.com/dolphin0520/p/3932921.htmlhttps://www.jianshu.com/p/896b8e18501b简介Java线程池的核心类为ThreadPoolExecutor线程池中的FixedThreadPool、SingleThreadExecutor、CachedThreadPool、ScheduledThreadPool底层均是调用了ThreadPoolExecutor的构造方法初始化的线程池线程池与连接池的原.

2020-05-14 17:02:32

JDBC读取mysql的数据的效率问题

背景这边我们做了一个产品的小功能,把mysql的数据拉取到hdfs上来代码实现代码很简单,就是简单的JDBClong start = System.currentTimeMillis();PreparedStatement preparedStatement = connection.prepareStatement("select * from ceshi");ResultSet resultSet = preparedStatement.executeQuery();ResultSetMe

2020-05-14 14:34:55

spark的csv读取落地相关

前言spark 在读取和落地CSV的时候 也是一门学问,一面有很多的注意细节以及小技巧可以使用。参考资料:https://github.com/databricks/spark-csv (这里涵盖了csv的option参数)1、读取2、落地1、落地的时候为null的会落成""我在我们做BI 这边也有这种场景,就是dataset中为null的数据然后落地会为"".比如一个dataset show 出来的数据时3,null,5如果 .csv 直接落地的话 落地结果时3,"",5。

2020-05-09 17:42:00

hive UDF注册以及编写

背景公司有个业务需求,需要对一些算子进行实现,写UDF,刚开始打算用sql 实现,但是考虑到算子可能嵌套等复杂情况,遂用udf 去做。UDF编写1、UDF数据类型这里先讲一下UDF的数据类型,刚开始我写UDF的时候使用java 中的bigDecimal 等数据类型发现是不行的。然后我开始找hive 相关的数据类型。发现网上写的也少,然后我在想hive内置的函数为什么支持decimal,long的数据类型呢。我就在github中的hive的源码里全局查找hive的内置函数,为了方便查找,我找了个复杂一

2020-05-09 15:04:17

JVM进程启动的内存分配问题

1、分配机制JVM分为client 端和server端,默认情况下32位的hotspot都是client模式;64位的默认都是server模式。(所以我们现在基本都是64位模式进行的)参考资料:https://blog.csdn.net/qq_26545305/article/details/70241939hotspot虚拟机的默认堆大小如果未指定,他们是根据服务器物理内存计算而来的cl...

2020-05-06 11:14:54

kerberos认证下hadoop的java应用程序超时分析

参考资料https://cloud.tencent.com/developer/article/1419270https://issues.apache.org/jira/browse/HADOOP-10786背景我们的云平台项目涉及到了没有认证以及包括kerberos认证的情况。但是在认证后一天后老是爆Failed to find any Kerberos tgt相关的kerber...

2020-04-29 20:05:12

SpingBoot项目下Spark在IDEA中进行本地测试

背景我们在开发场景中肯定是在本地进行调试,然后打包部署到服务器进行运行,频繁打包测试即没有效率也不实际下面的场景以我在本地使用spark local模式访问hive为例相关代码配置1、代码 val session = SparkSession.builder().master("local").enableHiveSupport().getOrCreate() val co...

2020-04-29 10:49:08

HttpServletResponse和HttpServletRequest解析

1、背景最近有这么一个诉求,我在A服务器中的java调用执行一个python文件,并将其返回值返回给B服务器的客户端。当时在想A服务器暴露一个接口,然后使用runtime API调用即可,但是返回值这块我却有点苦恼。我的本意是直接返回IO流,因为生成的数据可大可小,无规律,但是我发现这样是不可以的。[org.springframework.http.converter.HttpMessageN...

2020-04-22 16:02:11

sparkThriftserver driver端数据过大挂掉的问题spark.sql.thriftServer.incrementalCollects

参考资料:https://github.com/apache/spark/pull/22219https://forums.databricks.com/questions/344/how-does-the-jdbc-odbc-thrift-server-stream-query.html背景我们是使用sparkThriftserver作为BI的底层作为查询,当我们的平台多人操作查询的时...

2020-04-17 17:22:39

hive的serde解析与应用

今天把serde讲解和相关应用整理一下,参考文档如下参考的官方文档:https://cwiki.apache.org/confluence/display/Hive/DeveloperGuide#DeveloperGuide-HiveSerDehttps://cwiki.apache.org/confluence/display/Hive/SerDe1、serde概述SerDe是Se...

2020-04-17 14:52:31

hiveserver2 的HA 配置

1、作用如果只是使用一台服务来启动hiveserver2,那么如果hiveserver2挂掉便不能提供jdbc的支持。hive 支持hiveserver2 HA,用于进行负载均衡和高可用Hive从0.14开始,使用Zookeeper实现了HiveServer2的HA功能,Client端可以通过指定一个nameSpace来连接HiveServer2,而不是指定某一个host和port。2、具...

2020-04-16 11:06:23

hive JDBC的url的不同写法

老是和这块东西接触,今天看看官网并结合自己理解总结下这一块官网地址:https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-JDBCurl的写法1、url中参数的拼接jdbc:hive2://:/dbName;initFile=;sess_var_list?hive_...

2020-04-15 20:42:06

JPS相关的用法

作用JPS是用来列出目标系统(windows或者linux)的JVM的相关信息。该命令仅限于展示其具有访问权限的jvm上的信息。jps命令生成的jvm列表可以被授予的权限限制,该命令只列出该原则所针对的jvm由特定于操作系统的访问控制机制确定的访问权限。jps命令为每个检测到的JVM报告本地JVM标识符(lvmid)目标系统(windows或者linux)。这里lvmid 可以理解为就是P...

2020-04-13 19:56:22

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。