
大数据
文章平均质量分 59
库昊天
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
存储计算分离初窥
什么是存储计算分离? 存储计算分离是一种分层架构思想,即将存储能力和计算能力分开,各自服务化,通过高速网络连接;以AWS的大护具架构为例,底层统一采用S3存储,存储层上架设各种计算引擎比如HIVE、Spark等,如下图所示:基于OSS构建数仓的优势海量的存储空间,可弹性扩展;极低的存储成本;支持多种计算引擎,目前OSS上数据支持如下计算引擎:开源的Spark、Presto、Drui...原创 2019-10-10 23:35:45 · 3104 阅读 · 0 评论 -
Flink --- 技术栈
技术栈部署方式Local本地模式:Flink部署在单个JVM进程上,主要用于调试(个人测试Debug,或者通过平台对外提供调试服务);原创 2019-01-17 21:49:06 · 1142 阅读 · 0 评论 -
FileSystem.get()方法解析
整体过程根据URI获取scheme信息;通过scheme判断是否使用缓存;如果不用缓存,则直接创建FileSystem;否则从缓存中获取;FileSystem创建过程首次使用时,通过ServiceLoader方法将FileSystem所有实现类加载到内存,并缓存所有的class对象;每次通过scheme获取文件系统对应的class对象,实例化和初始化;private stat...原创 2019-01-06 23:19:10 · 11590 阅读 · 0 评论 -
Hadoop --- 数据倾斜问题
数据倾斜现象 数据倾斜实质上是指数据分布不均匀。在利用HQL、Spark或MR等方式进行数据计算时,大量的数据被分配到某台或某几台机器上,导致分布于这些机器上的任务执行速度远低于其他机器,甚至出现被kill的情况。产生问题个别任务卡住,执行速度很慢;Hadoop常见的现象是,一个作业的个别Reduce任务卡在99.9%,很长时间处理不完。任务被kill掉;数据量大触发FGC,导致没有在设...原创 2019-01-17 09:55:46 · 607 阅读 · 0 评论 -
Flink---基本概念
流分类Unbounded streams:有起点没终点的数据流,对应的处理操作称为流计算;Bounded streams:有始有终的数据流,对应的处理操作称为批处理;TimeEvent Time:事件产生的时间;Ingestion time:事件进入Flink的时间;Processing Time:Flink开始处理事件的时间;Windows窗口大小 窗...原创 2018-12-18 13:58:32 · 354 阅读 · 0 评论 -
Flink---基本介绍
Flink介绍 Flink是Apache开源的一款流式计算框架,具有高吞吐、低延时、容错性好(能保障Exactly Once语义),以及能同时支持流处理和批处理的特点;Flink not only provides real-time streaming with high throughput and exactly-once guarantees, but it’s also an e...原创 2018-12-17 23:15:04 · 244 阅读 · 0 评论 -
Flink ---窗口机制
背景 在流计算中,数据流是无限的,无法直接进行计算,因此Flink提出了window的概念(若干元素的集合)作为流计算的基本单元进行数据处理。窗口机制 窗口机制实质上是Flink的算子operator对数据流的处理过程:数据流如何被拆分成window,何时触发计算逻辑等,如下图所示。 处理过程: 当数据流中的元素到达算子operator后,首先由WindowAssigner决定将该元...原创 2018-12-22 10:12:38 · 907 阅读 · 0 评论 -
Flink---WaterMark机制
背景 使用Event time时间模型时,由于网络或传输等原因,事件被Flink处理的顺序不一定是事件产生的顺序(乱序),可能会存在两方面影响:当前窗口不知道何时停止,开始计算结果;影响窗口计算结果的准确性,见示例;WaterMark机制 WaterMark本质上是一个带有时间戳的特殊event,当Flink中的运算符接收到水印时,它明白(假设)它不会看到比该时间戳更早的消息。 ...原创 2018-12-20 09:53:39 · 1073 阅读 · 0 评论 -
Flink---时间模型
时间模型 Flink提供了3种时间模型如下图所示,常用的为Processing time和Event time;Event time含义: 事件产生的时间, 反映了事件产生的先后顺序 ;注意:Event time是指产生事件的外部设备的时间,并非Flink机器上的时间;Event time需要从事件数据的特定字段获取;由于传输或网络的原因,Flink处理事件的顺序不一定与事件产...原创 2018-12-19 20:43:19 · 560 阅读 · 0 评论 -
HIVE HA方案
HA方案 HiveServer2集群依赖ZK实现了高可用,客户端先连接到ZK获取HiveServer2的地址,然后再与该地址建立连接,流程如下:优点:高可用(解决单点问题);负载均衡(ZK集群随机选择HiveServer2);缺点:无法自动故障恢复(当某台HS2宕机时,与其相连的client的session会丢失,需要依赖client的自动断连重试机制);参考:http...原创 2018-12-03 11:27:25 · 1110 阅读 · 0 评论 -
HIVE --- Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
现象 Hive启动命令可以正常执行,执行其它命令时报错,如下:原因 Hive元数据库没有初始化, 通过工具schematool初始化,如下: schematool -dbType mysql -initSchema元数据初始化成功后,数据库中会新增metastore_db数据库,如下:参考:https://blog.csdn.net/hhj724/article/deta...原创 2018-11-27 09:49:37 · 1055 阅读 · 0 评论 -
Hadoop启动及问题
启动方式//格式化namenodehdfs namenode -format//进入启动脚本目录cd $HADOOP_HOME/sbin//启动HDFS./start-dfs.sh//启动YARN./start-yarn.sh启动顺序 namenode --> datanode --> secondarynamenode --> resourcemanag...原创 2018-11-25 22:23:15 · 266 阅读 · 0 评论 -
Unable to load native-hadoop library for your platform
背景 Mac上安装Hadoop时,运行命令抛出错误:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable错误的意思是无法在当前平台上加载Hadoop相关的本地库。排查过程Step1:...原创 2018-11-23 10:01:11 · 706 阅读 · 0 评论 -
flink-forward-china-2018观后感
阿里对Flink的强力推动收购Flink母公司Data Artisans;开源内部版本Blink,作为Flink项目的一部分回归;除了承办峰会外,阿里会投入大量进入打造中文社区;蒋晓伟对下一代实时流计算引擎的看法 Spark和Flink二者都在努力发展成为批流一体的计算引擎,但是思路不同。Spark是批处理在基础上支持流,适合批处理的场景;Flink是在流的基础上支持批处理,适用于低...原创 2019-01-08 22:06:36 · 398 阅读 · 0 评论 -
Flink --- State
State是什么 流计算过程中的中间状态,具体而言,Source的消费位点等元数据,Operator的中间计算结果。为什么流计算需要State,而批处理不需要? 大多情况下,流计算可以看做是增量计算,即当前数据的处理是基于之前的计算结果进行的,因此需要保存中间的计算结果;批处理是一次性计算,要么成功要么失败,没有中间状态,因此不需要。State持久化存储 Apache Flink采用同步...原创 2019-01-19 16:17:10 · 257 阅读 · 0 评论 -
IaaS、 PaaS 和 SaaS
当前的云计算服务主要分为三个层次:IaaS、 PaaS 和 SaaS。 IaaS IaaS(Infrastructure-as-a-Service) ,硬件层面的基础设施服务,为用户提供服务器(物理机或虚拟机)、存储、网络和防火墙等最底层硬件资源;PaaS PaaS(Platform-as-a-Service) ,软件层面的基础设施服务,为用户提供操作系统、编程语言运行...原创 2018-08-27 11:53:02 · 387 阅读 · 0 评论 -
Lambda架构
业务需求 很多业务场景需要大数据系统既可以处理历史数据,又可以进行实时计算。比如电商推荐系统,当你在京东浏览商品时,京东会根据你的浏览、加车、收藏、删除等行为,实时为你推荐商品。要实现这个功能,推荐引擎首先需要根据历史数据预先离线计算推荐模型,然后从消息队列中实时拉取用户行为数据,结合两者,实时生成推荐结果;再比如智慧交通系统,需要对未年检、未报废等危险车辆进行实时预警,这就要求该系统预先根据...原创 2019-03-18 19:36:34 · 262 阅读 · 0 评论 -
OLTP VS OLAP
概念OLTP (On-line Transaction Processing):联机事务处理,注重的是每秒事务的处理速度和处理量,面向数据量小的场景,最典型的产品就是传统数据库;OLAP (On-line Analytical Processing):联机分析处理,侧重的数据的分析,支持多维度的复杂分析,面向海量数据量场景,用于数据挖掘和分析等,代表产品有Druid; OLTP (O...原创 2019-03-17 19:18:09 · 611 阅读 · 0 评论 -
Data Lake VS Data Warehouse
概念Data Lake:存储原始数据(未加工处理的数据,结构化和非结构化均可)的池子,后续根据具体的用途使用时加工处理;Data Warehouse:存储经过加工处理结构化的数据的仓库;A data lake is a vast pool of raw data, the purpose for which is not yet defined. A data warehouse is...原创 2019-03-17 17:59:38 · 1679 阅读 · 0 评论 -
Flink 基本使用流程
基本流程获取流的执行环境;设定数据源source;设定operator/数据转换;设定sink;执行程序;获取流的执行环境API获取 自动根据程序的所处的上线文环境创建合适的执行环境:本地执行环境或者以客户端的形式提交到远程服务端执行;StreamExecutionEnvironment.getExecutionEnvironment()Typically, you ...原创 2019-03-06 22:19:23 · 938 阅读 · 0 评论 -
Flink 单机模式部署
环境要求JVM:1.8及以上;JVM版本检查:java -version 或者echo $JAVA_HOMEJava编译器版本:javac -version低版本问题 Flink代码使用JDK8编译生成,而JVM版本低于8.x导致启动报错,如下:Exception in thread "main" java.lang.UnsupportedClassVersionError: ...原创 2019-03-05 16:17:09 · 2923 阅读 · 0 评论 -
HIVE --- Metastore
作用 存储数据库和表的元信息,比如结构定义、权限和统计信息等;Metastore is for storing schema(table definitions including location in HDFS, serde, columns, comments, types, partition definitions, views, access permissions, etc)...原创 2019-02-12 20:01:19 · 847 阅读 · 0 评论 -
Hadoop --- YARN架构介绍
基本介绍 YARN是Hadoop生态的一个重要组件,提供通用的资源管理功能。最初是为了将Mapreduce V1的资源管理与作业调度/监控分离,后来由于其通用性已经成了Hadoop生态的资源管理组件,如下图所示:架构图 典型的Master/Slave架构,Resource Manager为Master简称RM,Node Manager为Slave简称NM。RM为管控节点,接受任务并为任...原创 2019-02-14 21:38:22 · 359 阅读 · 0 评论 -
Hadoop --- 推测执行Speculative Execution
问题 MapReduce模型将一个作业分解为多个任务并行执行,以缩短执行时间。这种模型的特点是,整个作业的运行时间由最后完成的一个任务决定。如果少数任务运行缓慢,则会影响作业的整体进度。推测执行 任务运行缓慢的原因有很多,很难检测到具体原因。Hadoop提供了一种优化措施,当检测到某个任务运行缓慢时,Hadoop会启动另一个与该任务完全相同的任务,并最终选用最先成功运行完成任务的计算结果作为...原创 2019-01-16 14:58:06 · 677 阅读 · 0 评论 -
Flink --- Qos
Qos分类At Most Once:数据最多被处理一次,这种处理机制存在数据丢失的风险;At Least Once:数据最少被处理一次,存在数据重复计算的问题;Exactly Once:数据仅被处理一次,计算结果精准,代价是延迟增大;目前Apache Flink 支持At Least Once和Exactly Once两种Qos。适用场景At Least Once:实时性要求高,...原创 2019-01-20 16:33:39 · 267 阅读 · 0 评论 -
Flink --- 容错机制Fault Tolerance
容错 容错性(Fault Tolerance)是指系统对错误的容忍能力,即当运行过程中出现错误或异常时,系统能否继续正常运行(包括错误的自动检测及自动恢复等);Flink FT的难点快速恢复。流计算的特点就是低延迟,因此需要尽可能的降低问题恢复时间,做到用户无感知。保证Exactly-once语义。即问题恢复时,数据不被重复计算。FT机制:CheckpointSource: 定时...原创 2019-01-20 15:33:43 · 426 阅读 · 0 评论 -
Org.Apache.calcite.runtime.CalciteException: Failed to encode '全国' in character set 'ISO-8859-1’
CBO介绍 Hive从0.14.0开始引入CBO(Cost-Based Optimizer),对HQL查询语句进行性能优化,在Hive 1.1.0之后,默认开启。现象 HQL语句中包含中文,执行HQL时报错:Org.Apache.calcite.runtime.CalciteException: Failed to encode '全国' in character set 'ISO-885...原创 2019-01-14 19:45:48 · 4129 阅读 · 0 评论 -
Excel打开csv文件乱码问题
现象 UTF-8编码的文件,记事本、Sublime等打开正常,excel打开乱码,如下如所示:原因 csv文件没有UTF8 BOM头部,excel需要BOM头来识别文件的编码方式,如果没有声明,则会出现乱码的问题;解决方案 在文件的最前面添加UTF8 BOM头,如下:byte [] bs = { (byte)0xEF, (byte)0xBB, (byte)0xBF}; //UTF-...原创 2018-11-20 22:13:19 · 364 阅读 · 0 评论 -
HIVE --- 视图
什么是视图? 视图是一张“虚表”(只存在表的定义,不存储数据,表中逻辑上的数据来源于对其其它表的查询),如下图所示:视图的作用不同类型的用户存在不同的视图,方便精确的权限控制;查询语句变得精简;视图DDL创建视图 从创建语句可以看出,视图创建时就已经绑定了查询语句(即指明数据源和获取方式);CREATE VIEW [IF NOT EXISTS] [db_name.]vie...原创 2018-11-14 23:04:21 · 711 阅读 · 0 评论 -
HIVE --- Client介绍
HiveServer2支持多种类型的客户端,有Beeline、JDBC 、Python和Rubyd等客户端,下面介绍目前工作中用到的两种:Beeline和JDBC客户端;Beeline Beeline是HiveServer2的命令行终端。下面介绍几个常用的命令:登录: beeline -u jdbc:hive2://<host>:<port>/<db&g...原创 2018-11-08 23:01:19 · 2658 阅读 · 0 评论 -
HBase --- 读写流程(二)
Read Merge背景 随着时间的推移, MemStore会产生众多HFile文件,一方面需要对文件数量进行控制,防止资源浪费和耗尽;另一方面,需要对文件的数据进行合并,以提升读性能; Minor Compaction Minor Compaction是指将众多小的HFile文件合并成为若干较大的HFile文件,如下图所示: 优点:IO消耗小;缺...原创 2018-08-24 09:59:36 · 495 阅读 · 0 评论 -
B+树优缺点
优点单次请求涉及的磁盘IO次数少(出度d大,且非叶子节点不包含表数据,树的高度小);查询效率稳定(任何关键字的查询必须走从根结点到叶子结点,查询路径长度相同);遍历效率高(从符合条件的某个叶子节点开始遍历即可); 在B+树中, 由于底层的各个叶子节点都通过指针组织成一个双向链表, 结构如下图所示。 因此,只需要从跟节点到叶子节点定位到第一个满足条件的Key, 然后不断在叶子节点...原创 2018-08-21 10:47:45 · 21150 阅读 · 0 评论 -
HBase --- 读写流程(一)
整体流程读写流程主要分为两大部分:Client从MetaTable路由到Region所在的Region Server;Client直接与对应的Region Server进行交互; 路由表MetaTable MetaTable存储Region与Region Server的对应关系,其结构如下所示: 路由表的获取时机 Client 首次读写时会首先从Zoo...原创 2018-08-23 17:39:29 · 710 阅读 · 0 评论 -
HDFS数据副本
背景知识位于不同机柜的两台机器进行通信,需要通过交换机路由,增加延时;相同机柜内的网络带宽是要高于机柜间的带宽;整个机柜故障的概率远低于单台机器; Communication between two nodes in different racks has to go through switches. In most cases, network bandwidth betw...原创 2018-08-30 23:26:34 · 1162 阅读 · 0 评论 -
HBase --- 架构组成
整体架构 HMaster 主要负责HRegionServer的协调管理及Table的DDL操作(新增、更新和删除),HRegionServer的管理包含两方面:监控HRegionServer的运行状态(从ZK接受通知);Region的分配(HRegionServer扩容、宕机及负载均衡等情况);ZookeeperHMaster的HA解决方案(主备切换、M...原创 2018-08-23 15:40:53 · 320 阅读 · 0 评论 -
HDFS架构
HDFS介绍HDFS是Hadoop的分布式文件系统,具有高吞吐高容错性等特点,具体如下:集群容错性好:HDFS设计之初,就考虑到集群规模变大出现硬件故障的概率就会变大的事实,通过数据的备份机制来提升集群容错性;高吞吐量:主要原因有两个,一方面,设计之初就提倡批处理;另一方面,简化了数据一致性模型,一个文件一旦经过创建、写入和关闭后,就不需要修改了;HDFS架构Dat...原创 2018-08-30 17:09:16 · 193 阅读 · 0 评论 -
HBase --- 数据模型(二)
逻辑表与物理存储一张逻辑表被水平拆分成多个Region,存储在不同的RegionServer上,如下图所示: 每个Region按CF维度进行垂直拆分,每个CF对应多个HFile(LSM树原因),存储在HDFS上,如下图所示: 参考:https://mapr.com/blog/hbase-and-mapr-db-designed-distribution-scale-...原创 2018-08-23 12:33:59 · 172 阅读 · 0 评论 -
HBase介绍
出现背景 传统的关系型数据库适用于OLTP类业务,但是存储容容量和计算能力无法任意水平扩展,不适合于大数据场景;HBase介绍 HBase是构建于Hadoop之上的NoSQL数据库,具有分布式、易扩展和高性能特点;特点1:分布式 逻辑上一张BigTable被水平拆分成多个Region,分布在多台机器上,如下图所示: 特点2:易扩展只需添加Regio...原创 2018-08-23 11:43:48 · 391 阅读 · 0 评论 -
Hive --- 表类型
Managed Table(内部表/管理表)管理表有如下特点:表数据存储在管理表的存储目录下;删除管理表时,元数据和表数据都会被删除;External Table(外部表)Partitioned Table(分区表)...原创 2018-08-17 18:01:08 · 1179 阅读 · 0 评论 -
HBase --- 数据模型(一)
数据模型Row每行被RowKey(行键)唯一标识;行按照RowKey的排序结果(字母顺序)进行存储; A row in HBase consists of a row key and one or more columns with values associated with them. Rows are sorted alphabetically by the row...原创 2018-08-20 09:49:57 · 493 阅读 · 0 评论