ThousandHu`s blog

千里之行 始于足下


  • 首页

  • 归档

  • 标签

hello 2

发表于 2017-05-30
hello from my new laptop. 本文链接:http://thousandhu.github.io/2017/05/30/hello-2/
阅读全文 »

大型网站技术架构读书笔记

发表于 2017-01-23
第二章 大型网站架构模式模式的关键在于模式的可重复性,问题与场景的可重复性带来解决方案的可重复使用(类似于设计模式中的模式)。 2.1 网站架构模式2.1.1 分层将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。 在大型网站架构中也采用分层结构,将网站软件系统分为应用层、服务层、数据层等。 优势:便于分工合作开发和维护 挑战:必须合理规划层次边界和接口,以及在开发过程中要严格遵循分层架构的约束,禁止跨层次的调用以及逆向调用。 2.1.2 分割在纵向方面对软件进行切分。分割形成高内聚低耦合的模块单元。 2.1.3 分布式对 ...
阅读全文 »

memory management in apache spark

发表于 2017-01-17
这个talk依次从整个memory between execution and storage,memory across task的角度和memory across operators running within the same task的角度分析了spark如何使用内存。同时简单介绍了project tungsten how to arbitrate memory between execution and storage?首先普及一下基本概念。spark有两种memory Execution memory: used for shuffles joins sorts and ag ...
阅读全文 »

structuring apache spark 2.0

发表于 2017-01-17
spark2.0有一个很重要的趋势,就是推动大家使用structure的api,比如dataframe/dataset,以及新推出的structure streaming。spark submit 2016上有两talk介绍了spark2.0在structure方向的一些进展。 Structuring Apache Spark 2.0: SQL, DataFrames, Datasets And Streaming - by Michael Armbrust相比于直接使用rdd,structure rdd的表现能力是不如rdd灵活的,但是易用性比rdd强。同时structure使得系统更容易对 ...
阅读全文 »

GFS

发表于 2016-12-07
GFS 阅读笔记 设计预期设计预期往往针对系统的应用场景,是系统在不同选择间做balance的重要依据,对于理解GFS在系统设计时为何做出现有的决策至关重要。所以我们应重点关注: 失效是常态 主要针对大文件 读操作:大规模流式读取、小规模随机读取 写操作:大规模顺序追加写,写入后很少修改 高效明确定义的并行追加写 稳定高效地网络带宽 整体设计1、系统架构GFS主要由以下三个系统模块组成: Master:管理元数据、整体协调系统活动 ChunkServer:存储维护数据块(Chunk),读写文件数据 Client:向Master请求元数据,并根据元数据访问对应ChunkServer的Chu ...
阅读全文 »

MIT 6.824 lab1

发表于 2016-11-22
lab 1主要实现一个简单的mapReduce,它主要有四个部分 Part I: Map/Reduce input and output第一部分主要是实现doMap和doReduce两个部分。对于每一次调用,map端做这么几件事情: 读取内容 生成map result的临时文件 将不同的key的结果存入不同的文件,存入哪里由key%ihash决定 doReduc做这样几件事情: 读取map的结果 对于key进行排序。(这里简单粗暴的做了内存排序,没往磁盘split) 调用reduce并且将结果存入文件 Part II: Single-worker word count实现workcou ...
阅读全文 »

知识图谱在姨搜的实现

发表于 2016-11-20
知识图谱在姨搜的实践知识图谱这个概念最早由Google于2012年提出,主要是通过从语义层面理解用户的意图,从而改进搜索质量。比如在Google的搜索框里输入creditease(宜信)的时候,搜索结果页面的右侧还会出现creditease相关的信息,比如公司地址等。这些关于宜信的信息,就是通过知识图谱提供的对于查询的理解能力和对查询的实体的知识展示的。在金融相关领域,利用知识图谱,我们可以很方便的分析实体以及实体之间的关系,从而提供强大的风控能力和客户管理能力。本文将从为什么需要知识图谱、知识图谱的表示、知识图谱的应用以及知识图谱在姨搜的实现四个方面来谈谈知识图谱在姨搜的实践。 为什么需要 ...
阅读全文 »

spark on yarn

发表于 2016-11-15
spark on yarn有两种模式。在cluster模式下,driver是运行在ApplicationMaster上的,而client模式下则是运行在用户提交spark任务的那台机器上。 Yarn和standalone的架构其实是对应的,下表给出了两者的对应关系 Standalone YARN Client Client Master ApplicationMaster Worker ExecutorRunnable Scheduler YarnClusterScheduler/YarnScheduler SchedulerBackend YarnClust ...
阅读全文 »

spark读取hbase遇到的问题

发表于 2016-11-03
我们的程序会从Table1中取出数据,对每一行将其中的几列(这里用A和B)算出一个新的rowkey,并对整个数据做一些转换,之后以rowkey为key插入Table2中去。如果Table1中一行的数据不同时包含A和B,我们会丢弃这条数据。经过一段时间的运行,我们发现程序会出现丢数据的情况,大概30000万行会丢失1万行左右。并且该情况可以复现。 开始时我们怀疑是程序转换过程中出的问题,但是经过排查,发现在数据从hbase中load出来时一行数据就已经可能缺失。我在load时判断几个关键的列A,B,C,D是否存在,不存在时就将该列补充为“empty”,然后不作处理直接将load的数据写入hbas ...
阅读全文 »

spark2.0源码阅读-standalong模式部署

发表于 2016-10-25
standalong模式stangalone模式是spark自己部署自己在集群上的一个模式。 其中client模式下driver运行在提交任务的机器,cluster模式下运行在cluster内部的某个worker上,只能独自运行。executor不是在worker启动时启动的,而是一个新的application来时才启动的(master调用startExecutorsOnWorkers())。 集群启动流程集群启动主要是启动master和worker 12./sbin/start-master.sh./sbin/start-slave.sh [masterURL] 启动master和work ...
阅读全文 »
12…10
ThousandHu

ThousandHu

千里之行 始于足下

91 日志
49 标签
github zhihu 微信公众号:thousandhu学架构
© 2015 - 2017 ThousandHu
由 Hexo 强力驱动
主题 - NexT.Mist