
Hypertable
文章平均质量分 69
c77_cn
这个作者很懒,什么都没留下…
展开
-
Hypertable在Delete命令后执行Insert命令时应该注意的问题
Delete命令适用于一个单独的row,对于指定的row,它可以删除一个CQ的所有CELL,一个CF的所有CELL,或者一个row的所有CELL。如果指定了TIMESTAMP子句,将会删除TIMESTAMP小于或者等于给定值的CELL。否则,将自动分配当前时间作为TIMESTAMP子句。 Delete在删除时,将会插入一个删除标记,即此时为逻辑删除。删除标记持久的存在于库中,除非一个原创 2012-11-11 19:36:14 · 1056 阅读 · 0 评论 -
Hypertable工具之serverup
命令:serverup [options] 该命令检测指定的服务器上server-name指定的服务是否启动,启动返回true,否则返回false。server-name可为下列之一:dfsbroker, hyperspace, master, global-master, rangeserver, thriftbroker。其中:master特指检测本机上是否运行master服务;globa原创 2014-05-21 14:14:57 · 793 阅读 · 0 评论 -
Hypertable工具之csdump
命令:csdump [options] 该命令导出位于DFS中指定名称的CellStore文件的内容。Options: -a [ --all ] Dump everything, including key/value pairs -c [ --compact ] Only prints the cellstore name and a status ('ok' or 'c原创 2014-05-21 14:12:20 · 757 阅读 · 0 评论 -
Hypertable工具之random_write_test、random_read_test、ht_write_test、csvalidate
1. random_write_test命令: random_write_test [options] 该命令用于测试hypertable的写入速度。它将产生随机数据插入到表RandomTest中,插入数据的value总长度为total-bytes。RandomTest表必须提前创建于namespace”/”下,并且只有一个名称为Field的CF。产生的row和value都是随机的AS原创 2014-05-21 14:23:54 · 2431 阅读 · 0 评论 -
Hypertable源码解读之Hypertable.lib目录
1. Class MetaLog:: Entity一个metalog entity能关联到一个应用程序,并能被持久化到metalog中。metalog entity对象能在metalog的读写API中传入和传出。应用程序对象能包含一个继承自该类的成员对象,用于持久化应用程序的专题。应用程序对象也能直接继承该类,这样应用程序对象就可以直接将自己传入到metalog的API了。2. Cl原创 2014-05-21 14:45:17 · 685 阅读 · 0 评论 -
Hypertable的Meta Log和Commit Log
Meta Log描述了该台RS管理的Range,以及Range的操作,例如分裂、传输等操作。Commit Log存储了用户需要写入Hyperable的数据,并且周期性的会和Cellstor文件进行Compaction。 Hypertable在HDFS上保存了两种Log,存储的目录结构如下./hypertable/servers/master/log/mml//Master的M原创 2013-04-23 14:59:52 · 884 阅读 · 0 评论 -
Hypertable工具之ht_rsclient
1. ht_rsclient命令:ht_rsclient [rangeserver_ip:port]。Ht_rsclient命令可连接至任意一台RangeServer,并在该台RangeServer上执行下列命令:COMPACT ............... Schedules range compactionsCREATE SCANNER ........ Creates a原创 2014-05-21 13:59:29 · 795 阅读 · 0 评论 -
Hypertable工具之Hyperspace
命令:hyperspace [hyperspace_ip:port]。hyperspace命令可连接至hyperspace,并执行下列命令:mkdir ............. Creates a directory in Hyperspacemkdirs ............ Creates all paths leading upto and includingdirec原创 2014-05-21 14:04:00 · 852 阅读 · 0 评论 -
Hypertable运维中遇到的问题
1.failed expectation: insert_result.second问题描述:原创 2014-05-21 16:59:35 · 1966 阅读 · 0 评论 -
Hypertable源码解读之RangeServer启动过程
Main函数中首先创建一个ConnectionManage对象,用于维护与rangeserver通讯的TCP连接。再创建一个默认大小为50的应用程序队列(ApplicationQueue),用于存放针对rangeserver的请求事件。然后连接hyperspace,创建HyperSpace::Session对象。最后用ConnectionManage对象指针、应用程序队列指针和HyperSpace原创 2014-05-27 13:44:24 · 810 阅读 · 0 评论 -
Hypertable源码解读之Hypertable.RangeServer目录
1.1. Class global维护了rangeserver进程的全局变量.其中有几个队列需要区分:global::maintenance_queue:MaintenanceQueue类指针,表示 rangeserver的后台维护任务队列;global::work_queue:MetaLog::EntityTask类指针数组,表示一组针对rangeserver的metalog ent原创 2014-05-27 13:42:07 · 950 阅读 · 0 评论 -
Hypertable源码解读之数据写入客户端逻辑
数据写入逻辑分为客户端和服务器端,下面jianshu客户端缓存需要写入的cell集合,按其key所属的rangeserver进行区分,即将key落入同一rangeserver的cell分为一组,每组又按照不同的range进行区分。当commit时,隶属不同rangeserver的cell集合将被异步的发送到对应的rangeserver。客户端只有等到所有异步请求的响应之后,才能进行下一轮的写入原创 2014-05-27 13:48:14 · 608 阅读 · 0 评论 -
Hypertable工具之metalog_dump
命令:metalog_dump [options] 该命令可以导出指定的MetaLog文件的内容,也可以导出指定目录下所有MetaLog文件的内容。该命令只能操作MetaLog,不能操作Commit Log,即只能操作mml(适用于master)和rsml(适用于RangeServer)目录或其中的文件。MML(Master的MetaLog)记录了Master维护META数据的过程,例如:原创 2014-05-21 14:09:57 · 799 阅读 · 0 评论 -
Hypertable工具之dumplog
命令:dumplog [options] 该命令导出指定目录下所有Commit Log文件的元数据(This program dumps the given log's metadata.)。它只能操作Commit Log,而不能操作MetaLog,即只能操作log目录下的root、metadata、system和user子目录。该命令只能对一个Commit Log目录进行操作,不能对单个Co原创 2014-05-21 14:07:02 · 917 阅读 · 0 评论 -
HQL的“DUMP table”语句应该注意的问题
“DUMP table”语句可以从表中导出CELL数据,保存为本地或者DFS上的文件。使用“file”关键字表示导出到本地(默认值),“dfs”关键字表示导出到DFS。可以导出全表数据,也可以使用Where子句导出部分数据。Where子句可以跟row、value和timestamp条件,但是row和value只能使用正则表达式。以下是导出数据的几种典型用法:dump table foo原创 2012-11-19 22:47:46 · 738 阅读 · 0 评论 -
Hypertable的automatic Counter
Hypertable的automatic Counter可以实现自动的原子计数器,即将一个Column Family定义为counter,例如:create table foo(f counter)。此时,此Column Family中所有Column Qualifier的Value将为一个64位的无符号整数,并且对其的插入,将自动按照key进行加减,即使前后两次写入的Cell的key和tim原创 2013-03-04 09:10:00 · 576 阅读 · 0 评论 -
可能导致Hypertable启动慢的原因
集群中发现了一个问题:/hypertable/servers/rs1/log/user目录下有上百个文件,并且其余rs的相同路径下也是如此。然后集群重启时,Hypertable不紧不慢的回放着CommitLog,粗略估计了一下,平均一个CommitLog文件的回放需要至少一分钟,整个集群重启时间竟然需要数个小时。 Hypertable在早期的版本中存在一个bug,其会阻止后台mainten原创 2013-03-04 22:14:39 · 613 阅读 · 0 评论 -
Hypertable的升级安装
原文地址:http://hypertable.com/documentation/installation/upgrade/。因为Hypertable的独立安装模式较为少见,故原文中独立安装模式部分没有翻译。验证版本间升级兼容性为了判断已安装的版本和欲升级到的版本之间是否兼容,需要使用官方提供的脚本(ugrade-ok.sh)进行验证。脚本用法如下:$ /opt/hyper翻译 2013-03-10 14:02:35 · 753 阅读 · 0 评论 -
Hypertable执行select语句的基本思路
Hypertable执行select命令时,操作主要集中在Rangeserver上,Client也会参与部分操作,但是Master不会涉及任何的读写数据的操作。 Hypertable的Client相当的“肥胖”,它缓存了一份range和RangeServer的映射关系列表,这个映射关系由LocationCache类维护。类中使用一个链表保存所有缓存的range,并使用一个map对缓存原创 2012-11-11 20:33:43 · 1206 阅读 · 0 评论 -
Hypertable的Failover(故障迁移)
Master的Failover多master配置:1.在需要启动master进程的机器上都安装gcc gcc-c++ make cmake 、zlib zlib-devel openssl openssl-devel 、yaml 、ruby 、gems 、rrdtool2.配置capfile,增加master机器 role :master, "cent1", "cent2",原创 2013-06-12 15:13:53 · 628 阅读 · 0 评论 -
Hypertable查询语句的scan_and_filter_rows选项解析
在where子句后有大数量的row="" 的条件时,使用该选项可以提高查询性能。因为默认情况下,每个row条件会起一个异步的查询,每个查询都需要进行一次网络的往返。而该选项会将所有的row条件先进行排序,然后以最小的row作为条件启动一个异步查询,即获取最小的row所在的range。如果该range中没有包含所有的 row,则下一个异步查询将从最新的row开始。 上面的说法可能有原创 2013-09-04 13:24:28 · 1230 阅读 · 0 评论 -
hypertable使用小记,持续更新中。。。
Hypertable数据查询时的显示次序:按rowkey升序显示;Cf按照表格创建时指定的次序显示;Cq按名称升序显示;value按照插入的次序倒序显示。 Cf索引和cq索引:cf索引:按照cf的value进行排序,value相同的,按照rowkey进行排序。多个cf索引按照索引次序进行分组,第一个索引序号为1,后续索引序号依次类推。cq索引:按照cq名称进行排序,名称原创 2012-11-04 10:02:13 · 1068 阅读 · 0 评论 -
Hypertable中Hyperspace的Failover
Hypertable自从0.9.7.0版本之后,除了Hyperspace之外的另外两个角色(Master和RangeServer)都实现了自动的Failover,也就是说Hyperspace必须手动实现Failover。因为Hyperspace是基于Paxos算法实现,该算法要求节点数目为奇数,所以可以准备3台机器用作Hyperspace。我测试时发现如果是2台的话,Hyperspace服务不原创 2014-02-21 17:30:11 · 841 阅读 · 0 评论 -
Hypertable源码解读之AsyncComm目录
该目录下包含了所有异步通信模块的源文件,该模块是整个Hypertable系统的基础,该模块的整体思路如下:工厂类类ReactorFactory中所有成员变量和函数都为静态成员,其初始化时将构造reactor_count个Reactor对象,并将每个对象委托给ReactorRunner对象托管,然后启动一个线程,线程函数即为ReactorRunner函数对象。Reactor对象构造时将创建一原创 2014-05-21 14:39:12 · 760 阅读 · 0 评论 -
Hypetable源码编译和打包
1.源码编译 1.1源码下载首先,创建源码保存目录[jack@localhost ~]$ mkdir -p src获取源码的两种方式1)Hypertable官网(http://www.hypertable.com)下载tar包并解压。cd ~/srctar zxvf/hypertable--src.tar.gz2)从git仓库获取cd ~/srcgit cl原创 2014-05-27 14:26:18 · 1116 阅读 · 0 评论