ThousandHu`s blog

千里之行 始于足下


  • 首页

  • 归档

  • 标签

atom 配置

发表于 2016-07-24
基础快捷键 cmd-shift-p 命令面板 cmd-shift-t shell命令行 cmd+p 查找文件 cmd+b 在打开的tab之间切换 ctrl-p 前一行 ctrl-n 后一行 ctrl-f 前一个字符 ctrl-b 后一个字符 alt-B, alt-left 移动到单词开始 alt-F, alt-right 移动到单词末尾 cmd-right, ctrl-E 移动到一行结束 cmd-left, ctrl-A 移动到一行开始 cmd-up 移动到文件开始 cmd-down 移动到文件结束 ctrl-g 移动到指定行 row:column 处 cmd-click 增 ...
阅读全文 »

利用zookeeperWatcher监控zookeeper node变化

发表于 2016-07-23
我们知识图谱(knowledge graph,简称kg)的数据是存在es和hbase里面的。如果有时候数据,尤其是hbase rowkey计算逻辑发生修改,就需要重做整个kg的数据,一般是建一个新的es index和hbase的表。为了能够让线上服务自动加载新的kg地址,我们是把配置写在zookeeper里面然后在kgclient启动一个zkwatcher来实时获得新的kg地址并重启kgclient。 zookeeperwatcher的基本知识zookeeper监听比较重要的两个类是ZookeeperWatcher和ZookeeperListener。Watcher是监听的接口,每个需要wat ...
阅读全文 »

深入解析yarn架构设计与技术实现-服务库

发表于 2016-07-22
来补课,之前看第三章觉得这一块不重要,今天看到第五章发现rm里面各种service,所以回来把这个基础库整理一下。 一般实现服务都是集成AbstractService,需要我们自己实现的是 serviceStart(): 抽象函数,继承他需要实现serviceStract serviceStop(), serviceInit()类似 AbstractService里面比较重要的成员变量有这么几个 statemodel: 标示这个服务是uninited,inited,started,stoped状态中的哪一个 listeners和globalListeners,外部调用监听这个服务。当调用 ...
阅读全文 »

Hbase 利用Bulk Load导入数据

发表于 2016-07-22
之前一段时间迁移机房,服务切到新机房但是机器还没完全搬过去,hbase集群压力很大,就将晚上全量导入hbase的方式改为了Bulk Load的方式。一般我们写hbase都是通过hbase的TableOutputFormat,但是这样需要频繁与regionServer通信,特别占用资源。Bulk Load方法就是先在HDFS中生成HFile,然后直接将文件move到对应的RegionServer。当region的边界改变时,hbase会自动split边界。当然如果有split的效率不会太高。 生成HFile生成HFile是直接通过mapper写指定格式的文件,mapper的key是Immutab ...
阅读全文 »

深入解析yarn架构设计与技术实现-yarn 应用程序设计方法

发表于 2016-07-17
yarn应用程序设计方法当需要讲一个新的程序运行在yarn上时,需要编写两个组件Client和ApplicationMaster: client负责向resourceManager提交ApplicationMaster,并查询任务云翔状态 ApplicationMaster负责向ResourceManager申请资源(以container形式),并与nodemanager通信以启动各个container。同时AM需要监控各个任务运行状态并在失败是为其重新申请资源 其中涉及三个RPC协议: ApplicationClientProtocol:Client与ResourceManager通信 ...
阅读全文 »

sqoop使用总结

发表于 2016-07-04
Sqoop 使用小结 sqoop是将数据从sql导到hadoop的工具,当然也支持部分hadoop到sql。具体的机制不讲了。这里记录一下用法。 sqoop常用命令有这样一些 12345678910111213141516usage: sqoop COMMAND [ARGS] Available commands: codegen Generate code to interact with database records create-hive-table Import a table definition into Hive eval ...
阅读全文 »

深入解析yarn架构设计与技术实现-hadoop rpc实例分析

发表于 2016-06-26
hadoop rpc源码阅读 董老师书里表示rpc最好的学习方法是自己实现一个c/s然后读一下源码。我这边没有去实现,不过我找了一个test,package org.apache.hadoop.ipc.TestRPC的testCalls这个测试实际上就是一个完整的rpc过程。 server建立server的建立是调用RPC.Builder().build()。通过setProtocol和setInstance把TestProtocol和TestImpl传进去。之后server.start()。 调用server.start之后,可以看到启动了好几个线程,比如server的listener之类的 ...
阅读全文 »

hadoop streaming实现分布式grep

发表于 2016-06-24
需求是这样的,我们是个数据仓库,线上数据最终查询结果有问题的时候就需要一步一步追溯数据生成。在写hbase的时候,为了提高效率,我们把数据计算和写入分成了两个步骤,第一步是计算数据,然后以key/value的结构写到一个sequenceFile里,然后在用另一个mr把生成的数据load到hbase。 于是为了验证我们中间这个sequence file的结果,我们需要把有问题那条grep出来,因为量非常大,肯定不能hadoop fs -text |grep,这里就利用了hadoop streaming来进行分布式grep。 hadoop streaming 支持调用各种脚本,也支持调用shell ...
阅读全文 »

深入解析yarn架构设计与技术实现-事件库与状态机

发表于 2016-06-24
事件库主要是通过dispatch分发,以AysncDispatcher为例。AsyncDispatcher有一个blockingQueue来缓存event。AsyncDispatcher服务启动时会启动一个线程,不断的去eventQueue拿任务并且分发。分发调用dispatcher线程,而这个dispatcher会根据任务的不同类型,将任务分发到不同的eventHandler。eventhandler是需要调用dispatcher的register函数进行注册的。分发任务去不同handler的过程就是调用handler的handle函数。这个函数有可能是做一些具体的处理,也可能是接受这个ev ...
阅读全文 »

深入解析yarn架构设计与技术实现-yarn rpc框架

发表于 2016-06-22
序列化Yarn中rpc模块采用protocol buffers做序列化;使用avro作为日志序列化库 RPC模型rpc跨越了OSI 7层模型中的传输层和引用曾,主要是用于让一台机器调用另一台机器的子程序时屏蔽网络通信细节。主要包含一下4个部分 通信模块:两个相互写作的通信模块实现了请求应答协议,一般不对数据进行处理,常见同步异步两种。 Stub程序。客户端均包含Stub程序,使得函数调用表现的跟本地调用一样。 在客户端,他表现的向本地程序,但是不直接执行本地调用,而是将请求发送给服务端,等服务端应答后解码。 在服务端,接收应答后解码,调用相应的过程,将结果编码返回 调度程序:接收通信模块 ...
阅读全文 »
1…345…10
ThousandHu

ThousandHu

千里之行 始于足下

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