
大数据
KDLin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HBase读写流程
写流程这里主要考虑两件事:RegionServer保存不同范围的Region,那么我想读写数据的时候,我怎么知道Region和Server的映射关系,即我怎么知道我要的Region保存在哪个Server上呢? MemStore刷写回StoreFile的时机是?回答第一问题,答案是,把映射关系保存在一张meta表中,meta表保存在其中一个节点。那问题又来了,meta表我怎么知道它存在哪里呢?答案是,meta表的meta表保存在zookeeper约定位置处~所以,写...原创 2020-12-25 09:24:51 · 154 阅读 · 1 评论 -
HBASE完全架构
架构原理2020年12月22日10:00基本架构中忽略了一个关键问题——IO效率如何保证?效率问题,具体应该是这样。我们知道顺序IO是可以非常快的,但数据库若顺序写入——要知道,HBase中,以插入新值代替更新,那么就必然会造成硬盘上的数据是乱序的。此时有两种常见的选择方案,这是两种通用的思想:乱序存储 + 索引,分布式环境,例如HDFS目录树本质上就是一个索引,但这种索引不能太复杂,对于数据库来说,索引需要复杂、并且经常维护 排序 + 顺序存放,虽然排序是件很可怕的事,.原创 2020-12-25 09:24:16 · 102 阅读 · 0 评论 -
Kafka API
Kafka API一、消息发送流程Kafka消息发送采用异步发送机制。main线程负责将消息经过拦截,序列化,分区,然后提交到RecordAccumulator RecordAccumulator是共享数据的数据结构 sender线程则负责从共享数据中拉取数据二、自定义生产者和消费者使用就是配置+send/get比较重要的是理解消息发送流程,如何考虑生产者和消费者同步问题,结合消息发送流程理解。生产者使用...原创 2020-12-18 10:12:48 · 287 阅读 · 1 评论 -
深入理解kafka原理和细节
一、kafka架构、存储原理引言对于网络应用来说,网络数据传输延迟是不确定的,这种时候同步消息机制(即阻塞等待响应)就太慢了,所以需要异步通信机制。既然所有框架都有同样的需求,那自然需要一个专门处理异步通信的框架,即实现消息队列(MQ),这就是Kafka。kafka基础架构kafka基于发布订阅模式,请求交给MQ队列,MQ队列负责代理请求的发送和响应信息的接收。大数据框架中这种信息交流的可靠性要求很高,因而消息会被kafka持久化。多个订阅者(消费者)即从kafka...原创 2020-12-17 09:38:32 · 438 阅读 · 1 评论 -
Flume入门以及常见分布式架构搭建
Flume引言大数据要解决三件事,存储,传输,计算。Flume的定位是在传输这一块,其需求是采集不同框架,集群的日志,要求是高可靠性。比如后端程序一般不和大数据框架部署在同一个集群,但是作为数据平台,我们需要事实获取到相关程序的日记、记录、数据等等,例如电商系统,用户点击的瞬间已经开始计算下一次推荐。基本架构flume的基本存在是一个Agent,这是一个jvm进程 通过三个模块来管理数据传输的功能,分别是source,负责输入源对接,sink负责输出目标对接,chann..原创 2020-12-07 19:49:08 · 441 阅读 · 1 评论 -
MySql进阶,索引,B-Tree以及索引优化
MySql2020年11月9日14:06MySql架构2020年11月8日20:19从来没有思考过MySql的架构,了解了一下看来,MySql的架构是挺简洁的。下图已经非常清楚,比较值得注意的就是存储引擎的选择,不通过存储引擎的设计不同,导致影响数据表存取的并发性能、存取方式。此外,该架构中的典型设计。连接池,管理连接,由于这类连接通常是资源消耗较大的,而单一实例又完全不够用,所以一般是有一个连接池,可以看成空闲队列,资源池 缓存,内存管理中典型的cache..原创 2020-11-09 15:13:34 · 149 阅读 · 0 评论 -
Hadoop优化的纸上谈兵
Hadoop优化的纸上谈兵2020年11月6日9:15不考虑硬件的原因,大致的优化策略有以下:数据倾斜, 找到更好的分区方法, 或者启用合理的combine Map和Reduce数设置不合理, 例如,太多了会崩掉 Map运行太长, 导致Reduce等待太久, Map任务通常非常多, 应该设定Reduce开始时间, Map和Reduce并行执行. 小文件过多, CombineTextInput spill(溢写)次数过多, 增大collector容量 merge次数, 增大megre原创 2020-11-07 09:44:57 · 112 阅读 · 0 评论 -
任务时间推测及备用任务
任务时间推测及备用任务2020年11月6日9:08考虑到某些任务执行太慢,会拖慢其他任务,这时需要启用备用任务.这里边的问题在于,如何判断任务执行太慢? 答案是, 通过历史任务的执行时间来预测当前任务的时间.算法这是一个非常简单的算法....原创 2020-11-07 09:43:50 · 294 阅读 · 0 评论 -
Mapreduce 压缩相关
压缩2020年11月6日8:44为了减少带宽,减少IO,对数据进行压缩,在适当的时候,是有必要的。常见压缩格式 格式 速度 压缩比 可切分 缺点 场景 Gzip 比较快 比较高 不可 不可切分 Bzip2 ..原创 2020-11-07 09:43:17 · 94 阅读 · 0 评论 -
深入理解Yarn工作机制
深入理解Yarn工作机制2020年11月5日21:10在YARN架构中,描述过Yarn的架构。从工作流程考虑可以帧转理解整个架构。Application申请 Mr程序向RM申请Application,同时返回临时提交路径 Mr程序将Jar包,切分信息提交到临时路径 申请运行Application AppMaster启用 MR任务提交到MR的队列中 空闲NM向MR领取任务,创建容器,运行AppMaster下载job资源到本地 然后向RM申请运行M...原创 2020-11-07 09:42:28 · 186 阅读 · 0 评论 -
Mapreduce工作机制深度解析
Mapreduce工作机制深度解析2020年11月4日19:55Mapreduce整体的编程框架看起来非常直观,就是Map和Reduce两个阶段,但事实上有很多问题,细细想来其实并不容易。例如,我一开始学习wordcount的一些疑惑:文件如何切分?数据源虽然只有一个,但是hadoop可是分布式的系统,这个文件可能存于多个节点上。其二,文本按行切分可以理解,但若输入数据不是一行一行的文本呢,由谁控制? Reduce接收wordcount的k,v组的时候,其实是一组一组发过来的,..原创 2020-11-04 21:32:03 · 325 阅读 · 1 评论 -
Hadoop 序列化理解
序列化2020年11月1日8:54引言有些时候我们需要传输内存中的对象,例如通过网络传输封装好的数据实体。我们知道,数据传输最终都是二进制的形式,对象也是如此,将对象转成二进制数据就是序列化,反之,将二进制数据转成对象就是反序列化。其中的核心问题在于,底层二进制码转为为对象,jvm如何知道二进制码哪里对应哪里,尤其是自定义类型,它如何找到类模板?这就要求类必须实现序列化的接口,Java中的基本类型都是实现了序列化接口的,而自定义的类则需要实现序列化和反序列化的操作。Java中的.原创 2020-11-01 09:12:07 · 163 阅读 · 0 评论 -
浅谈Mapreduce
Mapreduce2020年11月1日8:24引言这是一个编程框架,由框架负责并行任务执行,由你负责编写任务单元分解,任务合并业务。Mapreduce的编写分为三大部分:mapper 数据按行输入,mapper负责处理行数据,将行数据分解成一个或多个基础单元。行数据由框架对源数据格式化后提供 reducer 大量mapper分解得到的基础单元集,由reducer进行合并,如何合并,合并算法。 driver 负责任务配置 主要任务是指定mapper和redu.原创 2020-11-01 09:11:26 · 170 阅读 · 0 评论 -
HDFS, 读写流程
HDFS上传上面的步骤标得都特别清楚了:按块申请 返回DN群,用于多处副本 在多个DN中建立串联通道,注意是串联的。 在写入buffer之后,同时做本地持久化和备份副本选择副本选择策略也蛮简单的,基本方式是按距离优先。在网络拓扑中如何定义距离呢?答案是基于拓扑的节点路径。上图详细描述了3副本的情况下的节点选择,可以很清楚的地看到,第三个副本需要找到其他支架,这显然是为安全考虑。而副本之间选择不同节点则是为了并发读写的性能考虑。HDFS下载下载更加简单:.原创 2020-10-02 19:44:39 · 92 阅读 · 0 评论 -
HDFS, Java操作API
使用API之前需要在window部署hadoop编译之后的依赖环境,增加环境变量,然后重启这种操作性的框架API是非常简单的,都大体上就是:拿到对象 进行操作 关闭对象此处给出源码,应该非常好理解,junit的@before和@after非常好用,是一种类似代理的实现,他们会在@test之前和之后分别得到运行,可以用来做对象初始化以及关闭对象。publicclassHdfsClient{privateConfigurationcfg;privateFileSystemfs...原创 2020-10-02 10:03:47 · 108 阅读 · 0 评论 -
HDFS,NameNode架构
2020年10月1日09:14HDFS架构基本架构NameNode 管理命名空间 配置副本策略 管理数据块,读写请求 DataNode 只负责数据块存取 Client 文件切分 发送请求 优缺点:不适合低延迟数据访问,不适合小文件,只能追加不适合修改 可以构建在大量廉价机器上,多副本机制,自动恢复基本命令使用hadoop fs -put ./readme.txt,类似的形式,基本就是普通命令加上hadoop fs本地-&g...原创 2020-10-02 10:01:19 · 156 阅读 · 0 评论 -
Hadoop集群部署(三),集群时间同步
集群中的节点需要设置时间同步。这很自然,因为多节点协作,我们希望它们在时间上是同步的。解决方案就很简单了,只保留一个节点作为时间服务器,其他两个节点从该节点得到时间。步骤所有节点停止并永久关闭ntp服务,注意每个发行版的命令不同,这里基于centos6.8 su, 避免麻烦,直接进root service ntpd stop chkconfig ntpd off 在其中一个节点配置ntp,这里配置101主机 vim /etc/ntp.conf restrict 1...原创 2020-10-02 09:57:10 · 220 阅读 · 0 评论 -
Hadoop集群部署(二),小型集群部署
整体规划 hadoop101 hadoop102 hadoop103 HDFS NameNode DataNode DataNode SecondaryNameNode DataNode YARN NodeManager ...原创 2020-10-02 09:55:25 · 718 阅读 · 0 评论 -
Hadoop集群搭建(一),xsync和xcall脚本编写
准备,集群配置脚本2020年9月29日多节点操作脚本,同步文件以及命令,非常方便。方法是通过脚本借助ssh,rsync同步文件,同步命令xsync其实核心就是 rsync,通过遍历指定的host完成同步xcall核心同样了遍历指定的host,执行ssh远程命令注意无法使用sudo命令的话,需要手动在/etc/sudoers文件中修改...原创 2020-10-02 09:46:07 · 432 阅读 · 0 评论 -
Hadoopd的体系架构
HDFS架构NameNode,元数据,消耗资源 DataNode,保存数据 Secondary NameNode,定期备份NameNodeYARN架构工作流程:client提交任务,像ResourceManager(RM)发出申请,整个集群能干多少事,RM负责 RM找到有空的Node Manager(NM), 每个Node Manager分管单个节点上的资源,NM还能干多少事需要给RM汇总 NM接洽client, 找来(新建)项目负责人,App...原创 2020-10-02 09:43:03 · 293 阅读 · 0 评论 -
ubuntu远程管理,ssh,关闭图形界面
ubuntu静态IP,ssh2020年9月15日18:40自行加上sudo,ubuntu 20的配置相比16有一些不同。在NAT模式下,原理都是一致的。即vmare在window虚拟网卡,虚拟网卡连接虚拟路由器(网关),虚拟机连接虚拟路由器 准备 更新apt,apt-get install update,apt-get install upgrade 安装vim,ifconfig,apt-get install vim,apt-get install net-tools 安装开启s原创 2020-09-15 18:55:37 · 825 阅读 · 0 评论 -
JavaWeb Review
JavaWeb2020年9月4日21:46简单复习。HTML结构,CSS样式:主要是选择器 JavaScript动态网页响应,jQuery建立在css选择器上的语法 Tomcat服务器部署软件,在ide中部署 Servlet复制处理浏览器发来的请求 Web.xml,Servlet配置文件,存在的意义是映射浏览器发来的申请,将每个申请对应到相应的Servlet——否则我(服务器)怎么知道哪个请求对应谁! 上述代码的的逻辑是,先根据地址中/loginServ...原创 2020-09-09 21:46:02 · 209 阅读 · 0 评论 -
JVM一览
2020年9月1日21:29 目录 - - 认识JVM - 类加载器 - JVM的内存模型 - 3.1 Execution Engine - 3.2 本地方法栈,PC寄存器,方法区 - 3.3 栈 - 3.4 堆 - 堆结构 - 4. JVM参数设计 - 5. GC - 5.1 标记不可达对象 - 5.2...原创 2020-09-09 21:45:23 · 162 阅读 · 0 评论 -
Maven入门,基础概念和一些想法
2020年9月7日21:401. 为什么使用Maven?自动添加第三方jar包,所有项目共享jar库,提供坐标引用 自动解决包之间的依赖 规范化第三方jar包,使用同一的线上仓库管理,使用统一的接口管理 将项目拆分成多个工程模块,大型项目已经不是使用project或者package可以管理的了,每个模块可能需要发布在不同的服务器上 自动化构建,这里有非常好的例子帮助理解其实上述环节我们在Idea中都可以找到对应的操作,只是不太标准。那么既然IDE已经可以进行构建了我们为什么...原创 2020-09-09 21:44:40 · 152 阅读 · 0 评论