- 博客(102)
- 资源 (12)
- 收藏
- 关注
原创 Hive SQL编译过程
antlr介绍Hive 使用 Antlr 实现 SQL 的词法和语法解析。Antlr 是一种语言识别工具,可以用来构造领域语言。Antrl 完成了词法分析、语法分析、语义分析、中间代码生成的过程。Antrl 的工作方式:编写一个语法文件,构造特定规则的语法,定义语法和词法规则完成最终的替换,生成代码。Hive 的语法规则和词法规则,都是定义在类似于 xxx.g 的文件中。其中:0.10X...
2021-11-01 15:28:00
79
原创 spark执行流程
首先,用户编写好的 spark 应用程序之后,打包成 Jar 包,通过 spark-submit 进行提交。最终转交给 SparkSubmit.class,通过提交模式可以找到对应的客户端启动类。这个客户端类启动好了之后,执行一些参数解析,执行 Jar 包处理等相关准备动作之后,就发送请求(ApplicationRegistion)给对应的资源调度系统的节点 Master。Master 首先找...
2021-10-31 21:22:00
89
原创 spark运行机制
构建DAG(Driver 端完成)使用算子操作 RDD 进行各种 Transformation 操作,最后通过 Action 操作触发 Spark 作业运行。提交之后 Spark 会根据转换过程所产生的 RDD 之间的依赖关系构建有向无环图DAG 切割(Driver 端完成)DAG 切割主要根据 RDD 的依赖是否为宽窄依赖来解决切割节点,当遇到宽依赖就将任务划分为一个新的调度阶...
2021-10-31 21:20:00
83
原创 hive调优之hive架构层面
启动本地抓取Hive 的某些 SQL 语句需要转换成 MapReduce 的操作,某些 SQL 语句就不需要转换成 MapReduce 操作,但是需要注意,理论上来说,所有的 SQL 语句都需要转换成 MapReduce 操作,只不过Hive 在转换 SQL 语句的过程中会做部分优化,使某些简单的操作不再需要转换成 MapReduce,例如:只是select * 查询操作where条件只对分区字段进行筛选带有limit分支语句Hive 从 HDFS 中读取数据,有两种方式启用MapReduce
2021-03-03 11:39:43
240
原创 hive调优之SQL语法和运行参数
hive语法和运行参数层面,主要写出高效运行SQL,并且利用一些运行参数进行调优SQL执行查看hive执行计划hive的SQL语句在执行之前需要将SQL语句转换成MapReduce任务,因此需要了解转换过程,可以再SQL语句中输入如下命令查看具体的执行计划。explain [extended] query --查看执行计划,添加extended关键字可以查看更详细的查询计划示例如下explain select department, count(*) as total from student
2021-03-03 11:22:02
1141
原创 ActiveMQ安装
1.下载ActiveMQ去官方网站下载:http://activemq.apache.org/2.运行ActiveMQ解压缩apache-activemq-5.5.1-bin.zip,修改配置文件activeMQ.xml,将0.0.0.0修改为localhost<transportConnectors> <transportConnector n...
2021-02-25 09:50:00
146
转载 Git工作原理
基本语法上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。git add files #把当前文件放入暂存区域git commit #给暂存区域生成快照并提交git reset – files #用来撤销最后一次git add files,你也可以用git reset撤销所有暂存区域文件git checkout – files #把文件从暂存区域复制到工作目录,用来丢弃本地修改也可以用下述命令进行交互模式git reset -p,git checkout -
2021-02-24 18:06:41
71
原创 Hive 自定义函数 UDF UDAF UDTF
Hive 自定义函数 UDF UDTF UDAFUDF函数UDF:用户定义(普通)函数,只对单行数值产生作用;UDF只能实现一进一出的操作。UDF函数自定义实现步骤如下:定义UDF函数,如计算两个数之和package com.starzy.udf;import org.apache.hadoop.hive.ql.exec.UDF;public class UDFDemo extends UDF { // 自定义函数实现逻辑,重载evaluate public String
2021-02-21 11:36:39
373
原创 Hive常见文件存储格式
背景:列式存储和行式存储,首先看一下表数据存储格式:字段A字段B字段CA1B1C1A2B2C2A3B3C3A4B4C4A5B5C5如果上述表数据存储为列式存储,存储数据文件如下A1B1C1 A2B2C2 A3B3C3 A4B4C4 A5B5C5如果上述表数据存储为行式存储,存储数据文件如下A1A2A3A4A5...
2021-02-21 11:30:00
32
原创 Hadoop进入安全模式源码分析
Hadoop进入安全模式有三个条件具体源码如下private boolean needEnter() { // TODO-ZH DataNode汇报block状态为complete状态数量 return (threshold != 0 && blockSafe < blockThreshold) || /...
2021-02-13 22:51:00
27
原创 Hadoop RPC简介
导入依赖<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.7</version> ...
2021-02-13 16:21:00
21
原创 hive自定义UDF函数
UDF:用户定义(普通)函数,只对单行数值产生作用;UDF只能实现一进一出的操作。UDF函数自定义实现步骤如下:定义UDF函数,如计算两个数之和package com.starzy.udf;import org.apache.hadoop.hive.ql.exec.UDF;public class UDFDemo extends UDF { // 自定义函数实现逻辑,重载...
2021-01-31 10:14:00
20
原创 hive性能调优之表设计层面调优
hive表建表设计层面调优主要合理设计组织数据方便后续高效计算,比如建表的字段数据类型、文件存出格式、文件压缩格式等利用分区优化分区表是在某一个或者几个维度上对数据进行分类存储,一个分区表对应一个目录。如果筛选条件里有分区字段,那么Hive只需要遍历对应分区目录下的文件即可,不需要遍历全局数据,使得处理的数据量大大减少,从而提高查询效率。也就是说,当一个hive表的查询大多数情况下,会根据...
2021-01-28 11:04:00
27
原创 hive语法详解之数据库操作
创建数据库create database tmp;create database if not exsits tmp comment 'create my db name dbname' with dbproperties('a'='aaa','b'='bbb')查询创建语句show create database tmp;查询数据库详细信息desc database extend...
2021-01-27 13:57:00
28
原创 RPC简介
什么是RPC远程过程调用(英语:Remote Procedure Call,缩写为 RPC,也叫远程程序调用)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。背景与用途在单台计算机中,我们可以通过程序调用来传递控制和数据;或者说通过程序调用...
2021-01-26 22:24:00
28
原创 Hadoop HA 集群搭建
集群部署节点角色的规划(3节点)----------------------------------------------------------------------------------------------------------------Server01 192.168.2.11:hadoop01:node01 namenode resourcemanager zkfc n...
2021-01-13 23:41:00
23
原创 spark为什么比mapreduce运行速度快很多
比较重要的2个原因– 1、基于内存 mapreduce任务每次都会把结果数据落地到磁盘,后续有其他的job需要依赖于前面job的输出结果,这里就需要进行大量的磁盘io操作,获取前面job的输出结果。性能非常低 例如:select name,age from ( select * from user where address = ...
2019-12-18 01:35:00
63
原创 Hadoop
1. Hadoop 介绍Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台。允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理。 狭义上说,Hadoop指Apache这款开源框架,它的核心组件有: HDFS(分布式文件系统):解决海量数据存储 YARN(作业调度和集群资源管理的框架):解决资源任务调度 ...
2019-09-01 23:55:00
21
原创 Hive SQL语法总结
Hive是一个数据仓库基础的应用工具,在Hadoop中用来处理结构化数据,它架构在Hadoop之上,通过SQL来对数据进行操作。Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的Hive SQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。Hive 并非为联机...
2019-08-31 23:59:00
32
原创 Flink水印机制(watermark)
Flink流处理时间方式EventTime时间发生的时间,例如:点击网站上的某个链接的时间 IngestionTime某个Flink节点的source operator接收到数据的时间,例如:某个source消费到kafka中的数据ProcessingTime某个Flink节点执行某个operation的时间,例如:timeWindow接收到数据的时间 设置Flin...
2019-08-31 18:19:00
16
原创 Flink容错机制(checkpoint)
checkpoint是Flink容错的核心机制。它可以定期地将各个Operator处理的数据进行快照存储( Snapshot )。如果Flink程序出现宕机,可以重新从这些快照中恢复数据。 1. checkpoint coordinator(协调器)线程周期生成 barrier (栅栏),发送给每一个source 2. source将当前的状态进行snapshot(可以保存到HDFS) ...
2019-08-31 18:16:00
26
原创 行转列,列转行
mysql的行转列,列转行(但是对多列进行操作)列转行运行前:运行后:源sql:-- 创建学生表CREATE TABLE test.stu_score( username VARCHAR(20), -- 学生姓名 subject VARCHAR(30), -- 科目 score FLOAT -- 成绩);-- ...
2019-07-07 14:27:00
14
原创 聚合函数:sum,count,max,avg
聚合函数:sum,count,max,avg等,一般作用于多条记录上。通过group by可以将数据对属于一组的数据起作用。SELECT region, SUM(population), SUM(area)FROM bbcGROUP BY regionhaving子句,汇总之后再筛选。作用于组,从而选择满足条件的组。比如说下面这个,就不能使用where,因为已经分组了,就不能再对一条记录进行操...
2019-07-07 14:15:00
25
原创 row_number() over partition by 分组聚合
分组聚合,就是先分组再排序,可以的话顺手标个排名;如果不想分组也可以排名;如果不想分组同时再去重排名也可以ROW_NUMBER() OVER( [PARTITION BY column_1, column_2,…] [ORDER BY column_3,column_4,…])Oracle和SQL server的关键字是over partition bymysql的无关键字ro...
2019-07-07 14:08:00
12
原创 mysql优化
explain通过explain查看sql执行计划type列,连接类型。一个好的sql语句至少要达到range级别,杜绝all级别key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式key_len列,索引长度rows列,扫描行数。该值是个预估值extra列,详细说明。常见的不友好的值有:Using filesort,Using temporarySQ...
2019-07-07 13:51:00
14
原创 hive中not in优化
比如:A,B两表,找到ID字段中,存在A表,但不存在B表的数据。 A表共13w,去重后3w, B表共2W,且有索引方法一not in,易理解,效率低,时间:1.395sselect distinct A.id from A where A.id not in(select id from B)方法二left...join...on ,B.id isnull...
2019-07-07 13:20:00
86
原创 Notepad++ 连接 FTP 实现编辑 Linux文件
下载并安装插件github 下载 :https://github.com/ashkulz/NppFTP/releases/安装过程将下载后解压的文件夹中的 NppFTP.dll 文件,拷贝到 notepad++安装路径下的\plugins,并重启notepad++即可配置ftp打开配置ftp窗口输入主机IP、账号、密码,选择SFTP即可选择文件,可以直接下载/编辑,编辑保存后会自动上传到Linu...
2019-07-07 13:07:00
45
原创 Git
1. Git历史同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。到 2005 年的时候,开发 BitKeeper 的商业公司同 Lin...
2019-05-20 00:07:00
19
原创 根据进程ID查找运行程序目录
查看进程ID[root@hadoop03 openresty]# netstat -nltp进入/proc目录查找相应进程ID目录并进入此目录 [root@hadoop03 usr]# cd /proc/17569/在进程ID目录中查找exe连接,后面就是运行进程ID对应文件的绝对路径 [root@hadoop03 17569]# ll | grep exe...
2019-04-06 11:57:00
42
原创 Flink 的广播变量
Flink 支持广播变量,就是将数据广播到具体的 taskmanager 上,数据存储在内存中,这样可以减缓大量的 shuffle 操作;比如在数据 join 阶段,不可避免的就是大量的 shuffle 操作,我们可以把其中一个 dataSet 广播出去,一直加载到 taskManager 的内存中,可以直接在内存中拿数据,避免了大量的 shuffle,导致集群性能下降;广播变量创建后,它可...
2019-03-26 17:19:00
20
原创 Phoenix安装配置
下载Phoenix在网站http://phoenix.apache.org/download.html找到对应HBase版本的安装程序,并下载安装包,解压安装程序到指定目录[root@hadoop01 soft]# wget http://www.apache.org/dyn/closer.lua/phoenix/apache-phoenix-4.14.0-cdh5.14.2/bin/apa...
2019-03-24 19:32:00
28
原创 Hive 整合Hbase
摘要Hive提供了与HBase的集成,使得能够在HBase表上使用HQL语句进行查询 插入操作以及进行Join和Union等复杂查询、同时也可以将hive表中的数据映射到Hbase中。应用场景2.1 将ETL操作的数据存入HBase 2.2 HBase作为Hive的数据源 2.3 构建低延时的数据仓库 环境准备3.1 hive与hbase整合环境配置修改hive-si...
2019-03-23 21:41:00
28
原创 kudu基础入门
1、kudu介绍1.1 背景介绍在KUDU之前,大数据主要以两种方式存储; (1)静态数据:以 HDFS 引擎作为存储引擎,适用于高吞吐量的离线大数据分析场景。这类存储的局限性是数据无法进行随机的读写。(2)动态数据:以 HBase、Cassandra 作为存储引擎,适用于大数据随机读写场景。这类存储的局限性是批量读取吞吐量远不如 HDFS,不适用于批量数据分析的场景。从...
2019-03-21 18:15:00
53
原创 spark的shuffle和原理分析
概述Shuffle就是对数据进行重组,由于分布式计算的特性和要求,在实现细节上更加繁琐和复杂。在MapReduce框架,Shuffle是连接Map和Reduce之间的桥梁,Map阶段通过shuffle读取数据并输出到对应的Reduce;而Reduce阶段负责从Map端拉取数据并进行计算。在整个shuffle过程中,往往伴随着大量的磁盘和网络I/O。所以shuffle性能的高低也...
2019-03-21 15:54:00
28
原创 spark任务调度和资源分配
Spark调度模式 FIFO和FAIRSpark中的调度模式主要有两种:FIFO和FAIR。默认情况下Spark的调度模式是FIFO(先进先出),谁先提交谁先执行,后面的任务需要等待前面的任务执行。而FAIR(公平调度)模式支持在调度池中为任务进行分组,不同的调度池权重不同,任务可以按照权重来决定执行顺序。 资源分配概述spark的分配资源主要就是 executo...
2019-03-21 15:47:00
20
原创 大数据的近实时分析系统架构
近实时分析的场景近实时分析 – 对变化中的数据?供快速分析能力分析现实世界中正在发生的事件的能力,结合历史数据和实时流数据进行汇总分析、预测和明细查询绝对实时和批量不可调和,"近实时" 的意思是这是人机交互中能感受的尺度(秒级),而不是机器自动处理的实时性量级(ns / us级)数据价值从非结构化到结构化,分析从非范式到范式。SQL是结构化分析的最终手段,但是: 汇总分析(顺序扫?)与...
2019-03-21 15:25:00
54
原创 近实时分析方案中的组件介绍
Cloudera技术堆栈中构建近实时系统的组件五种最常用的组件使得这一技术成文可能• Apache Kafka• Apache Flume• Apache Spark• Apache Kudu• Apache ImpalaApache Kafka 每个节点成为Broker数据的topics方式写入kafka每一个topic都可以被分片分片分布在broker上分片可以有多...
2019-03-21 15:01:00
19
原创 将jar包添加到maven仓库
Maven资源库配置 访问http://mvnrepository.com/,在搜索栏中输入你要搜索的 JAR 包的关键字例如下载ImpalaJDBC41这个jar包 选择你想要下载的Jar包版本 下载Jar包 Maven 安装 JAR 包的命令这里就是上图中的Jar包信息:<!-- https://mvnrepository.com/artifact/co...
2019-03-21 10:58:00
15
原创 impala安装
安装规划服务名称Node01Node02Node03impala-catalog安装不安装不安装impala-state-store安装不安装不安装impala-server安装安装安装impala安装安装安装安装impala主节点node0...
2019-03-20 10:59:00
23
bootstrap框架写的后台管理模板
2017-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人