- 博客(31)
- 收藏
- 关注

原创 zeppelin在CDH上的安装及使用 -- 填坑
zeppelin可以跟spark、flink、kylin等直接访问,将结果可视化显示。在安装zeppelin的过程中碰到各种问题,跟陈大神一起研究了好几天,终于把问题解决。我们安装zeppelin的目的主要是用spark快速的验证kylin的统计的可视化结果是否跟spark直接计算的可视化结果一致。刚开始选择下载二进制文件(zeppelin-0.7.3-bin-all.tgz)直接安装,很简单,直...
2018-04-23 15:03:21
4521
1

原创 开源BI分析工具 -- superset安装
本文章主要介绍superset的安装,用于连接到kylin数据库,做可视化数据分析用。superset连接kylin的案例分析将在下篇博客中介绍。本人kylin安装节点是 6、7、8superset安装节点为8,8的资源利用率最少,安装时为最新版,下面参考文档中有些配置已经过时,因此写下此博客供最新版本的安装。OS: centos7Superset版本:0.22.1Python版本:2.7 vir...
2018-04-11 09:43:35
3003

原创 kylin填坑记--创建cube时遇到的两个坑
创建cube时,最容易出错的地方就是在 Build Dimension Dictionary这步,也就是第四步。如下图这步,kylin后台会做很多关于字段的检查。遇到的两个坑,正是发生在这步,因为数据本身有这样的问题:第一,维度表中类型为longtext的字段description(存的描述信息,很长),其长度超出Short.MAX_VALUE(short值得范围:-32768-32767)。尽管...
2018-04-10 13:18:47
7330
原创 MySql面试题
说明:这个文章只适用于我自己,针对自己的不足做的整理,并不适用大众,后期如果有时间整理一个完整的面试集。1. 数据库索引失效了怎么办?参考答案可以采用以下7种方式,来避免索引失效:使用组合索引时,需要遵循“最左前缀”原则;不在索引列上做任何操作,例如计算、函数、类型转换,会导致索引失效而转向全表扫描;尽量使用覆盖索引(之访问索引列的查询),减少 select * 覆盖索引能减少回表次数;MySQL在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描;LIKE以通配符开
2022-05-04 14:10:24
736
原创 java多线程面试题
1. 创建线程有哪几种方式?参考答案创建线程有三种方式,分别是继承Thread类、实现Runnable接口、实现Callable接口。通过继承Thread类来创建并启动线程的步骤如下:定义Thread类的子类,并重写该类的run()方法,该run()方法将作为线程执行体。创建Thread子类的实例,即创建了线程对象。调用线程对象的start()方法来启动该线程。通过实现Runnable接口来创建并启动线程的步骤如下:定义Runnable接口的实现类,并实现该接口的run()方法
2022-05-04 00:07:29
392
原创 MQ面试题
MQ会丢失消息吗,怎么保证不丢消息1、哪些环节会有丢消息的可能?其中,1,2,4三个场景都是跨网络的,而跨网络就肯定会有丢消息的可能。然后关于3这个环节,通常MQ存盘时都会先写入操作系统的缓存page cache中,然后再由操作系统异步的将消息写入硬盘。这个中间有个时间差,就可能会造成消息丢失。如果服务挂了,缓存中还没有来 得及写入硬盘的消息就会丢失。2、RocketMQ消息零丢失方案1》 生产者使用事务消息机制保证消息零丢失1、为什么要发送个half消息?有什么用?这个half消息是在订单
2022-05-03 18:06:58
621
转载 AQS是什么?都是怎么用的?
前言在Java面试的时候,多线程相关的知识是躲不掉的,肯定会被问。我就被问到了AQS的知识,就直接了当的问,AQS知道是什么吧,来讲讲它是怎么实现的,以及哪些地方用到了它。当时自己确实没有讲好,所以这次来总结一下这个知识点。什么是AQSAQS全称是AbstractQueuedSynchronizer,形如其名,抽象队列同步器。 AQS定义了两种资源共享模式:独占式,每次只能有一个线程持有锁,例如ReentrantLock实现的就是独占式的锁资源。共享式,允许多个线程同时获取锁,并发访问共享资源,
2022-05-03 11:22:53
833
原创 网络http面试题
http协议https协议http和https区别HTTPS协议中间人攻击是什么?客户端和服务器之间的桥梁、双向获取并且篡改信息标准回答:中间人攻击是指攻击者通过与客户端和客户端的目标服务器同时建立连接,作为客户端和服务器的桥梁,处理双方的数据,整个会话期间的内容几乎是完全被攻击者控制的。攻击者可以拦截双方的会话并且插入新的数据内容。加分回答中间人攻击的过程:服务器向客户端发送公钥。攻击者截获公钥,保留在自己手上。然后攻击者自己生成一个伪造的公钥,发给客户端。客户端收到伪造的公钥后,
2022-05-03 10:40:46
154
原创 jvm面试题
JVM内存有哪些区域1. 弱引用和软引用有什么区别两者都可以提高GC的效率,但是弱引用直到失去最后一个强引用才会被回收。而软引用虽然不能阻止被回收,但可以维持到内存不足时,也就是下次FullGC时。...
2022-05-02 14:15:06
191
转载 spring面试题
1.spring是什么Spring是为Java应用程序提供一套基础性服务的轻量级框架,通过IoC容器注入和AOP切面编程来简化企业应用程序的开发,它使得开发者只需要关心业务需求,通用性能力交给spring框架来做。主要包括以下七个模块:Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);Spring Core:核心类库,所有功能都依赖于该类库,提供IOC和DI服务;Spring AOP:AOP服务;Spring Web:提供了基本的面向Web的综合
2022-05-02 13:08:03
195
原创 redis面试题
1. redis有哪些数据结构常用有5种:string,list,set,map,zset2. redis过期策略和内存淘汰redis有三种过期策略,8种内存淘汰机制2.1 过期策略有三种过期策略,也可以说是主动回收方式定时删除:有定时器的存在会消耗CPU,降低Redis性能惰性删除:如果访问不到的key,则永远不会删除定期删除:随机选择,保证过期的key在一定的比例,但是不太好控制。所以生产中Redis采用的策略是惰性删除加定期删除的组合方式。2.2 内存淘汰当现有内存大于设置的ma
2022-04-23 18:27:26
676
原创 分布式事务解决方案
分布式事务产生的背景跨库事务:一个本地事务,涉及多个库实例的处理分库分表:分库之后,导致一个SQL被映射到多个库去执行微服务化:一个本地事务,设计到多个跨服务的远程调用DTP事务模型:X/Open DTP(X/Open Distributed Transaction Processing Reference Model) 是X/Open 这个组织定义的一套分布式事务的标准,也就是了定义了规范和API接口,由厂商进行具体的实现。有以下三个角色组成:AP:Application,我们的应用程序
2022-04-23 10:21:57
1927
原创 数据库和redis缓存一致性
如果在高并发修改的场景,会存在redis和MySQL数据不同步的问题。比如,修改某个商品的价格,第一种情况:可以先把缓存删掉,然后修改MySQL商品价格。然鹅,MySQL商品价格还没来得及修改,另外一个读商品的请求过来了,redis没读到,就会读MySQL的老数据,并加载到redis。过了一会,第一个请求把MySQL的商品价格修改成功了,就会导致两边数据不一致的情况。第二种情况:先修改MySQL商品价格,再删缓存,MySQL价格修改了,缓存删除失败了,就会导致不一致的情况。解决方案:延时双删
2022-04-22 17:05:01
1446
原创 mac 10.14安装MySql-python找不到my_config.h文件
这个bug必须记录下,坑了我一两天时间去解决,网上到目前没找到任何可用的方案,对应的版本:mysql 8.0.19osx 10.14.3常规操作是这样的:brew install mysqlbrew unlink mysqlbrew install mysql-connector-csed -i -e 's/libs="$libs -l "/libs="$libs -lmysqlcl...
2020-03-10 18:50:06
2373
7
原创 springboot 怎么保证数据读写一致性
springboot 怎么保证数据读写一致性,springboot 怎么保证数据读写一致性,springboot 怎么保证数据读写一致性,springboot 怎么保证数据读写一致性 , 除了tranctional注解,还有什么方式吗...
2019-08-27 18:21:45
3254
原创 关于spring data jpa使用时遇到的一些坑
jpa在使用时,可以分为好多种,query注解查询,entityManager,还有namedJdbcTemplate,那么平时使用最多的是前两种,而query注解查询用到最多,query能让自己的工作得到最简化。query还有带 nativeQuery = true的查询方式,这种原生的SQL写法,但是缺点有很多,返回的结果只能是Object,或者map结构的...
2019-08-21 20:37:52
1363
原创 一个普通类无法使用@Autowired注入一个bean到容器中的核心原理
一个普通类无法使用@Autowired注入一个bean到容器中的核心原理
2019-06-12 11:01:55
3403
3
原创 关于elasticsearch衰减函数的使用及boost_mode计分规则
需求:搜索帖子文本时,按照命中分数倒排的同时,还要将最近的帖子放到前面
2019-06-05 18:05:28
1331
原创 康拓算法 -- 一个数组的n种顺序用一个long值来表示,可以逆推
康拓算法网上可以找到各种各样的实现,和逆运算,但是,当数组长度n很大时,要算n!,运算量会很大。所以,希望在全排序中,只取出来部分排序,满足业务需要即可,但要求运算快速。比如现在有一个长度为200的数组,那么全排序的组合情况可达200!种情况,这远远超过计算机的整数值范围了,所以希望有一种算法,能从200!种情况中只选部分结果,同时要求结果的排序是随机的,不仅仅固定在一个小范围值内。...
2019-06-01 10:20:06
1021
原创 kylin使用Restful API 创建 cube和model
公司最近需要自动化创建kylin cube和model,便不得不放弃使用web端的方式,而用REST API的方式,找了各种方案,终于找到了可行的。大家可能会问道,代码中定义的cubeDescData 字符串是从哪取的,你可以在web端在创建model和cube时按下F12,查看rest的request请求json串,然后,需要稍微改一下变成我下面代码中这种即可。数据使用的是kylin官方自带的s...
2018-05-03 15:19:31
2661
2
原创 kylin REST API的使用
这篇文章将用sales的数据,用REST API的方式来使用kylin。1. 查询我是微软雅黑 size=6 color=gray1.1 认证1.2 查询1.3 列出可查询表二、cube操作2.1 列出所有cube2.2 获取cube信息2.3 获取cube数据模型2.4 创建cube2.5 禁用cube2.6 激活cube2.7 清空cube三、...
2018-04-28 10:17:04
1038
原创 zeppelin安装maven报错
安装zeppelin时,报错,git没有安装。git安装后将其加入环境变量后,问题解决。[INFO] Building Zeppelin: web Application 0.7.4-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO] [INFO] --- mav...
2018-04-19 21:33:45
1137
原创 maven下载包失败,手动下载塞到maven依赖库中
安装zeppelin,官方有编译好的二进制安装文件,但是编译好的文件里面好多包的版本跟我自己环境下的平台版本不一样,因此不得不手工下载源码,选择合适版本编译。maven编译需要根据pom文件中的依赖库,来下载很多包,往往遇到连接超时的问题。下面遇到的是yarn-v0.18.1.tar.gz这个包下载不了,重新编译了好几次,还是不行。[INFO] Zeppelin ....................
2018-04-19 17:00:04
5124
原创 查看spark任务日志的几种方式
spark运行的任务往往通过web来查看,但是,当运行的是sparkStreaming任务时,日志往往会很大,web查看并不方便,因此需要定位到服务器上去看。下面将分别介绍两种查看driver端和executor端日志的方式。一、web端日志的查看:下面是四个yarn调度spark任务的web总界面:点击第一个任务:application_1509845442132_3866 进入下面界...
2018-04-13 17:48:08
39037
4
原创 superset连接kylin并附带使用案例
本文章主要介绍下superset连接kylin,最后再介绍下使用案例,superset官方文档没有任何介绍连接到kylin的文档,但GitHub中有多个kylin与superset的结合的开源插件,最终找到一款一直有人在维护更新的工具--kylinpy,另外一款是pykylin,坑太多没人维护,不推荐。。1. 安装kylinpy插件,连接kylin进入linux python虚拟环境:在什么环境下...
2018-04-11 11:55:25
3515
1
原创 kylin的使用 -- 创建cube
本文章将介绍如何创建kylin的cube,首先准备hive的表及数据。在创建cube之前先介绍下kylin的几个概念:project、model、cube,刚开始接触的时候,这些概念很容易弄混。1. project,项目名称,经常以hive的数据库的名字命名,下面可以有很多model。2. model,hive数据库下某些表之间的关联关系,即数据模型,也可以是这个数据库下所有表之间的关联关系。3....
2018-04-04 16:50:21
1663
原创 向hive中加载或添加数据的三种方式
每次博客尽量以一个项目的标准来写,做到大家可以动手操作实践。首先准备数据源:学生成绩txt文件,共七个字段(ID,name,Chinese,English,math,school,class)[root@xxx tmp]# hdfs dfs -cat /tmp/score.txt 0001,zhangsan,99,98,100,school1,class10002,lisi,...
2018-04-03 18:03:19
86806
1
原创 spark中处理dataframe往往遇到”...cannot be cast to ...”这种数据不匹配的问题
spark处理dataframe数据时,往往遇到"...cannot be cast to ..."这种数据不匹配的问题,主要是因为我们代码中spark指定的数据类型和数据源类型不一致。这里以MySQL为数据源为例。一、读取数据格式匹配MySQL表的创建语句指定的数据类型有decimal、varchar、datetime等。CREATE TABLE `customfieldvalue` (...
2018-04-03 11:50:16
38218
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人