- 博客(126)
- 收藏
- 关注
原创 hbase请求耗时排查
查看hbase监控读请求量几十万,而在hbase master ui上请求量只有几千,分配也不均衡大部分分布在hbase:meta所在服务器上,查看应用请求错误日志,发现错误堆栈是在做scan,抛出异常代码为判断表是否存在tableExists。hbase查询数据是先要查询hbase:meta表的获取数据所在regionserver 和region信息,一般hbase client创建连接几个请求下来hbase:meta都会缓存到本地不会频繁的去scan hbase:meta。
2023-03-03 09:55:15 481
原创 hive添加表字段失败
alter语句在hive metastore中执行,在hive metastore 搜索error日志,发现报栈溢出java.lang.StackOverflowError.... ,StackOverflow 这个问题一般是程序里可能是有死循环或递归调用所产生的,或递归太深,在SQLText类中的toSQL()方法报出的,这个方法本身就是个递归方法。alter.....add columns 后面加了几十个字段,将字段一个个添加解决。Unable to alter table. null 错误日志。
2022-09-24 11:00:34 750
原创 flink sql开发平台
flink在实时计算方面越来越受欢迎,为了降低开发难度成本很多公司开始研发flink开发平台,业务开发只需写sql就行。flink ververica公司开源了flink-sql-gateway,flink-jdbc-driver 两个项目,使flink开发可以像mr一样写sql。不过这两个项目现在都没更新了,flink官方打算在1.16中支持 flink jdbc。还可以基于zeppelin flink sdk去开发。我基于flink-sql-gateway开发了个简易的flink sql开发平台。...
2022-08-31 17:55:28 1306 2
原创 Hadoop Datanode频繁重启
于是出差客户行,查看这两台datanode的日志,发现没有啥错误日志,除了频繁gc,还出现了大量slow 日志,怀疑网络,磁盘问题,监控没有发现异常,也没发现其它异常。想了下是不是它本身就是内存不足呢,于是查看datanode上的数据块分布,发现新增的这两台服务器上的数据块是其它节点的4倍,datanode频繁重启原因找到了,就是块太多内存不够,调大内存后(调大到了几十个G,100w个块1G)datanode就没出现过重启,服务恢复正常。...
2022-08-06 21:39:44 804
原创 cdh5 hive on tez
下载tez源码编译,0.8支持hadoop2.6+,0.9支持hadoop2.7+,cdh5.x使用hadoop2.6这里下载tez-0.8.5Apache Downloadstar -zxvf tez-0.8.5.tar.gz 安装编译环境2.1安装JDK1.82.2安装Maven3下载安装包:apache-maven-3.5.4-bin.tar.gztar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local/software/m...
2022-04-08 13:47:15 235
原创 k8s介绍
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。k8s能减少运维开发工作量,节省资源。主要功能:自我修复:一旦某一个容器崩溃,能够迅速启动新的容器 弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整 服务发现:服务可以通过自动发现的形式找到它所依赖的服务 负载均衡:如果一个服务起动了多个容器,能够自动实现请求的负载均衡 版本回退:如果发现新发布的程序版本有问题,可以立即回退到原来的版本 存储编排:可以根据容器自...
2022-04-02 13:34:58 2262
原创 cdh6启用Capacity Scheduler
cdh默认都是使用FairScheduler调度,cdp后改为Capacity Scheduler。Capacity Scheduler支持标签调度,可以将不同类型任务调度到不同物理服务器上,进行隔离。1.登录cm管理控制台,选择CapacityScheduler2. 在“容量调度程序配置高级配置代码段(安全阀)”配置队列xml配置如下:<configuration><property><name>yarn.scheduler.capacit...
2021-11-08 17:21:40 1283
原创 CDH6.3.2 hue oozie bug 修复
升级到CDH6.3.2 发现hue中使用oozie有些问题,在运行页面无法直接点击查看日志。定位问题后,从github hue 源码中找到最新的代码,对比一下发现了差异。按照最新代码修改,重启后异常修复。修复方法:hue/apps/oozie/src/oozie/templates/dashboard/list_oozie_workflow_graph.mako第90行修改为:var actionName = actionId.toLowerCase().substr(actionId.l.
2021-11-05 16:53:40 358
原创 hadoop RPC详解(3)--hdfs rpc server代码分析
通过前面hadoop rpc demo我们可以看出主要代码是Server 类。通过Server 类的代码分析,我们看下整个服务端的执行过程。 1.通过Listener启动SocketServer服务监听连接请求:Listener(int port) throws IOException { address = new InetSocketAddress(bindAddress, port); // Create a new server socket and set...
2021-01-20 20:57:05 347
原创 hadoop RPC详解(2)--hdfs rpc client代码分析
理解了rpc实现原理就可以很容易看懂hadoop rpc。hadoop rpc类在hadoop-common包中的org.apache.hadoop.ipc下。我们看下使用hadoop rpc 编写的一个例子:package com.wf.hadoop.rpc;public interface ClientProtocol { long versionID = 1; String print(String messate);}package com.wf.hadoop...
2021-01-20 20:14:03 660
原创 hadoop RPC详解(1)--RPC基本原理
随着微服务,分布式应用兴起,RPC也成了面试中的高频问题。我们今天就来说说RPC的实现原理。 RPC是远程过程调用,服务间的通讯都是基于TCP/IP网络通讯协议进行。客户端组装请求数据,通过socket发送给服务端,服务端接收请求,调用本地方法执行,通过socket把结果写回客户端。RPC框架都是基于socket封装客户端,服务端,拆解包,序列化,反序列化等一系列操作,简化用户开发,让用户使用时就像本地方法调用一样。我们平常使用的dubbo,motan,spring could...
2021-01-19 19:59:42 466
原创 hive锁表
在工作中偶尔用户会反馈数据量不到但执行sql一直没结果,这时候可以排查下表是否被锁。表锁相关操作命令如下showlocks表名--查看表锁,showlocks表名partition(...)--查看分区锁,unlocktable表名;--解锁表unlocktable表名partition(dt='2014-04-01');--解锁某个分区...
2020-12-02 20:36:13 863
原创 atlas已存在表关联新表关系不创建
安装完atlas后执行create table xxas select xx 语句测试创建血缘关系图,语句中使用的表都是刚创建的血缘关系会创建出来,过几分钟再用同样的语句创建另一张表,查看atlas发现没有血缘关系,使用其它已存在的表同样出现这个问题。查看atlas日志发现后台报唯一约束异常,查看代码发现atlas 会缓存刚创建的表,超时就清掉缓存,缓存没有的表就认为是新表唯一的,构造关系数据写入janusgraph,就触发了janusgraph唯一性约束检查,写入失败。觉得这种程序应该有配置控制存...
2020-10-22 18:07:55 467 2
原创 开源机器学习平台tipdm
TipDM建模平台 tipdm开源的python机器学习建模平台,用户通过拖拉就可以实现模型开发。项目结构backend :为java后台服务代码frontedn :为vue js前端代码mock-oauth-server:为java认证服务代码主要分析backend后台服务代码,典型的java spring mvc web项目,项目结构如下:framework-common:公共代码,主要为工具类,spring相关公用类framework-model: 实体..
2020-10-19 19:54:15 3541 1
原创 flink读写hbase
开发flink读写hbase的程序时遇到总是连接本地localhost:2181 zookeeper的异常,demo如下:代码总明明配置了zookeeper地址,执行时却总连接本地,跟踪代码发现,其创建连接并没有使用该配置,而是默认读取类路径下的hbase-site.xml配置文件,所以添加hbase配置文件,运行正常。以下是平时flink测试时使用的依赖,供参考。<properties> <spark.version>2.2.0</spark.ve.
2020-07-16 14:35:24 1878
原创 sqoop error xxx is greater than xxx
sqoop导数失败,异常日志:java.io.IOException: 0.00149538554284945409038360094760876373868438891233028512477697236907921983118594701374880207023210232364363037049770355224609375 is greater than 0.001281757140...
2020-05-08 21:45:52 321 2
原创 flink1.10 提交java sql ddl程序异常
flink1.10对ddl这块支持比较完善,最近用java写了个ddl kafka的demo测试。在ide本地环境中执行没有问题,但将任务打包提交的flink 集群时提交就报错,无法执行,异常如下:看异常好像是ddl写错了,本地运行正常,说明没有问题。使用flink sql-client客户端测试报一样的错,flink lib下没有对应的包,将包放到lib下,使用sql-client执行...
2020-03-17 20:42:15 995 1
原创 hbase Could not seek StoreFileScanner[HFileScanner for reader异常
最近hbase查询出现异常,hbase监控都正常,异常如下:hbase(main):003:0> get 'w:t','xxxx'COLUMN CELL ...
2020-03-10 21:47:34 1858
原创 flink table 使用Kafka Connector处理复杂json
flink kafka connector处理复杂json字符串,直接上代码。StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); EnvironmentSettings bsSettings = EnvironmentSettings.newInsta...
2019-12-30 18:15:12 2012 2
原创 hive metastore server Failed to sync requested HMS notifications up to the event ID xxxxx
最近遇到hive执行create,drop table语句时出现延时其它语句正常,平时秒级现在都需要200s才完成。经过排查发现有个用户使用手机号做动态分区字段,导致一下有上百万分区写入,hive metastore server出现问题,线程数飙升至1k多,内存升高。将任务停止后线程数下降,内存下降恢复正常水平,但是create,drop table还是不正常耗时200s才执行完成。sen...
2019-12-20 09:00:18 1606
原创 flink table 使用Kafka Connector处理嵌套json
使用flink table api 连接kafka 处理json类型数据,单层json处理比较简单,官方或网上都有很多例子,处理嵌套的json数据没什么介绍。处理嵌套json数据主要是schema定义。 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(...
2019-12-17 18:19:16 2467 3
原创 flink 广播变量
使用过spark的人都知道广播变量这个概念。广播变量相当于一个共享变量,将一个小数据集复制分发到每个task,task直接从本地读取。flink中有两种广播变量,一种静态的广播变量,一种实时动态的广播变量。 静态广播变量示例: 使用场景如: 黑名单判断,将黑名单广播出去进行数据匹配。public class FlinkBroadcast2 { pub...
2019-11-05 18:31:24 2173 3
原创 flink异步IO
使用flink进行数据处理时,我们经常会需要跟外部系统交换,比如查询mysql。每一条数据都访问一次外部系统,等待响应,再往下执行,这种等待会占用很大一部分数据处理时间。为此flink提供了异步IO API,异步访问外部系统,并行处理,同时响应,节省访问等待时间。采用flink做实时数仓基本会使用异步io api去join维表。下面通过一个简单的demo介绍下异步IO API...
2019-11-05 18:31:08 463
原创 hue hive sql查询下载结果异常
hue hive sql查询下载结果出现如下异常,给官方提了个issues说后面的新版本修复了,看了下源码那段确实修改了。通过查看hue后台日志找到异常代码。我用的是cdh5.14.4解决方法,修改/opt/cloudera/parcels/CDH/lib/hue/desktop/core/src/desktop/lib/export_csvxls.py python文件如图:...
2019-10-30 09:05:58 818
原创 hive 异常-NPE org.apache.hadoop.hive.ql.exec.vector.expressions.CuckooSe.rehash
hive执行 sql 语句 select * from table where c in (....) 出现异常,异常日志如下: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row at...
2019-08-28 22:04:43 4063
原创 hue负载均衡
Hue是开源的大数据工作平台,集成了hive,impala,spark,hadoop,sentry ,oozie,hbase等常用大数据服务,基本能满足绝大部分公司的业务日常使用。作为公司对业务开放的开发平台必须稳定,高性能。我们使用haproxy作为负载均衡器,其默认就支持tcp,http协议负载,其它服务使用haproxy 四层负载,统一负载引擎,方便维护管理。1. 前面已安装ha...
2019-08-19 18:32:06 1089
原创 cdh集群impala 负载均衡
impala是MPP查询引擎,可以实现秒级响应,并发性能受机器数量,内存影响。impala 与hive共享元数据,hive表可以无缝切换到impala查询(impala不支持hive json, 3.1版本开始支持orc文件格式,建议还是使用parquet文件格式)。 impala 启用负载均衡: 1. 安装haproxy yum insta...
2019-08-15 09:09:22 1820
原创 cdh集群hive 启用HA
hive 在离线分析,数仓中是最常用的工具,业务人员不需要熟悉mr,编程基础就可以通过sql操作数据。hive 的性能及稳定性在生产中必须保证。hive可以通过HAPROXY进行多节点负载均衡来达到目的。 hive Metastore 开启HA 1. 进入hive服务配置, 搜索DBTokenStore,选择 org.apache.hadoop.hive.thrif...
2019-08-12 22:06:58 2061
原创 cdh集群oozie启用HA
cdh集群oozie调度器通过 cloudera manager 启用HA。oozie启用HA,需要先安装负载均衡器,我使用的是haproxy。1.安装harpoxyyum install -y haproxy2. 在oozie 操作界面选择启用HA3.选择需要安装oozie角色实例的节点4.配置负载均衡器地址,可以在装完后再配置5. 按照向导执行完成6....
2019-08-09 21:45:26 1337 1
原创 cdh集群sentry 启用HA
cdh集群sentry主用用来进行hive数据权限认证,sentry服务失败后会影响访问hive库的任务。sentry ha的功能是在cdh5.13之后才有的。开启sentry HA 1. 进入sentry 操作,选择启用HA 2. 选择主机安装另一个sentry实例3.根据向导,执行完成...
2019-08-09 21:45:04 782 1
原创 cdh集群resource manager启用 HA
resource manager关系整个集群的任务运行,在生产上必须保证高可靠。resource manager和hdfs namenode的一样自身实现了HA,只需开启,出现异常时会自动切换到正常的resourcemanger。通过cloudera manger管理界面启用resource manager HA。1. 在yarn界面操作,选择启用HA 2..选择另一个节点...
2019-08-09 21:44:54 1075
原创 cdh集群hdfs namenode HA
hdfs namenode的健康关系整个集群是否能正常运行,生产为了集群的高可用必须开启HA。社区版需要手动修改配置文件进行开启。使用cloudera manager只需在界面根据向导执行即可。操作步骤:1. 在hdfs - 操作 -选择启用HA2. 填写nameservice名称3.选择另外一台服务器安装namenode ,三个或5个节点安装journalnod...
2019-08-09 21:44:29 1160
原创 flink kafka自定义反序列化
flink kafka实时流计算时,通常会有将多个topic数据接入计算,而这时通常需要区分消息属于哪个topic进行针对处理。spark默认就将topic信息同kafka 消息一起提供出来了,flink 提供的SimpleStringSchema反序列化默认只将消息输出,topic信息没有,JSONKeyValueDeserializationSchema类提供了topic消息,要...
2019-08-01 21:26:07 5339 1
原创 hue shell执行impala shell
在hue shell中执行impala shell ,配置如下:impala.sh 脚本如下:#!/bin/bashimpala-shell -i 192.168.15.171:21000 -q "show tables;"运行报错如下:根据错误日志提示,impala shell脚本默认会在/home下设置工作目录,而/home没有权限。修改脚本:#!/bin...
2019-07-26 00:23:06 674
原创 spark streaming error -- java.lang.AbstractMethodError
spark streaming程序提交出现如下异常:java.lang.AbstractMethodError at org.apache.spark.internal.Logging$class.initializeLogIfNecessary(Logging.scala:99) at org.apache.spark.sql.kafka010.KafkaSourceProvider$...
2019-07-16 18:12:00 1191
原创 flink jdbc连接器
flink提供很多访问其他数据源的连接器,访问其他第三方数据源变得简单高效。下面就是flink提供的一些连接器,使用时只需引入需要的包。在使用flink处理数据后,我们经常会将结果写入数据库,供其它业务使用。 private static String driverClass = "com.mysql.jdbc.Driver"; private static...
2019-07-13 21:33:41 7532 3
原创 ssm项目大事务导致数据异常
在使用SSM框架时都会开启spring声明式事务,只需在方法上加上@Transaction,spring自动帮你管理事物提交回滚,非常简单方便。不注意也会带来意外的惊喜,大家开发时都在方法上加上事务注解,当一个方法需要调用其它事务方法,层层调用,形成一个大的处理逻辑方法,所有事务方法最终都加入第一个事务,这时处理逻辑中某事务方法又需要查询前面事务方法产生的数据时,问题就出现了。某次某项...
2019-07-09 22:28:17 152
原创 cdh集群安装--host配置问题导致agent失败
遇到几次有人在安装cdh的时候将hostname 配置成了带下划线 "_",而导致agent安装失败,无法启动agent ,/var/log下无异常日志。异常配置如下:192.168.1.1 cluster_01.example.com cluster_01host 采用全域名标准配置,不要使用大写和 "_"下划线示例:192.168.1.1 cluster-01.example....
2019-07-05 18:29:28 1308
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人