- 博客(339)
- 资源 (12)
- 收藏
- 关注
原创 sparksql和hive读取结果不一致
sparksql读不到表内容,但是hive却是可以,后来排查到是因为hive表有多级目录,所以需要配置下sparksql参数:spark.sql.hive.convertMetastoreParquet=falsemapred.input.dir.recursive=true如果是hive可配置mapreduce.input.fileinputformat.input.dir.recursive=truehive.mapred.supports.subdirectories=true
2021-11-04 11:56:58
1456
转载 EMR指定私有IP新建机器
从上一篇对Hive metastore表结构的简要分析中,我再根据数据设计的实体对象,再进行整个代码结构的总结。那么我们先打开metadata的目录,其目录结构: 可以看到,整个hivemeta的目录包含metastore(客户端与服务端调用逻辑)、events(事件目录包含table生命周期中的检查、权限认证等listener实现)、hooks(这里的hooks仅包含了jdo conne...
2021-08-03 14:37:51
470
转载 元数据管理|Hive Hooks和Metastore监听器介绍
元数据管理是数据仓库的核心,它不仅定义了数据仓库有什么,还指明了数据仓库中数据的内容和位置,刻画了数据的提取和转换规则,存储了与数据仓库主题有关的各种商业信息。本文主要介绍Hive Hook和MetaStore Listener,使用这些功能可以进行自动的元数据管理。通过本文你可以了解到:元数据管理 Hive Hooks 和 Metastore Listeners Hive Hooks基本使用 Metastore Listeners基本使用元数据管理元数据定义按照传统的定义,元数据( M
2021-06-08 15:18:30
1052
1
转载 Hive on Tez 中 Map 任务的数量计算
Hive on Tez Mapper数量计算在Hive中执行一个query时,我们可以发现Hive的执行引擎在使用Tez与MR时,两者生成mapper数量差异较大。主要原因在于Tez中对inputSplit做了grouping操作,将多个inputSplit组合成更少的groups,然后为每个group生成一个mapper任务,而不是为每个inputSplit生成一个mapper任务。下面我们通过日志分析一下这中间的整个过程。1.MR模式在...
2021-05-07 10:03:31
1568
转载 【开发技能】研发线上事故总结!
一、前言你的代码出过事故吗?老人言:常在河边走哪有不湿鞋。只要你在做着编程开发的工作就一定会遇到事故,或大或小而已。当然可能有一部分研发同学,在相对传统的行业或者做着用户体量较小的业务等,很难遇到让人出名的事故,多数都是一些线上的小bug,修复了也就没人问了。但如果你在较大型的互联网公司,那么你负责的开发的系统功能,可能面对的就是成百万、上千万级别用户体量。哪怕你有一点小bug也会被迅速放大,造成大批量的客诉以及更严重的资金损失风险。就像: 拼多多“薅羊毛”事件,朋友圈疯狂转发。
2021-04-06 13:50:48
1035
原创 Exception in thread “main“ com.amazonaws.services.s3.model.AmazonS3Exception: Status Code: 400
1.确保代码里有对应的spark set 认证信息spark.sparkContext.hadoopConfiguration.set("fs.s3a.endpoint", "your endpoint")spark.sparkContext.hadoopConfiguration.set("fs.s3a.access.key", "your accessKeyId")spark.sparkContext.hadoopConfiguration.set("fs.s3a.secret.key",
2021-04-01 22:32:24
2322
原创 spark-sql查询分区时会扫描全表的问题
背景同一个SQL在hive里执行正常,但是用sparksql执行异常,抛出如下错误:the operation is not valid for the object's storage class glacier原因在于,这个表是分区表,且设置了S3的存储自动生命周期,所以超过N天之前的数据就变成了glacier,无法直接用于检索。但是很好奇的是对于同样的hive语句是可以执行的,所以问题出在spark-sql,通过分析执行日志,发现spark-sql在执行where条件过滤的时候扫描了所有
2021-03-29 17:18:23
1956
转载 如何参与Github上的开源项目
以开源推消息送项目MPush为例Fork 开源项目到自己的账号 打开https://github.com/并登录自己的账号 打要参与的开源开项目主页: 比如 https://github.com/mpusher/mpush Fork该项目到自己的账户下(点击右上角的Fork按钮) 打开刚刚Fork的仓库主页(在自己的账号下面) clone 该仓库到本地,以我自己的账号ohun为例:clone git@github.com:ohun/mpush.git.
2021-03-02 22:22:48
411
转载 hiveServer2、metastore以及client解读
hive服务架构图:Metastore通过Thrift API 对外提供访问,生态里的工具如:pig, MR, impala, presto, SparkSQL, NIFI 都可以通过Thrift接口访问Metastore, Metastore接口格式为:thrift://xxxxxxx:9083HiveServer2对外提供JDBC/ODBC接口,供前端工具(DBeavor, SQL Squirrel, SQL Developer, DBVis)使用, 编程语言如:Python, Scala,
2021-02-26 18:16:24
1328
转载 滴滴大数据安全权限实践
在滴滴,数据是非常重要的资产,基于数据的数仓建设,数据分析、数据挖掘、数据科学等构建了滴滴的数据体系,支撑着滴滴的业务快速发展。在这个背景下,如何保障用户获取数据的易用性的同时可以更加安全,是对我们大数据平台提出来的非常大的挑战,本文将介绍下我们在面对挑战下,在大数据权限安全建设上实践。1.用户认证 - 自研账号密码机制提到安全,首先要面对的就是用户认证,Hadoop 社区版本是没有安全认证的,因此只要随意 export HADOOP_USER_NAME=Anyone,就可以伪装为任意用户.
2021-02-18 23:08:09
703
原创 flink 任务在yarn里设置用户名
spark 任务可以通过--proxy-user xxxx能设置代理用户执行任务,在yarn 的application ui 里的username显示为xxxxflink 任务可以通过在执行flink run之前exportHADOOP_USER_NAME=xxxx 或者执行命令加上参数-yD env.java.opts="-DHADOOP_USER_NAME=xxxx"...
2021-01-16 16:31:49
3671
原创 beeline 连hive报Unexpected end of file when reading from HS2 server错误
错误信息:Unexpected end of file when reading from HS2 server. The root cause might be too many concurrent connections. Please ask the administrator to check the number of active connections, and adjust hive.server2.thrift.max.worker.threads if applicable.原
2021-01-11 22:49:29
5063
转载 HiveServer2 获取日志
讨论的版本为: HiveServer2 版本 : 2.3.1 + tez由于最近在弄WEBIDE,其中在连接Hiveserver2的时候,在Hiveserver2的获取日志的方式,发现了两个坑,找了许多文献,也没有找到解决的办法。其中一个坑,有一个同事在看到hive的BUG反馈中,看到一些类似情况,解决的。而另外一个坑,是走了很多很多崎岖的路途,一步一步的发现出来的解决办法。1.HIVESERVER 2 没有日志在其他配置(启动日志配置,log4j,等等)都没有别的问题的时候,依..
2021-01-11 16:04:25
3019
2
转载 ClickHouse集群安装
172.16.120.100 ck_server_100(shard1)172.16.120.101 ck_server_101(shard1) zk_server_101172.16.120.102 ck_server_102(shard2) zk_server_102172.16.120.103 ck_server_103(shard2) zk_server_1031. 安装jdk(101/102/103上执行)[root@node101 /usr/local/src]# tar x.
2020-10-21 10:13:38
463
转载 acks参数对消息持久化的影响
(0)写在前面 面试大厂时,一旦简历上写了Kafka,几乎必然会被问到一个问题:说说acks参数对消息持久化的影响? 这个acks参数在kafka的使用中,是非常核心以及关键的一个参数,决定了很多东西。 所以无论是为了面试还是实际项目使用,大家都值得看一下这篇文章对Kafka的acks参数的分析,以及背后的原理。 (1)如何保证宕机的时候数据不丢失? 如果要想理解这个acks参数的含义,首先就得搞明白kafka的高可用架构原理。 比如下面的图里就是表明了对于每一个Topi
2020-10-20 23:03:00
659
转载 Kafka参数调优实战
目录1、背景引入:很多同学看不懂Kafka参数2、一段Kafka生产端的示例代码3、内存缓冲的大小4、多少数据打包为一个Batch合适?5、要是一个Batch迟迟无法凑满咋办?6、最大请求大小7、重试机制8、持久化机制1、背景引入:很多同学看不懂kafka参数今天给大家聊一个很有意思的话题,大家知道很多公司都会基于Kafka作为MQ来开发一些复杂的大型系统。而在使用Kafka的客户端编写代码与服务器交互的时候,是需要对客户端设置很多的参数的。所以我就见过很多年
2020-10-20 23:02:08
502
转载 Spark的对象不可序列化(object not serializable)的一个解决方案
最近在公司开发了一个新项目。这个项目要求人工去编写配置文件,然后根据配置文件配置的函数去处理数据。学到的隐式转换终于排上用场了。假设这些函数就是对比两个Set内容,然后得到这俩Set的相关得分。如下,然后分别实现这些函数即可。 object ScoreFunction{ implicit class FunctionGetterFaster(val functionConf: String) extends AnyVal { def getFunc: (Set[Stri..
2020-10-17 22:47:05
2752
1
原创 快速在centos上安装redis-cli
wget http://download.redis.io/redis-stable.tar.gztar xvzf redis-stable.tar.gzcd redis-stablemake redis-clisudo cp src/redis-cli /usr/local/bin/
2020-10-17 22:30:36
4770
转载 详细解析kafka之kafka分区和副本
本篇主要介绍kafka的分区和副本,因为这两者是有些关联的,所以就放在一起来讲了,后面顺便会给出一些对应的配置以及具体的实现代码,以供参考~1.kafka分区机制分区机制是kafka实现高吞吐的秘密武器,但这个武器用得不好的话也容易出问题,今天主要就来介绍分区的机制以及相关的部分配置。首先,从数据组织形式来说,kafka有三层形式,kafka有多个主题,每个主题有多个分区,每个分区又有多条消息。而每个分区可以分布到不同的机器上,这样一来,从服务端来说,分区可以实现高伸缩性,以及负载均衡,动态
2020-10-16 23:02:26
2042
1
转载 如何确定Kafka的分区数、key和consumer线程数
在Kafak中国社区的qq群中,这个问题被提及的比例是相当高的,这也是Kafka用户最常碰到的问题之一。本文结合Kafka源码试图对该问题相关的因素进行探讨。希望对大家有所帮助。怎么确定分区数? “我应该选择几个分区?”——如果你在Kafka中国社区的群里,这样的问题你会经常碰到的。不过有些遗憾的是,我们似乎并没有很权威的答案能够解答这样的问题。其实这也不奇怪,毕竟这样的问题通常都是没有固定答案的。Kafka官网上标榜自己是"high-throughput distributed mes...
2020-10-14 09:41:16
1745
转载 参与github上开源项目的大致流程和注意事项
Foreword github是一个很火的代码托管服务网站,可能好多人都想参与一两个项目玩一玩学习一下,但由于是纯英文的网站,可能又会止步于想法上没有动手实践。接下来我就介绍一下参与github上开源项目的大致流程,以及注意的地方。当然这里不会详细介绍git的使用,看懂本文还得需要参考其他资料,学习git的相关使用方法。大致流程 一、首先需要在github上注册账号并登陆,这个不多说了 二、安装git,到github官网下载安装包。 在这里我用的是github for wi.
2020-10-13 00:12:53
1150
转载 windows安装npm教程
在使用之前,先类掌握3个东西,明白它们是用来干什么的:npm: nodejs 下的包管理器。webpack: 它主要用途是通过CommonJS 的语法把所有浏览器端需要发布的静态资源作相应的准备,比如资源的合并和打包。vue-cli: 用户生成Vue工程模板。(帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要npm install 就可以安装。2、nodejs下载网址:https://nodejs.org/en/ 【如果嫌下载的慢,可以下载其他网站...
2020-10-12 23:57:55
161150
32
原创 hive关键字处理方式
Hive的关键字包括Keywords, Non-reserved Keywords and Reserved KeywordsKeywordsADD,ADMIN,AFTER,ALL,ALTER,ANALYZE,AND,ARCHIVE,ARRAY,AS,ASC,AUTHORIZATION,BEFORE,BETWEEN,BIGINT,BINARY,BOOLEAN,BOTH,BUCKET,BUCKETS,BY,CASCADE,CASE,CAST,CHANGE,CHAR,CLUSTER,CLUST
2020-09-16 23:21:57
3721
1
转载 了解canal,看这个就够了
一. canal概述canal是Alibaba旗下的一款开源项目,纯Java开发.它是基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持mysql。应用场景:1.数据同步,比如:做在线、离线数据库之间的数据同步操作; 2.数据消费,比如:需要根据关注的数据库表的变化,做搜索增量; 3.数据脱敏,比如:需要将线上动态数据导入到其他地方,做数据脱敏。二. canal工作原理1. mysql主备复制实现(1) master将改变记录到二进制日志(binary .
2020-09-15 23:45:18
1114
1
转载 利用Canal投递MySQL Binlog到Kafka
Update:Canal与Camus的结合使用,见https://www.jianshu.com/p/4c4213385368。Canal是阿里开源的一个比较有名的Java中间件,主要作用是接入数据库(MySQL)的binlog日志,实现数据的增量订阅、解析与消费,即CDC(Change Data Capture)。近期我们计划将数据仓库由基于Sqoop的离线按天入库方式改为近实时入库,Canal自然是非常符合需求的。Canal的模块设计精妙,但代码质量低,阅读起来比较困难。在其GitHub Wi
2020-09-15 23:19:44
732
原创 canal instance区别
spring/memory-instance.xml所有的组件(parser , sink , store)都选择了内存版模式,记录位点的都选择了memory模式,重启后又会回到初始位点进行解析特点:速度最快,依赖最少(不需要zookeeper)场景:一般应用在quickstart,或者是出现问题后,进行数据分析的场景,不应该将其应用于生产环境spring/file-instance.xml所有的组件(parser , sink , store)都选择了基于file持久化模式,注意,不支
2020-09-09 01:20:23
905
转载 多实例 canal应用-1个server+2个instance+2个client+2个mysql
canal应用-1个server+2个instance+2个client+2个mysql原创一 canal应用架构设计组件说明:1 . linux内核版本(CentOS Linux 7):(命令:uname -a)Linux slave1 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 2.mysql版本:(SQL命令:select version(); 或 st.
2020-09-09 01:15:15
1696
转载 深入解析中间件之-Canal
canal: 阿里巴巴mysql数据库binlog的增量订阅&消费组件MySQL binlogMySQL主从复制mysql服务端修改配置并重启$ vi /etc/my.cnf[mysqld]log-bin=mysql-binbinlog-format=ROWserver_id=1$ mysql -urootCREATE USER canal IDENTIFIED BY 'canal'; GRANT ALL PRIVILEGES ON *.* TO 'canal'@
2020-09-09 01:03:24
2832
转载 RESTful API 设计最佳实践
原文:RESTful API Design. Best Practices in a Nutshell.作者:Philipp Hauer项目资源的URL应该如何设计?用名词复数还是用名词单数?一个资源需要多少个URL?用哪种HTTP方法来创建一个新的资源?可选参数应该放在哪里?那些不涉及资源操作的URL呢?实现分页和版本控制的最好方法是什么?因为有太多的疑问,设计RESTful API变得很棘手。在这篇文章中,我们来看一下RESTful API设计,并给出一个最佳实践方案。每个资源使用两个U..
2020-09-09 01:02:12
314
转载 数据质量监控工具-Apache Griffin
文章目录 一、概述 二、Apache Griffin 2.1 特性 2.1.1 数据质量指标说明 2.2 优势 2.3 工作流程 2.4 系统架构 2.5 数据验证逻辑 2.6 Demo 2.7 后台提交监控任务 一、概述随着业务发展和数据量的增加,大数据应用开发已成为部门应用开发常用的开发方式,由于部门业务特点的关系,spark和hive应用开发在部门内部较为常见。当处理的数据量达到一定量级和系统的复杂度上升时,数据的唯一.
2020-09-07 23:37:54
812
原创 clickhouse在linux单机快速安装
sudo yum install yum-utilssudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPGsudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64启动服务:sudo service clickhouse-server start查看log:cd /var/log/clickhouse-serve.
2020-09-06 14:12:08
612
转载 使 Amazon EBS 卷可在 Linux 上使用
将某个 Amazon EBS 卷附加到您的实例后,该卷将显示为块储存设备您可以使用任何文件系统将卷格式化,然后进行挂载。在使 EBS 卷可供使用后,您可以像访问其他所有卷一样访问该卷。任何写入此文件系统的数据均写入 EBS 卷,并且对使用该设备的应用程序是透明的。您可以制作 EBS 卷的快照以进行备份或在您创建其他卷时作为基准。有关更多信息,请参阅Amazon EBS 快照。您可以从Amazon EC2 用户指南(适用于 Windows 实例)中的使卷可在 Windows 上使用,获得有关 Wi..
2020-09-06 13:51:57
263
转载 谷歌的代码管理
谷歌和 Facebook 都只有一个代码仓库,全公司的代码都放在这个库里。我一直很困惑,为什么要这样做,不同语言的项目放在一个库有什么好处?最新一期的《ACM通信》(59卷第7期)有一篇论文《为什么 Google 要把几十亿行代码放在一个库?》,作者是谷歌基础设施小组的工程师,可以看作官方对这个问题的详细解答。我读后感到收获很大,下面就是摘录。一、概况谷歌最早使用 CVS 进行代码管理,1999年改为 Perforce。那时是一台 Perforce 主机,加上各种缓存机。当时,全公.
2020-08-24 00:34:21
347
转载 版本分支管理标准 - Trunk Based Development 主干开发模型
之前分享过《版本分支管理标准 - Git Flow》,不过在实际使用过程中, 因为其有一定的复杂度,使用起来较为繁琐,所以一些人员较少的团队并不会使用这个方案。在这基础上,一些新的分支管理标准被提出。这里转发一下这个标准:《Trunk Based Development 主干开发模型》。Preface在之前的博文中我们介绍了 Git Flow 分支模型,正如文中所说,Git Flow 偏向于控制管理,使用了较多的分支,流程颇为复杂。大量的团队在实践过程中也遇到了颇多问题,其中大部分来自长期存在的
2020-08-24 00:08:37
1686
原创 java maven copyright
Try switching to thecom.mycila:license-maven-plugin. Their documentation is very easy to follow.Create a template in a fileFor example, put inlicense-header.txt:Copyright (C) ${license.years} ${license.owner} <${license.email}>============..
2020-08-23 22:57:57
392
转载 maven配置之:snapshot快照库和release发布库
在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次。我们知道,maven的依赖管理是基于版本管理的,对于发布状态的artifact,如果版本号相同,即使我们内部的镜像服务器上的组件比本地新,maven也不会主动下载的。如果我们在开发阶段都是基于正式发布版本来做依赖管理,那么遇到这个问题,就需要升级组件的版本号,可这样就明显不符合要求和实际情况了。但是,如果是基于快照版本,那么问题就自热而然的解决了,而mave
2020-08-23 10:41:44
3003
1
转载 Maven快照机制(SNAPSHOT)
以下引用自https://ayayui.gitbooks.io/tutorialspoint-maven/content/book/maven_snapshots.html:一、场景一个大型的软件应用通常包含多个模块,并且通常的场景是多个团队开发同一应用的不同模块。举个例子,设想一个团队开发应用的前端,项目为app-ui(app-ui.jar:1.0),而另一个团队开发应用的后台,使用的项目是data-service(data-service.jar:1.0)。现在可能出现的情况是开发data-
2020-08-22 23:57:33
823
原创 slf4j+logback&logback.xml
1.maven依赖<dependencies><!--https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.
2020-08-22 23:23:26
173
原创 maven checkstyle findbugs pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4....
2020-08-22 22:42:49
329
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人