自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 以Hexo框架腾讯云服务器搭建博客记录

以Hexo框架腾讯云服务器搭建博客记录服务与框架服务器: 腾讯云云服务器标准型SA2,配置1核 2GB 1Mbps框架: HexoHexo 主题: cactus本地端安装依赖由于 Hexo 是基于 Node.js 的, 所以需要先安装 Node.js.从官方网站下载长期支持版本, 然后安装即可, 安装完之后会显示安装的路径, 可以发现同时安装了 Node.js 和随之的包管理工具 npm. 可以通过在终端输入以下命令查看是否安装成功:# user @ usermbp in ~ [22:41

2020-11-28 16:15:10 3

原创 Hadoop 总结

Hadoop 总结HadoopHadoop的组成hadoop 1.x: HDFS: 存; MapReduce: 算 + 资源调度(内存, CPU, 磁盘, 网络带宽…)hadoop 2.x/3.x: HDFS: 存; MapReduce: 算; Yarn: 资源调度HDFS的架构HDFSHadoop分布式文件系统, 文件系统是用于对文件进行存储和管理.分布式可以理解为由多台机器共同构成一个完整的文件系统.NameNode(nn)描述: 负责管理HDFS中所有文件的元数据信息.元数据:

2020-11-28 16:08:35 8

原创 SSH登录认证简析

SSH登录认证简析公钥与私钥公钥 (Public Key) 与私钥 (Private Key) 是通过一种算法得到的一个密钥对 (即一个公钥和一个私钥), 公钥是密钥对中公开的部分, 私钥则是非公开的部分. 公钥通常用于加密会话密钥, 验证数字签名, 或加密可以用相应的私钥解密的数据. 通过这种算法得到的密钥对能保证在世界范围内是独一的. 使用这个密钥对的时候, 如果用其中一个密钥加密一段数据, 必须用另一个密钥解密. 比如用公钥加密数据就必须用私钥解密, 如果用私钥加密也必须用公钥解密, 否则解密将不

2020-11-28 16:05:52 27

原创 Repost - Hive SQL的编译过程

Repost - Hive SQL的编译过程Hive的服务端1.Driver组件:该组件包括:Compiler、Optimizer、Executor,它可以将Hive编译、解析、优化转化为Map Reduce任务提交给Hadoop中的Source Manager来进行实际的执行相应的任务。2.Meta Store组件:存储着hive的元数据信息,将自己的元数据存储到了关系型数据库中,支持的数据库主要有MySQL、Derby,支持把meta store独立出来放在远程的集群上面,使得hive更加健壮。元

2020-11-28 08:10:59 33

原创 Mysql Transaction(事务)

Mysql Transaction(事务)数据库事务 (简称: 事务) 是数据库管理系统执行过程中的一个逻辑单位, 由一个有限的数据库操作序列构成.数据库事务通常包含了一个序列的对数据库的读/写操作, 包含有以下两个目的:为数据库操作序列提供了一个从失败中恢复到正常状态的方法, 同时提供了数据库即使在异常状态下仍能保持一致性的方法.当多个应用程序在并发访问数据库时, 可以在这些应用程序之间提供一个隔离方法, 以防止彼此的操作互相干扰.当事务被提交给了数据库管理系统 (DBMS), 则 DBMS 需

2020-11-28 08:05:30 21

原创 Spark源码解析2-YarnCluster模式启动

Spark源码解析2-YarnCluster模式启动YARN 模式运行机制Yarn Cluster 模式执行脚本提交任务,实际是启动一个 SparkSubmit 的 JVM 进程;SparkSubmit 类中的 main 方法反射调用 YarnClusterApplication 的 main 方法;YarnClusterApplication 创建 Yarn 客户端,然后向 Yarn 服务器发送执行指令:bin/java ApplicationMaster;Yarn 框架收到指令后会在指定的

2020-11-27 11:19:25 4

原创 Spark源码解析1-通信框架与Standalone模式启动

Spark源码解析1-通信框架与Standalone模式启动Spark 通讯架构RPCRPC 是远程过程调用, Netty 就是一种基于 Actor 模型的 RPC 框架.在 Hadoop 中 NN 与 DN 要通信, HBase 中 HMaster 和 HRegionServer 要进行通信, 其实都是用 RPC 的通信方式, 只不过对比 Hadoop, Spark 不一样, 又进行了一层封装, 源码看起来更加友好.RPC 通信基于服务端与客户端的通信方式, 比如 Hadoop 中 NN 与 D

2020-11-27 11:16:44 6

原创 维度建模理论与数仓分层思想

维度建模理论与数仓分层思想维度建模ODS 层因为保留原始数据, 所以和业务数据库 (关系模型) 一样是关系模型.DWD 层即进行了维度建模, 将下面的模型 ↓转化为了下面的维度模型, 即以事实表为中心, 周围有一圈的维度表 ↓维度模型中的表数据 (数据特征) 可能有冗余, 但查询时一般只需要进行事实表和维度表进行 join, 不用 join 太多表, 查询性能更好.在维度建模的基础上又分为三种模型:星型模型、雪花模型、星座模型。但生产中事实表不可能只有一张, 所以多个事实表多个维度表结合

2020-11-24 13:23:13 21

原创 hive自定义分区器

Hive自定义分区器流程1.自定义类实现org.apache.hadoop.mapred.Partitioner(必须为这个,Hive中使用的是老的API)接口package com.ailibaba;import org.apache.hadoop.hive.ql.io.HiveKey;import org.apache.hadoop.io.BytesWritable;import org.apache.hadoop.mapred.JobConf;import org.apach

2020-11-24 09:18:43 7

原创 Canal HA 服务端集群搭建记录

Canal HA 服务端集群搭建记录背景与版本记录从 2018 年 9 月实时项目立项开始, 业务数据的同步就采用了 canal, 当时 1.1.0 版本刚好原生支持了 kafka 消息的投递, 但还不支持 serverMode 直接切换, 所以最开始我们选择的 serverMode 依然是 tcp 类型.1.1.2 版本是我们升级的一个版本, 1.1.4 全面兼容 MySQL DDL 的解析能力, 我们在几个月前也将 canal 集群更新到了 1.1.4 这个版本.HA 架构Canal 的 HA

2020-11-24 09:13:16 8 1

原创 Homebrew常见问题

Homebrew常见问题安装请按照官网的命令进行安装即可: https://brew.sh/需要注意的是,homebrew 本身安装的位置是:/usr/local/Homebrew并在 /usr/local/bin内创建了 homebrew 的启动程序 brew 的软连接:# amos @ amosmbp in /usr/local/bin [7:36:03]$ ll brewlrwxr-xr-x 1 amos admin 28B 1 25 23:37 brew -> /

2020-11-24 09:09:08 34

原创 kafka 精准一次性

kafka 精准一次性kafka 精准一次性重要性在很多的流处理框架的介绍中, 都会说 kafka 是一个可靠的数据源, 并且推荐使用 kafka 当作数据源来进行使用. 这是因为与其他消息引擎系统相比, kafka 提供了可靠的数据保存及备份机制. 并且通过消费者 offset 这一概念, 可以让消费者在因某些原因宕机而重启后, 可以轻易得回到宕机前的位置.而 kafka 作为分布式 MQ, 大量用于分布式系统中, 如消息推送系统, 业务平台系统 (如结算平台), 就拿结算来说, 业务方作为上游把

2020-11-23 22:33:12 15

原创 JUC-Executor Framework

JUC-Executor FrameworkExecutor 框架Java 5 初次引入了Concurrency API, 并在随后的发布版本中不断优化和改进. Executor 框架简单地说是一个任务的执行和调度框架, 涉及的类如下图所示:Executor其中, 最顶层是 Executor 接口, 它的定义很简单, 一个用于执行任务的 execute 方法, 如下所示:public interface Executor { void execute(Runnable command);

2020-11-23 19:38:47 4

原创 分布式系统的 CAP 原则

分布式系统的 CAP 原则CAP 理论概述CAP理论告诉我们,一个分布式系统不可能同时满足以下三种一致性(C:Consistency)可用性(A:Available)分区容错性(P:Partition Tolerance)这三个基本需求,最多只能同时满足其中的两项,因为P是必须的,因此往往选择就在CP或者AP中。一致性(C:Consistency)在分布式环境中,一致性是指数据在多个副本之间是否能够保持数据一致的特性。在一致性的需求下,当一个系统在数据一致的状态下执行更新操作后,应该保

2020-11-23 17:55:13 13

原创 Flink SQL深度篇

Flink SQL深度篇问题导读怎样优化Logical Plan?怎样优化Stream Graph?TimeWindow, EventTime, ProcessTime 和 Watermark 四者之间的关系是什么?序言时效性提升数据的价值, 所以 Flink 这样的流式 (Streaming) 计算系统应用得越来越广泛.广大的普通用户决定一个产品的界面和接口. ETL开发者需要简单而有效的开发工具, 从而把更多时间花在理业务和对口径上. 因此流式计算系统都趋同以 SQL 作为唯一开发语言

2020-11-23 17:52:03 23

原创 Flink维度关联的几种思路

在实际生产中,我们经常会有这样的需求,需要以原始数据流作为基础,然后关联大量的外部表来补充一些属性。例如,我们在订单数据中,希望能得到订单收货人所在省的名称,一般来说订单中会记录一个省的 ID,那么需要根据 ID 去查询外部的维度表补充省名称属性。在 Flink 流式计算中,我们的一些维度属性一般存储在 MySQL/HBase/Redis 中,这些维表数据存在定时更新,需要我们根据业务进行关联。根据我们业务对维表数据关联的时效性要求,有以下几种解决方案:实时查询维表关联预加载维表关联热存储关联其

2020-11-23 16:17:30 8

原创 hive中文注释乱码解决方案

hive元数据metastore默认的字符集是latin1,所以中文注释会乱码,但是不能将metastore库的字符集更改为utf-8,只能对特定表、特定列修改为utf-8。①在Hive元数据存储的Mysql数据库中,执行以下SQL:#修改字段注释字符集alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;#修改表注释字符集alter table TABLE_PARAMS modify column

2020-10-30 22:53:00 11

转载 KUDU 介绍

前言近两年,KUDU 在大数据平台的应用越来越广泛。在阿里、小米、网易等公司的大数据架构中,KUDU 都有着不可替代的地位。本文通过分析 KUDU 的设计, 试图解释为什么 KUDU 会被广泛应用于大数据领域,因为还没有研究过 KUDU 的代码,下面的介绍是根据 KUDU 的论文和网上的一些资料学习自己理解所得,如有不实之处,劳请指正。背景在 KUDU 之前,大数据主要以两种方式存储:静态数据:以 HDFS 引擎作为存储引擎,适用于高吞吐量的离线大数据分析场景。这类存储的局限性是数据无法进行

2020-10-21 20:29:35 23 1

原创 hive on spark 精度匹配异常

错误类型:org.apache.hadoop.hive.ql.parse.SemanticException:Line 55:23 Cannot insert into target table because column number/types are different ''2020-06-14'': Cannot convert column 7 from array<struct<sku_id:string,sku_num:bigint,order_count:bigint,orde

2020-10-16 19:12:09 29

原创 hive on spark 的nvl函数类型一致

报错:[42000][3] Error while processing statement: FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Spark job failed during runtime. Please check stacktrace for the root cause.错误原因:nvl函数(字段,默认值),要求字段类型与默认值类型必须一致,特别

2020-10-16 18:58:53 23

原创 hive基础知识大全

一、Hive基本概念1.1 hive是什么hive是基于hadoop的一个数仓分析工具,hive可以将hdfs上存储的结构化的数据,映射成一张表,然后让用户写HQL(类SQL)来分析数据 tel up down1383838438 1345 15671383838439 5345 15671383838440 1241 165771383838441

2020-10-16 08:09:20 59

原创 hive中metastore服务、hiveserver2服务、hive客户端、beeline客户端连接元数据的方式

1.前言hive是Hadoop的客户端,启动hive前必须启动hadoop,同时hive的元数据存储在mysql中,是由于hive自带的derby数据库不支持多客户端访问。2.开启metastore服务的参数hive-site.xml中打开metastore的连接地址。<!-- 指定存储元数据要连接的地址 --> <property> <name>hive.metastore.uris</name> <va

2020-10-10 21:04:46 172

原创 spark入门总结

1.spark要是经过Shuffle也会落盘2.MR不适合迭代式计算,MR1 ->结果落盘 ->MR2 ->结果落盘 ->MR33.Hadoop2.x解决了Hadoop1.x的问题,实现了Yran,将任务调度与资源调度解耦,并且计算框架可插拔(可以换别的计算引擎)4.RDD弹性分布式数据集,相当于抽象出一个集合,可以使用集合的方法,但是不同于集合,集合是真正储存数据的, RDD不存数据,而存计算逻辑的。通过计算逻辑可以拿到数据。5.RDD中的方法叫算子。6.Spark做.

2020-09-28 13:54:12 26

原创 SparkCore笔记总结

1. IO流中的BufferedInputStream体现出装饰者设计模式。 1)装饰者设计模式由装饰者和被装饰者两部分组成; 2)装饰者扩增被装饰者的功能,BufferedInputStream(装)增加了FileInputStream(被装)的功能, 由一个字节一个字节的读取变成一次读取一批数据; 3)装饰者与被装饰者有相同的方法,这样装饰者使用方法时,就感觉使用被装饰者的方法一样,只不过对功能进行了扩增。 比如如果是文本,还可以进一步包装,对字节流(FileI...

2020-09-28 13:52:50 15

原创 hive常用函数+使用说明

常用日期函数unix_timestamp:返回当前或指定时间的时间戳 select unix_timestamp(); select unix_timestamp('2008-08-08 08:08:08');from_unixtime:将时间戳转为日期格式 select from_unixtime(1218182888);current_date:当前日期 select current_date();cu...

2020-09-25 18:39:53 15

原创 一文解决Spark 数据倾斜

一、什么是数据倾斜对 Spark/Hadoop 这样的分布式大数据系统来讲,数据量大并不可怕,可怕的是数据倾斜。对于分布式系统而言,理想情况下,随着系统规模(节点数量)的增加,应用整体耗时线性下降。如果一台机器处理一批大量数据需要120分钟,当机器数量增加到3台时,理想的耗时为120 / 3 = 40分钟。但是,想做到分布式情况下每台机器执行时间是单机时的1 / N,就必须保证每台机器的任务量相等。不幸的是,很多时候,任务的分配是不均匀的,甚至不均匀到大部分任务被分配到个别机器上,其它大部分机器所分配的

2020-09-25 18:35:57 20

原创 Hive常用函数

常用日期函数unix_timestamp:返回当前或指定时间的时间戳 from_unixtime:将时间戳转为日期格式current_date:当前日期current_timestamp:当前的日期加时间to_date:抽取日期部分year:获取年month:获取月day:获取日hour:获取时minute:获取分second:获取秒weekofyear:当前时间是一年中的第几周dayofmonth:当前时间是一个月中的第几天months_between: 两个日期间的月...

2020-09-21 13:19:05 732

原创 如何高效设计HBase RowKey,这些细节需要注意

在HBase中,定位一条数据(即一个Cell)需要4个维度的限定:行键(RowKey)、列族(Column Family)、列限定符(Column Qualifier)、时间戳(Timestamp)。其中,RowKey是最容易出现问题的。除了根据业务和查询需求来设计之外,还需要注意以下三点。1. 打散RowKeyHBase中的行是按照RowKey字典序排序的。这对Scan操作非常友好,因为RowKey相近的行总是存储在相近的位置,顺序读的效率比随机读要高。但是,如果大量的读写操作总是集中.

2020-09-21 13:17:04 20

原创 超实用Hadoop的Shuffle过程优化:map端,reduce端,网络IO以及常见参数配置

Shuffle功能强大,但是Shuffle过程中多次落盘操作以及网络IO,是导致MapReduce慢的主要原因,可以尝试从以下几个方面进行优化:1、Map阶段(1)增大环形缓冲区大小。由100m扩大到200m(2)增大环形缓冲区溢写的比例。由80%扩大到90%(3)减少对溢写文件的merge次数。(10个文件,一次20个merge)(4)不影响实际业务的前提下,采用Combiner提前合并,减少 I/O。2、Reduce阶段(1)合理设置Map和Reduce数:两个都不能设置太少

2020-09-06 17:34:00 27

原创 Win10图片查看器太慢,怎么默认用Windows照片查看程序提高打开图片速度

Windows10中已经使用了新版的图片程序,虽然功能强大但是打开很慢,并且使用并不方便,完全不如之前的“Windows照片查看程序”简捷方便。但windows10中并不能直接找到照片查看程序,那我们在windows10要怎么恢复默认为照片查看程序呢?实际上并不难,跟我操作吧。第一步:复制以下内容到记事本: @echo off&cd\&color 0a&cls echo 恢复Win10照片查看器 reg add "HKLM\SOF..

2020-09-06 08:17:19 168

原创 程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版) 左程云

左神无敌,永远的神,评论有链接

2020-09-02 23:34:50 74 2

原创 5000行代码入门mysql基础,10小时精通

---------------------------------------------------------------------------------------------------- 常见命令 -----------------------------------------------------------------------------------------------------------Microsoft Windows [版本 6.1.7600]版权所有 (c

2020-09-02 15:15:28 51

原创 linux 为什么要关闭防火墙selinux,Linux下的防火墙用什么命令打开?

一、SELinux是什么?SELinux是一个复杂的安全子bai系统,它可以控制程du序只访问一定数量的文zhi件,使用学位设置工具进入对角dao化关闭。二、linux 为什么要关闭防火墙selinux?一般安装linux课程时都把SELinux与iptables安排在后面,使初学者配置linux服务器时不成功,却没有头绪,那是因为在RedHat linux操作系统中默认开启了防火墙,SELinux也处于启动状态,一般状态为enforing。致使很多服务端口默认是关闭的。所以好多服务初学者明明配

2020-08-30 15:50:11 135

转载 Delta Lake:高效事务表(ACID Table)进行云对象存储(overCloud Object Stores)

【本文转载自过往记忆:方便日后不输验证码学习】最近,数砖大佬们给 VLDB 投了一篇名为《Delta Lake: High-Performance ACID Table Storage overCloud Object Stores》的论文,并且被 VLDB 收录了,这是第一篇比较系统介绍数砖开发Delta Lake的论文。随着云对象存储(Cloud object stores)的普及,因为其廉价的成本,越来越多的企业都选择对象存储作为其海量数据的存储引擎。但是由于对象存储的特点,其主要有两个比..

2020-08-27 21:10:17 92

转载 程序员必读书籍——成为大神

很多程序员响应,他们在推荐时也写下自己的评语。以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 10的书。其实除了前10本之外,推荐数前30左右的书籍都算经典,笔者整理编译这个问答贴,同时摘译部分推荐人的评语。下面就按照各本书的推荐数排列。1. 《代码大全》史蒂夫·迈克康奈尔推荐数:1684“优秀的编程实践的百科全书,《代码大全》注重个人技术,其中所有东西加起来,就是我们本能所说的“编写整洁的代码”。这本书有50页在谈论代码布局。” —— Joel Spolsky对于新手来说,这.

2020-08-26 17:42:17 45

原创 Flume参数调优

一、Flume事务1.事务机制Flume的事务机制(类似数据库的事务机制):Flume使用两个独立的事务分别负责从Soucrce到Channel,以及从Channel到Sink的事件传递。比如spooling directory source 为文件的每一行创建一个事件,一旦事务中所有的事件全部传递到Channel且提交成功,那么Soucrce就将该文件标记为完成。同理,事务以类似的方式处理从Channel到Sink的传递过程,如果因为某种原因使得事件无法记录,那么事务将会回滚。且所有的事件都会

2020-08-26 13:53:17 43

原创 在linux中命令后面带参数“-”与“--”的区别

第一种:参数用一bai横的说明后面的参数是字符形式。du第二种:参数用两横的zhi说明后面的参数是单词dao形式。第三种:参数前有横的是 System V风格。第四种:参数前没有横的是 BSD风格。有关System V和BSD的其他区别:系统启动过程中 kernel 最后一步调用的是 init 程序,init 程序的执行有两种风格,即 System V 和 BSD。System V 风格中 init 调用 /etc/inittab,BSD 风格调用 /etc/rc,它们的目的相同,都是根据

2020-08-25 23:07:20 52

原创 Flume数据流监控--Ganglia

前言:Ganglia监控Flume比较鸡肋,花里花哨,页面也不好看,确实监控不到什么内容,因为根据Flume的架构原理,Flume是不可能丢失数据的,其内部有完善的事务机制,Source到Channel是事务性的,Channel到Sink是事务性的,因此这两个环节不会出现数据的丢失,唯一可能丢失数据的情况是Channel采用memoryChannel,agent宕机导致数据丢失,或者Channel存储数据已满,导致Source不再写入,未写入的数据丢失。Flume不会丢失数据,但是有可能造成数据的重复,

2020-08-25 20:09:36 27

原创 一文详解、解决IDEA中Maven工程中没有src、targe、new时没有class等

今天在IDEA中新建了一个maven工程,发现没有src、targe等以及新建Class时发件右键菜单里竟然没有Java Class选项!解决方法一:点击右键->Mark Directory as Sources Root,可以出现,但是当刷新Maven依赖时src、targe又会消失,这个方法不好。解决方法二:下图这个位置改为project,但是发现目录结构是出现了,但是发现不能new packages 或者 new class等,不行。解决方法三:找了一个小时,终于找到了正确的

2020-08-21 15:04:29 38

原创 一文秒懂Hive的两个组件Hiveserver2和Metastore server访问元数据的关系?及Cli命令行和beeline的关系

Hive不是数据库,不是数据库,不是数据库!一、Hive架构原理1)用户接口:ClientCLI(command-lineinterface)、JDBC/ODBC(jdbc访问hive)、WEBUI(浏览器访问hive)2)元数据:Metastore元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等;默认存储在自带的derby数据库中,推荐使用MySQL存储Metastore3)Hadoop使.

2020-08-17 21:11:19 176

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除