标签: hbase

任何可扩展的OLAP数据库(Web应用程序规模)?

我有一个应用程序需要针对不同级别的聚合进行分析,这就是OLAP工作负载.我也想经常更新我的数据库.

例如,这是我的更新看起来像(架构看起来像:时间,目标,源IP,浏览器 - >访问)

(15:00-1-2-2010, www.stackoverflow.com, 128.19.1.1, safari) -->  105

(15:00-1-2-2010, www.stackoverflow.com, 128.19.2.1, firefox) --> 110

...

(15:00-1-5-2010, www.cnn.com, 128.19.5.1, firefox) --> 110
Run Code Online (Sandbox Code Playgroud)

然后我想问一下上个月从firefox浏览器访问www.stackoverflow.com的访问量是多少.

我知道Vertica系统可以以相对便宜的方式实现这一点(明智的性能和可扩展性,但可能不是成本方面的).我这里有两个问题.

1)是否有可以构建的开源产品来解决这个问题?特别是,蒙德里安系统的运作情况如何?(可扩展性和性能)2)是否有HBase或Hypertable基础解决方案(显然,裸HBase/Hypertable不能这样做)? - 但如果有基于HBase/Hypertable的项目,可扩展性可能不会成为IMO的问题)?

谢谢!

database olap hadoop hbase olap-cube

10
推荐指数
1
解决办法
3628
查看次数

HBase ORM for Ruby

什么Ruby的HBase ORM /适配器存在?哪个最好?为什么?

ruby orm hbase

10
推荐指数
2
解决办法
1452
查看次数

CouchDB与HBase

这两者之间有什么相似之处吗?

hbase couchdb

10
推荐指数
2
解决办法
8294
查看次数

hadoop map使用HDFS输入和HBASE输出减少作业

我是hadoop的新手.我有一个MapReduce作业,应该从Hdfs获取输入并将reducer的输出写入Hbase.我没有找到任何好的例子.

这是代码,运行此示例的错误是map中的Type mismatch,期望ImmutableBytesWritable收到IntWritable.

映射器类

public static class AddValueMapper extends Mapper < LongWritable,
 Text, ImmutableBytesWritable, IntWritable > {  

  /* input <key, line number : value, full line>
   *  output <key, log key : value >*/  
public void map(LongWritable key, Text value, 
     Context context)throws IOException, 
     InterruptedException {
  byte[] key;
  int value, pos = 0;
  String line = value.toString();
  String p1 , p2 = null;
  pos = line.indexOf("=");

   //Key part
   p1 = line.substring(0, pos);
   p1 = p1.trim();
   key = Bytes.toBytes(p1);   

   //Value part
   p2 …
Run Code Online (Sandbox Code Playgroud)

java hadoop hbase mapreduce hdfs

10
推荐指数
1
解决办法
1万
查看次数

如何从HBase中的一个特定行和列获取多个版本

众所周知,hbase具有一个特定行和特定列可以按时间戳记录最近更改值的功能.所以我的问题是,如何使用任何HBase命令列出所有更改的值?我google了很多,但没有找到任何有用的链接.

hbase

10
推荐指数
3
解决办法
2万
查看次数

NoSQL用于时间序列/记录的仪器读取数据,也是版本化的

我的数据

它主要监视每个受监视设备上以每个受监视值的Timestamp:Value形式传递的数据.它经常通过许多设备和许多监控值收集.

此外,它具有许多这些数据值的奇特特征,这些数据值是在源处导出的,计算会不时变化.这意味着我的数据有效版本化,我需要能够只调用最新版本的计算数据. 注意:这不是旧值被覆盖的版本控制.我只是有时间戳截止,超出该截止时间数据会改变其含义.

我的用法

在下游,我将对数据进行各种未定义的数据挖掘/机器学习用途.目前尚不清楚这些用途是什么,但很明显我将用Python编写所有下游代码.此外,我们是一个非常小的商店,所以我真的只能处理下游应用程序的设置,维护和接口这么多的复杂性.我们没有那么多人.

选择

我不允许使用SQL RDBMS来存储这些数据,所以我必须找到合适的NoSQL解决方案.这是我到目前为止所发现的:

  1. 卡桑德拉
    • 看起来对我很好,但似乎有些主要用户已经转移.这让我想知道它是不会成为一个充满活力的生态系统.这篇SE帖子似乎有好话要说:卡桑德拉时间序列数据
  2. Accumulo
    • 再次,这似乎很好,但我担心这不是一个主要的,积极开发的平台.看起来这会让我对工具和文档有点匮乏.
  3. MongoDB的
    • 我对Mongo人群有一种,也许是非理性的,强烈的厌恶,我正在寻找任何理由将其作为一种解决方案.在我看来,对于具有这种静态,规则结构的东西,Mongo的数据模型是完全错误的.我的数据甚至进入(并且必须保持)订单.也就是说,每个人和他们的母亲似乎都喜欢这个东西,所以我真的想评估它的适用性.看到这个和许多其他SE帖子:NoSQL数据库用于稀疏时间序列如数据?
  4. HBase的
    • 这是我目前正在倾向的地方.它似乎是Cassandra的继任者,对我的问题有一个完全可用的方法.也就是说,这是一项很重要的技术,如果我选择的话,我很关心真正知道我要注册的是什么.
  5. OpenTSDB
    • 这基本上是一个基于HBase的时间序列特定数据库.完美,对吗?我不知道.我试图找出另一层抽象给我买的东西.

我的标准

  • 开源
  • 适用于Python
  • 适合小团队
  • 记录很好
  • 具有利用有序时间序列数据的特定功能
  • 帮助我解决一些版本化的数据问题

那么,NoSQL数据库实际上可以帮我解决我的需求呢?它可以是我的清单中的任何东西.我只是想了解哪个平台实际上有代码,而不仅仅是使用模式,这些代码支持我的超级特定,易于理解的需求.我不是问哪一个最好或哪一个更酷.我试图了解哪种技术可以最本地存储和操作此类数据.

有什么想法吗?

hbase mongodb cassandra nosql accumulo

10
推荐指数
2
解决办法
3516
查看次数

HBase中的随机访问性能和HDFS中的块大小

HBase可以使用HDFS作为后端分布式文件系统.但是,它们的默认块大小完全不同.HBase采用64KB作为默认块大小,而HDFS采用至少64MB作为默认块大小,至少比HBase大1000倍.

我知道HBase是为随机访问而设计的,所以较小的块大小是有帮助的.但是当访问HBase中的64K块时,是否仍然需要访问HDFS中的一个64MB块?如果是真的,HBase可以处理极其随机的访问吗?

hbase hdfs

10
推荐指数
2
解决办法
7394
查看次数

org.apache.hadoop.hbase.PleaseHoldException:Master正在初始化

我正在尝试设置Hbase的多节点集群.当我做奴隶的jps我得到

5780 Jps
5558 HQuorumPeer
5684 HRegionServer
1963 DataNode
2093 TaskTracker
Run Code Online (Sandbox Code Playgroud)

同样在主人身上我得到了

4254 SecondaryNameNode
15226 Jps
14982 HMaster
3907 NameNode
14921 HQuorumPeer
4340 JobTracker
Run Code Online (Sandbox Code Playgroud)

一切都运行正常.但是当我尝试在hbase shell上创建表时.它给出了一个错误

ERROR: org.apache.hadoop.hbase.PleaseHoldException: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
Run Code Online (Sandbox Code Playgroud)

我的slave的regionserver log(区域服务器正在运行):

2013-06-11 13:09:53,119 INFO org.apache.hadoop.hbase.regionserver.HRegionServer: Attempting connect to Master server at localhost,60000,137093$
2013-06-11 13:10:53,190 WARN org.apache.hadoop.hbase.regionserver.HRegionServer: Unable to connect to master. Retrying. Error was:
org.apache.hadoop.hbase.ipc.HBaseClient$FailedServerException: This server is in the failed servers list: localhost/127.0.0.1:60000
        at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:425)
        at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:1124)
        at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:974)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:86)
        at $Proxy8.getProtocolVersion(Unknown Source)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:138) …
Run Code Online (Sandbox Code Playgroud)

hadoop hbase hive

10
推荐指数
1
解决办法
2万
查看次数

Hbase Java API:检索与部分行键匹配的所有行

在Python模块happybase中,我可以检索具有以给定字符串开头的行键的所有行(即,使用部分行键进行搜索).

假设我有一个格式为(ID | TYPE | DATE)的rowkey,我可以通过以下方式找到ID为1且TYPE为A的所有行:

import happybase
connection = happybase.Connection('hmaster-host.com')
table = connection.table('table_name')
for key, data in table.scan(row_prefix="1|A|"):
    print key, data
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是一个完全客户端的Java程序,适用于任何尝试使用Java HBase API进行基础操作的人,但我只能使用完整的行键搜索一行:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;
//class foo {
public static void main(String[] args) {
    Configuration conf = new Configuration();
    conf.addResource(new Path("C:\\core-site.xml"));
    conf.addResource(new Path("C:\\hbase-site.xml"));
    HTable table = new HTable(conf, "table_name");
    Result row = table.get(new Get(Bytes.toBytes("1|A|2014-01-01 00:00")));
    printRow(row); 
}
public static void printRow(Result result) {
    String …
Run Code Online (Sandbox Code Playgroud)

java hbase

10
推荐指数
1
解决办法
2万
查看次数

./bootstrap:17:exec:autoreconf:not found:OpenTSDB安装

我正在尝试在Ubuntu上安装OpenTSDB,我正在关注文档.但运行这些命令后:

git clone git://github.com/OpenTSDB/opentsdb.git
cd opentsdb
Run Code Online (Sandbox Code Playgroud)

运行此命令是提供以下控制台输出:

./build.sh
Run Code Online (Sandbox Code Playgroud)

控制台输出:

seed-admin@seedadmin-Inspiron-3847:~/Abharthan/opentsdb$ sudo ./build.sh
+ test -f configure
+ ./bootstrap
./bootstrap: 17: exec: autoreconf: not found
Run Code Online (Sandbox Code Playgroud)

有人可以建议问题是什么.

ubuntu hbase opentsdb

10
推荐指数
1
解决办法
5226
查看次数

标签 统计

hbase ×10

hadoop ×3

hdfs ×2

java ×2

accumulo ×1

cassandra ×1

couchdb ×1

database ×1

hive ×1

mapreduce ×1

mongodb ×1

nosql ×1

olap ×1

olap-cube ×1

opentsdb ×1

orm ×1

ruby ×1

ubuntu ×1