大数据
山间浓雾有路灯,风雨漂泊有归舟
学无止境
展开
-
DataX中的数据交互源码探究
因为工作的原因,需要排查数据源端到目标端的数据是否丢失,正好有机会研究一下datax的源码.这里我们探索的oracleReader和kuduWriter的数据交互,其他的组件原理类似第一步:查看oracleReader端图中标红的地方就是我们开始探索的入口第二步:查看数据的查询和写入队列中这里面重点关注sendToWriter,经过日志的打印,我们知道该实现类是BufferedRec...原创 2019-12-12 11:07:25 · 363 阅读 · 0 评论 -
Kudu使用最佳实践以及踩坑记录
Kudu表结构设计最佳实践1.字段设计字段数量最好不要超过300个除主键外,其他字段可以为空每一个字段均可以设置自己的编码以及压缩方式Kudu1.7.0及其高版本,已经支持Decimal字段类型,适用于金融和特定的算数运算场景2.主键设计建表必须包含主键,主键字段必须列在Schema的最前端建表后,主键无法更改,只能重建表不支持自增列主键不能为空,并且不能为boolean...原创 2019-08-31 10:56:21 · 1571 阅读 · 0 评论 -
7.Spark Streaming
Spark Streaming是Spark核心api的一个拓展,可以实现高吞吐量/具备容错机制的实时流数据的处理Spark Streaming 与 Spark Core 的关系可以用下面的经典部件图来表述:基于Spark做Spark Streaming的思路第一步假设我们有一小块数据,那么通过RDD Api,我们能够构造出一个进行数据处理的RDD DAG第二步我们对连续的St...原创 2019-07-16 14:28:59 · 191 阅读 · 0 评论 -
Hive相关优化
map优化优化并发个数减少map数,合并小文件set mapred.max.split.size=100000000;单位b,代表一个map能处理多大的数据量set mapred.min.split.size.per.node=100000000;一个节点最少要处理多少数据set mapred.min.split.size.per.rack=100000000;set hive....原创 2019-07-16 14:19:22 · 141 阅读 · 0 评论 -
1.Spark的概述
Spark,是一种通用的大数据计算框架,正如传统大数据技术Hadoop的MapReduce、Hive引擎,以及Storm流式实时计算引擎等。先了解一下大数据的整体架构Spark包含了大数据领域常见的各种计算框架:比如Spark Core用于离线计算,Spark SQL用于交互式查询,Spark Streaming用于实时流式计算,Spark MLlib用于机器学习,Spark GraphX用...原创 2019-07-01 10:38:58 · 214 阅读 · 0 评论 -
Hive
是什么Hive是一个SQL解析引擎,将SQL语句转译成MapReduce Job,然后在Hadoop平台上运行,达到快速开发的目的。Hive中的表是纯逻辑表,表的定义(元数据)。本质就是Hadoop的目录/文件,达到了元数据和数据存储分离的目的Hive本身不存储数据,完全依赖HDFS和MapReduce,数据实际存在HDFS,元数据基本存在MysqlHive内容读多写少,不支持对数据的改...原创 2019-07-15 15:49:41 · 127 阅读 · 0 评论 -
HBase代码优化
Compression压缩数据量大,边压边写也会提升性能的,毕竟IO是大数据的最严重的的瓶颈,哪怕使用了SSD也是一样。众多的压缩方式中,推荐使用SNAPPY。从压缩率和压缩速度来看,性价比最高HColumnDescriptor hcd = new HColumnDescriptor(familyName); hcd.setCompressionType(Algorithm.SNAPPY...转载 2019-06-30 20:56:10 · 171 阅读 · 0 评论 -
浅谈大数据之HBase
HBase是一个开源的非关系型分布式数据库,参考了谷歌的BigTable建模,实现编程语言是java。HBase运行于HDFS文件系统上,同时有少量的数据存在自身的内存中,可以容错的存储海量稀疏数据,不能保证key就一定是有数据的。HBase的特性包含了:高可靠,高并发读写,面向列,可伸缩,易构建。HBase的优点:存储海量数据,快速随机访问,可以进行大量的读写操作(先写入内存再落地磁盘,所...原创 2019-06-30 20:50:11 · 783 阅读 · 1 评论 -
浅谈大数据之HDFS(2)
关于HDFS1.0的知识可以看看这篇文章浅谈大数据之HDFS(1)下面我们根据HDFS2.0的一些新特性,从HA(高可用)、Federatio(联邦)、快照、缓存、ACL(权限)等方面来聊聊HA(高可用)首先我们要知道HA,是为了解决什么问题呢?这是为了解决单点故障的问题,虽然HDFS1.0中有SNN(SecondaryNameNode),但是并不可靠,在HDFS2.0中,使用两个Nam...原创 2019-06-30 17:17:19 · 161 阅读 · 0 评论 -
浅谈大数据之HDFS(1)
先从HDFS1.0开始说起吧HDFS1.0由三部分组成,分别是NameNode,SecondaryNameNode,DataNode,如图所示下面针对几个组件详细讲解一下NameNode1.管理着文件系统命名空间,维护着文件系统树及树中的所有文件和目录2.存在于主节点上,存储一些元数据信息1)元数据存储在内存中,目的是为了快速响应请求,提高性能,但是也有一定的风险:关机重启时,数据丢...原创 2019-06-30 11:47:32 · 237 阅读 · 0 评论 -
6.Spark的wordCount原理解析
针对以下wordCount的实现原理以画图的方式进行分析代码 def main(args: Array[String]): Unit = { //配置基本信息 val conf = new SparkConf().setAppName("wordCount").setMaster("local") //程序入口 val sc = new SparkContext...原创 2019-07-10 16:39:07 · 250 阅读 · 0 评论 -
5.Spark的wordCount(java/scala)
在代码实现之前,先查看一下数据源是怎样的Preface“The Forsyte Saga” was the title originally destined for that part of it which is called “The Man of Property”; and to adopt it for the collected chronicles of the Forsyte...原创 2019-07-10 16:37:36 · 170 阅读 · 0 评论 -
4.Spark调优
在Spark中,每一个进程包含一个executor对象,一个executor包含一个线程池,每个线程执行一个tasks线程池的好处就在于省去了线程频繁启停的开销task并发度的概念1.每一个节点可以启动一个或者多个executor进程2.每一个executor进程可以有多个core组成,每一个core一次只能执行一个task,core是虚拟出的cpu,人为设定的,每次任务不能超过core...原创 2019-07-10 16:35:54 · 173 阅读 · 0 评论 -
3.Spark Core
Spark是基于弹性分布式数据集(RDD)的模型,具有良好的通用性、容错性与并行处理数据的能力那么什么是弹性分布式内存呢?内存即使再大也有放不下数据的时候,当达到一定的阈值的时候会写入磁盘,当然这个时候的性能会受到一定的影响RDD(Resilient Distributed DataSet)RDD是弹性分布式数据集(类似于集合),它的本质是数据集的描述(只读的,可分区的分布式数据集),而不是...原创 2019-07-03 08:58:01 · 113 阅读 · 0 评论 -
2.Spark与Hadoop的对比
上一篇文章—Spark概述:spark的概述这篇文章主要是与MapReduce和Hadoop的名词对比先从一张图了解下Spark和MapReduce的比较再从一张图了解一下Spark的运行原理从这张图我们再进一步进行分析Spark和Hadoop的区别Hadoop1.一个MapReduce程序就是一个job,而一个job里面可以有一个或者多个task,task又可以区分为map tas...原创 2019-07-03 08:54:30 · 211 阅读 · 0 评论 -
HBase集群参数配置优化
1.compact我们首先假设一个现象:当写请求非常多,导致不断生成HFile,但compact的速度远远跟不上HFile生成的速度,这样就会使HFile的数量会越来越多,导致读性能急剧下降。为了避免这种情况,在HFile的数量过多的时候会限制写请求的速度:在每次执行MemStore flush的操作前,如果HStore的HFile数超过hbase.hstore.blockingStoreFi...转载 2019-07-03 08:50:36 · 408 阅读 · 0 评论