![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据
iteye_12858
这个作者很懒,什么都没留下…
展开
-
hadoop和hostname
启动hadoop集群出错, 写道ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: hdfs://hadoop.01:9000 查了一下,hadoop的ho...2015-04-30 16:05:47 · 290 阅读 · 0 评论 -
hbase中的分页
关系型数据库中用offset和limit分页很容易,但是在hbase中就不是一件容易的事.首先看PageFilter,这个filter只是提供了limit的功能,没有offset,而且并不能保证最后取得的result数量不超过PageFilter中设定的值.因为scan在next操作跨越region时,要open一个新的scanner,而PageFilter是分别序列化到每个region上,就...2015-01-15 18:34:35 · 869 阅读 · 0 评论 -
列式数据库中的几种索引
数据仓库主要用来进行OLAP任务,区别于传统的OLTP数据库,数据仓库对数据吞吐量的要求更高.现在很多数据仓库都是列式数据库,比如infobright,Sybase IQ等.前一段时间进行了一下对这些列式数据库的研究,发现了它们很多不同于传统行式数据库的特点.下面简单谈一下这些列式数据库中使用的索引.1 块级粗粒度索引顾名思义,就是把数据分块,对块建立索引而不是对条目建立.块级索引...原创 2014-12-24 23:09:58 · 991 阅读 · 0 评论 -
hbase中使用OrderedBytes
hbase中的排序完全是byte数组的字典顺序,而float,int这样的数据,转换为byte数组之后,字典顺序往往不是其自然顺序.即 -43.2的byte数组可能比-1002.3的byte数组的字典顺序小,这样筛选排序就会有问题.在hbase中解决这样的问题,可以用[url=http://kabike.iteye.com/blog/2168857]自定义Comparator[/url]的方法,另...2014-12-20 20:11:19 · 258 阅读 · 0 评论 -
hbase 0.96中使用自定义的Comparator
如果想要在hbase中使用自定义的Comparator,过去应该是让Comparator实现Writable,把jar包放到hbase的lib下即可.可是用hbase0.96时,发现自定义Comparator无论如何没被调用,猜测应该利用protobuf将其序列化后传输到服务器端才行.后来尝试使用protobuf来序列化自定义的Comparator,果然获得了成功...2014-12-20 20:00:24 · 112 阅读 · 0 评论 -
用一套zookeeper,hadoop来支撑多个hbase集群
现有一套hbase集群了,又要求假设一套新的hbase集群,不想再搭建一套zookeeper,hadoop,可以让多套hbase集群共享zookeeper和hadoop,只需要修改如下属性即可[code="xml"] hbase.rootdir hdfs://dev01:9000/hbase2 zookeeper.znode.parent /hbase2...2014-12-20 19:50:49 · 392 阅读 · 0 评论 -
hbase为什么不会脑裂
前几天在思考一个问题,如果发生了网络隔离,一台region server与其他节点失去连接,但是客户端是缓存了region server地址的,那么客户端仍然会向这台region server发送写请求.那么hbase岂不是会发生gluster那样的脑裂么?后来又看了下文档,hbase的wal也是写在hdfs上的,如果网络隔离,那么wal写入就不会成功,那么对region的操作就会失败.就不存...2014-12-20 19:44:12 · 661 阅读 · 0 评论 -
浅谈Hbase 的强一致性
从一开始就知道hbase是CAP中的CP系统,即hbase是强一致性的.我原来一直以为hbase的强一致性是因为底层的HDFS写入时,必须所有副本都写入成功才能返回.最近才想明白,hbase之所以是CP系统,实际和底层HDFS无关,它是CP系统,是因为对每一个region同时只有一台region server为它服务,对一个region所有的操作请求,都由这一台region server来响应,自...2014-12-20 19:35:14 · 1398 阅读 · 0 评论 -
Opentsdb的技术特点
[size=large]1 客户端[/size]opentsdb的hbase客户端,使用了他们自己编写的异步非阻塞[url=https://github.com/OpenTSDB/asynchbase]hbase客户端[/url]据说比hbase自带的客户端性能好很多.下面是一个评测结果[url]http://www.tsunanet.net/~tsuna/asynchbase/b...2014-12-09 19:15:07 · 623 阅读 · 0 评论 -
hbase中的BloomFilter起作用的场景
hbase中有BloomFilter的功能,可以在有些情况下过滤掉不需要的hfile,节省IO.但是BloomFilter在什么情况下起作用呢?根据[url=http://hbase.apache.org/book/perf.schema.html]hbase文档[/url],只有get操作才使用到BloomFilter[quote]In terms of HBase, Bloom fil...2014-12-09 18:57:36 · 328 阅读 · 0 评论 -
Infobright查看知识网格状态
在infobright中查看知识网格的状态(Knowledge Grid statistics)在brighthouse.ini中设置[quote]ControlMessages = 2[/quote]就可以使用roughstats 和 roughattrstats查看知识网格的状态.具体参考[url]https://www.infobright.org/index.php...2014-11-13 12:04:25 · 117 阅读 · 0 评论 -
hbase并行scan
hbase自带的scan是串行的,在一个region扫描完了以后,会通过nextScanner方法扫描下一个region.有没有办法并行的扫描多个region呢?设想了一下,可以利用getRegionLocations得到一个HTable的region info的集合,这样就可以知道每个region的startrow和endrow,根据要扫描的条件,构造多个scan,使每个scan都分别设定对...2015-01-15 18:52:51 · 1035 阅读 · 0 评论 -
hbase的caching和batch
hbase scan的时候设置caching,可以每次多从服务器取得row的数量,减少RPC的请求,那么batch的作用是什么呢?batch指的是一次next的时候,取得keyvalue的最大值.这个设置的用处是什么呢?是因为假设hbase中的row特别宽,那么一次next的时候,取得的keyvalue特别多,导致内存不足,所以用batch限制next时取keyvalue的数量.但是bat...2015-01-15 19:24:14 · 435 阅读 · 0 评论 -
hadoop使用过程中的一些问题
1 如何知道一个文件在HDFS上block的分布情况[url]http://stackoverflow.com/questions/6372060/how-to-track-which-data-block-is-in-which-data-node-in-hadoop[/url]2 用windows 电脑向linux hadoop集群上提交job失败org.apache.hado...2015-03-24 18:51:23 · 138 阅读 · 0 评论 -
hbase MemStore避免内存碎片
CMS是比较常用的一种gc方法,但是默认情况下CMS不进行compact,因此往往出现内存碎片.而hbase中由于region数据的非集中分布,更容易导致内存碎片.此时在内存还有很大可用空间的时候,也不能创建对象,导致了stop the world[img]https://www.cloudera.com/wp-content/uploads/2011/02/frag-drawing....2015-02-14 16:29:58 · 275 阅读 · 0 评论 -
使用HBaseTestingUtility进行本地调试
要想测试hbase的功能,不一定非要启动hbase集群,可以用HBaseTestingUtility在本地进行hbase的部分功能调试 [code="java"] TableName tableName = TableName.valueOf("testBar"); String family = "cf"; HTableDescriptor htd = new HTa...2015-02-01 15:14:43 · 669 阅读 · 0 评论 -
hbase和hdfs的一些故事
hdfs一开始设计的时候,文件是只能写入一次,然后就只读的.一开始工作的相安无事,但是有一天,hbase跑到了hdfs上,hbase作为数据库,总要保持一定的持久性,所以它弄了个log,叫做wal,记录每一次操作,这样就算region server系统崩溃,Memstore的东西毁于一旦,还是可以靠wal来恢复.问题在于wal是存储在hdfs上的,hdfs上的文件只有被正确close以后,才是合法...2015-01-31 19:23:02 · 434 阅读 · 0 评论 -
浅谈大数据和GIS的结合
大数据真是愈演愈烈,GIS的数据说起来也是海量.所以两者也算一拍即合.大数据和GIS结合起来怎么搞呢?1 大数据作为GIS的数据源.其实arcgis在shapefile,file geodatabase ,ArcSDE之外,可以通过plug in 的方式使用数据源.[url]http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conc...原创 2015-01-24 14:06:28 · 3362 阅读 · 0 评论 -
arcgis与hadoop相结合的一些问题
主要是使用esri公司的开源项目https://github.com/Esri/gis-tools-for-hadoop其中几个问题1 geoprocessing-tools-for-hadoop要求arcgis 10.1,其实还要sp12 hive使用mysql作为存储,在hive上创建表时,报错Specified key was too long; max key length...原创 2015-01-24 14:05:47 · 501 阅读 · 0 评论 -
hbase MTTR介绍
[url]http://zh.hortonworks.com/blog/introduction-to-hbase-mean-time-to-recover-mttr[/url]收藏这篇文章有一段时间了,随着对hbase,hdfs理解的深入,最近才能看懂...其实作者说的主要问题在于,hbase集群往往和hdfs集群共用物理服务器.服务器的crash,在失去一个region server的...2015-01-24 14:04:28 · 244 阅读 · 0 评论 -
华为的二级索引的实现
华为二级索引的实现原理[url]http://download.csdn.net/detail/kabike/7532053[/url]具体实现也是在region级别用coprocessor维护索引,要注意的是为了维护数据表和索引表的对应region的局部性,需要自定义load balancer,在数据表region split的时候也要维护相应index表region的状态....原创 2015-01-21 22:09:42 · 205 阅读 · 0 评论 -
FM算法统计独立元素个数
[url]http://www.pluscn.net/?p=1192[/url]不错不错,FM算法和bloomfilter真是大数据的两大利器原创 2015-01-18 17:42:16 · 391 阅读 · 0 评论 -
hbase利用hint来实现filter快速扫描
hbase只有rowkey上有索引,在rowkey上可以实现快速扫描,想在column上进行条件筛选或者是在rowkey的非前缀部分进行筛选只能通过filter,而一直以为filter只能顺序的遍历所有KeyValue.但实际上filter可以提供hint来使scanner reseek重新定位,提高查询效率.比如假设rowkey设计形式为barfoo,前三位是定长的bar属性,后三位...2015-01-15 20:23:08 · 308 阅读 · 0 评论 -
分布式数据库中的半连接
表连接在数据库中是很常见的操作,在分布式数据库中一般如何实现呢?在分布式环境下,网络IO的速度远远小于CPU操作的速度,因此减小网络传输量能极大提高性能,可以采用半连接的方法数据库的exists和in查询就是一种半连接,即在第二张表里找到可以连接的数据后,立即返回第一张表里的数据,在分布式环境下,同样可以采用这种方法.比如server1上有分片T,在server2上有分片S(分片可...2014-11-03 17:42:59 · 6310 阅读 · 1 评论 -
也谈数据仓库的存储
数据仓库一般侧重于OLAP型操作,区别于OLTP的"于乱军中取敌上将首级"的低延迟要求,OLAP更要求大数据的处理速度.因为OLTP侧重于对单个数据的处理,比如快速找到某条订单,而OLAP侧重于整体数据的把握,比如订单销量的地区分布.Infobright是mysql的数据仓库解决方案,而hive是基于Hadoop的数据仓库平台,要探索数据仓库的时候,发现两者在存储上有很多共同之处,比如按列...原创 2014-10-22 19:10:30 · 167 阅读 · 0 评论 -
key value和document类型的nosql数据库的思考
没事时思考了这样一个问题.hbase这样的key value存储比mongodb为代表document存储有哪些优势呢?比如在mongodb里的存储的文档(不清楚具体的存储方式)key1:{attr1:bar,attr2:foo,attr3:barfoo} 存储在hbase中是key1:attr1:barkey1:attr2:fookey1:attr3:...2014-10-21 18:54:27 · 515 阅读 · 0 评论 -
zookeeper的log4j配置真是失败的典范
各种地方都能配置zookeeper的log4j,真是太烦人了.给用户太多的选择,并不一定能更好的提升用户体验2015-08-28 18:23:42 · 1515 阅读 · 0 评论 -
storm中添加自定义metrics
storm中有时需要添加一些metrics监控项,这时需要添加metrics.在spout或者bolt的prepare方法中注册metrics[code="java"] public void prepare(@SuppressWarnings("rawtypes") Map stormConf, TopologyContext context, OutputCollector c...2015-07-30 18:13:33 · 239 阅读 · 0 评论 -
storm实现迷你批量提交
storm中有种应用场景,是迷你批量,比如积攒一定数量的tuple,超过一定时间或者数量之后,把这些tuple统一处理.想到了以下三种思路1 在bolt中额外启动一个线程.不过在bolt中启动线程就要考虑并发的问题2 定义另一个command stream,根据需要向这个command stream发tuple.bolt根据tuple的sourceStreamId判断是正常的strea...2015-07-30 18:12:14 · 212 阅读 · 0 评论 -
hadoop用Quorum Journal Manager(QJM)实现高可用
官方文档写的还行.补充几点1 如果没有自动failover,两个namenode启动后都是standby状态文档上说用 "hdfs haadmin -failover"命令使其中一个active.hdfs haadmin -failover命令正确用法是[quote]hdfs haadmin -failover node13 node14[/quote]2 如果hbase想...2015-07-04 17:03:24 · 274 阅读 · 0 评论 -
忍不住想喷hadoop的文档
就说hdfs的checkpoint node吧,它说[quote]Multiple checkpoint nodes may be specified in the cluster configuration file.[/quote]哥,你敢具体写么?你这东西各种bug你知道么?[url]https://issues.apache.org/jira/browse/HDFS-7871[...2015-07-03 23:27:13 · 113 阅读 · 0 评论 -
CP还是AP?
根据CAP理论,分布式存储系统最多只能满足其中两项.因为P是必须的,因此往往选择就在CP或者AP中.gluster通过设置[url=http://kabike.iteye.com/blog/1940479]Quorum[/url],可以在CP系统和AP系统间切换.mongodb可以设置[url=http://docs.mongodb.org/manual/core/write-conc...2013-09-11 11:30:47 · 4251 阅读 · 0 评论 -
gluster通过quorum来避免脑裂
gluster的一个问题就是[url=http://kabike.iteye.com/blog/1937003]脑裂[/url]现象的存在,脑裂出现以后往往需要管理员人工处理.为了尽可能减少脑裂的发生,可以设置quorum.quorum就相当于一次写入时的最小成功副本数.比如3副本的卷,设置quorum为2,那么一次写入至少要写到两个副本上才算成功,否则写入失败,返回readonly错误....2013-09-11 11:00:25 · 476 阅读 · 0 评论 -
gluster 3.3以后修复脑裂(split brain)
[url]http://kabike.iteye.com/admin/blogs/1937003[/url]中简单介绍了gluster的AFR,如果AFR出现了脑裂,在3.3以前的版本中,直接删掉bad file,保留一个明智的副本即可.但是3.3引入了新的隐藏文件夹.refungofs.在修复脑裂时,不仅要删除文件,还要删除.refungofs中的对应链接..refungofs的链接文件和b...2013-09-06 10:18:27 · 371 阅读 · 0 评论 -
gluster AFR的工作原理简析
在gluster的brick server上,每个文件的形如"trusted.afr.*"的扩展属性用来记录复制有关的信息.*是所有副本的名称,比如一个文件a.txt,在副本client-0和client-1上,用getfattr -m . -d -e hex命令查看该文件,就会有[quote]client-0=0x000000000000000000000000client-1=0x...2013-09-05 17:23:27 · 387 阅读 · 0 评论 -
gluster hash分布(DHT)的工作原理
gluster的hashcode计算完全依赖文件名(文件的filename,不包括各种路径)brick里的每个文件夹的trusted.refungofs.dht属性指定了该文件夹容纳的hashcode的范围,具体如下:trusted.refungofs.dht的前8个数字目前一直是00000001,接着8个数字目前一直是00000000然后八个数字是起始hash值,最后八个数字是结束h...2013-08-28 14:26:36 · 352 阅读 · 0 评论 -
gluster volume status detail 命令导致打开文件过多,进程crash
在使用gluster 3.3.0的时候,发现各brick server的glusterd进程经常crash,日志中先出现0-management: could not get inode size for ext4 : e2fsprogs package missing0-management: failed to get inode size 然后进程就会被linux系统kill...2013-12-12 17:27:13 · 626 阅读 · 0 评论 -
mongodb shell中显示更多数量的结果
DBQuery.shellBatchSize = 300[url]http://stackoverflow.com/questions/3705517/how-to-print-out-more-than-20-items-documents-in-mongodbs-shell[/url]2015-11-10 17:38:33 · 1632 阅读 · 0 评论 -
hbase和列式数据库
一直都以为hbase是列式数据库...结果这几天因为要做数据仓库,专门研究了下列式数据库,发现hbase根本不是列式数据库...列式数据库还是关系型数据库嘞......2014-10-21 18:50:27 · 624 阅读 · 0 评论 -
hadoop和hbase使用时要特别注意/etc/hosts文件
/etc/hosts文件对hbase有很重要的作用比如在hbase的master启动的时候,需要在zookeeper里注册自己的hostname,master取得hostname的方法是[code="java"] String hostname = Strings.domainNamePointerToHostName(DNS.getDefaultHost( conf.get...2014-09-01 20:30:26 · 3200 阅读 · 0 评论