标签: hbase

检查表是否存在

检查Hbase表是否存在的最快方法是什么?看看这个api:

http://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/client/HBaseAdmin.html以下 哪项是最快的:

  1. tableExists
  2. isTableEnabled
  3. isTableAvailable
  4. listTables

使用#4,您将获得所有表的列表并通过它进行迭代,并比较其中一个表是否与您的表名匹配.

还是有另一种更聪明的方式?

java hadoop hbase

5
推荐指数
1
解决办法
9022
查看次数

什么用于实时日志聚合和查询?


我正在寻找可以帮助我聚合实时日志的工具/数据库/解决方案,并且可以实时查询它们.
基本要求是能够尽快交付结果,请记住,可能有许多事件要查询(可能是数十亿),但是日志会有很多"列",每个查询都会在这些列上设置一些条件,所以最终结果将是某种聚合,或者只返回一小部分行.

现在我正在看HDFS + HBase,这似乎是一个很好的解决方案.还有其他选择吗?你能推荐一下吗?

logging hbase real-time

5
推荐指数
1
解决办法
3950
查看次数

是否可以立即向Hadoop Cluster中的所有其他节点显示写入HDFS或Hbase的内容?

如果Hadoop作业正在运行或正在进行中,如果我向HDFS或Hbase写入内容,那么该数据将对集群中的所有节点可见

1)立即?

2.)如果没有立即再经过多少时间?

3.)或者时间真的无法确定?

java hadoop hbase hive

5
推荐指数
1
解决办法
1197
查看次数

在伪分布式模式下运行Hadoop时,我应该为hadoop.tmp.dir使用哪个目录?

默认情况下,Hadoop将hadoop.tmp.dir设置为/ tmp文件夹.这是一个问题,因为当你重新启动时,/ tmp会被Linux消灭,导致JobTracker出现这个可爱的错误:

2012-10-05 07:41:13,618 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8020. Already tried 0 time(s).    
...    
2012-10-05 07:41:22,636 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8020. Already tried 9 time(s).
2012-10-05 07:41:22,643 INFO org.apache.hadoop.mapred.JobTracker: problem cleaning system directory: null
java.net.ConnectException: Call to localhost/127.0.0.1:8020 failed on connection exception: java.net.ConnectException: Connection refused
    at org.apache.hadoop.ipc.Client.wrapException(Client.java:767)    
Run Code Online (Sandbox Code Playgroud)

我发现修复此问题的唯一方法是重新格式化您的名称节点,该节点重建/ tmp/hadoop-root文件夹,当然重新启动时会再次消除该文件夹.

所以我继续创建了一个名为/ hadoop_temp的文件夹,并为所有用户提供了对它的读/写访问权限.然后我在我的core-site.xml中设置了这个属性:

 <property>
          <name>hadoop.tmp.dir</name>
          <value>file:///hadoop_temp</value>
 </property>
Run Code Online (Sandbox Code Playgroud)

当我重新格式化我的namenode时,Hadoop似乎很开心,给我这样的信息:

12/10/05 07:58:54 INFO common.Storage: Storage directory file:/hadoop_temp/dfs/name has been successfully formatted.
Run Code Online (Sandbox Code Playgroud)

但是,当我查看/ hadoop_temp时,我注意到该文件夹​​是空的.然后当我重新启动Hadoop并检查我的JobTracker日志时,我看到了这个:

2012-10-05 08:02:41,988 INFO org.apache.hadoop.ipc.Client: Retrying connect …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu configuration hadoop hbase

5
推荐指数
1
解决办法
3942
查看次数

HBase: Filters not working for negative integers

We have implemented QualifierFilter as well as ValueFilter (using BinaryComparator) of Hbase successfully and they are working fine for most of our cases. However they are failing in cases like number > -10 or number < -10

Please note that number = -10 is working perfectly fine. Also, number > 10 and number < 10 are also working fine.

如果你想看到代码,请查看以下链接:
1. QualifierFilter -相关线是126-142
2.值过滤 -相关线是107-128

根据这篇博客,如果我们想要为rowkeys存储负值,这可能是序列化的问题,我们应该编写自己的序列化器进行比较.
所以我们想知道:
1.在这种情况下是否真的有必要编写自己的序列化程序?
如果是,怎么样?任何例子都会有很大的帮助.

java serialization hbase

5
推荐指数
1
解决办法
817
查看次数

为什么HBase需要为每个Value存储Column Family?

因为HBase表是稀疏表,所以HBase不仅为每个单元存储值,而且存储识别单元所需的所有信息(通常称为Key,不要与RowKey混淆).Key如下:

RowKey-的ColumnFamily - ColumnQualifier时间戳

并且为每个条目存储所有这些信息.这就是为什么建议使用列族和列限定符的短名称来减少额外的开销.

我的问题:为什么我需要为每个条目存储ColumnFamily?据我所知,每个商店文件都属于一个列族.每个商店文件存储一次列族名称是不够的?这样可以减少开销,可以使用任意列族名称,我们仍然可以为每个条目识别列族.我在这里错过了什么?

hbase hstore column-family hfile

5
推荐指数
1
解决办法
781
查看次数

如何在没有cygwin的Windows上以分布式模式运行HBase?

  • 我已成功配置HBase并在Windows上集成了HDFS.我使用HBase版本0.98.6.1-hadoop2和Hadoop版本2.5.1
  • 遵循HBase 快速入门教程.
  • 如果我正常运行HBase(没有hbase.cluster.distributed属性),那么它工作正常.否则显示它尚未实现.敬请关注.
  • 如何在没有cygwin的Windows上以集群分布式模式启动HBase?

java windows hadoop hbase hdfs

5
推荐指数
1
解决办法
2443
查看次数

如何在不丢失HBase数据的情况下更改Apache Phoenix中列的数据类型?

我有一个HBase安装与一堆现有的表,其中包含一堆数据(我不想删除).我最近发现使用Apache Phoenix能够使用类似SQL的语法查询HBase数据,到目前为止它非常棒.但是,由于我还不完全熟悉各种数据类型以及它们如何映射到我在HBase中存储的Java类型,有时候我弄错了.如果我有一个HBase列,我存储为

Bytes.toBytes(Long long)
Run Code Online (Sandbox Code Playgroud)

我不小心创建了我的凤凰专栏作为varchar,我怎么能在不丢失所有数据的情况下更改Phoenix列?如果我做

alter table "mytable" add "myfamily"."mycolumn" unsigned_long
Run Code Online (Sandbox Code Playgroud)

然后

alter table "mytable" drop column "mycolumn"
Run Code Online (Sandbox Code Playgroud)

然后是

alter table "mytable" add "myfamily"."mycolumn" varchar
Run Code Online (Sandbox Code Playgroud)

我的所有HBase数据都从底层的"mycolumn"列中删除了!解决这个问题的最佳方法是什么?

我读到了有关设置参数的信息

phoenix.schema.dropMetaData
Run Code Online (Sandbox Code Playgroud)

为假,听起来就像我想要的那样,但我无法弄清楚我实际设置的位置.当登录到Phoenix时,我可以在Squirrel中发出一些命令将其设置为false吗?或者它是一个环境变量?

在此先感谢您的帮助!

编辑1

我在Phoenix中创建了一个虚拟表,其中包含每种类型的列,然后在system.catalog表中查找它以获取表示每种数据类型的数字.然后我使用以下命令

upsert into system.catalog (table_name, column_name, column_family, data_type) values ('mytable','mycolumn','mycf',3)
Run Code Online (Sandbox Code Playgroud)

将mycolumn的类型更改为小数.但是,当我查询mytable时,mycolumn仍然是unsigned_long类型.也许更新这个值后我需要重启HBase?

供参考:

COLUMN_NAME DATA_TYPE
MYTINYINT   -6
MYBIGINT    -5
MYDECIMAL   3
MYINTEGER   4
MYFLOAT 6
MYDOUBLE    8
MYUINTEGER  9
MYULONG 10
MYUTINYINT  11
MYVARCHAR   12
ROWID   12
MYUFLOAT    14
MYUDOUBLE   15
MYBOOLEAN   16
MYUTIME 18
MYUDATE 19
MYUTIMESTAMP    19
MYDATE …
Run Code Online (Sandbox Code Playgroud)

hbase phoenix

5
推荐指数
1
解决办法
6597
查看次数

HBase独立性能与在HDFS群集上运行

我的应用程序已连接到HBase,并进行了大量通信(每秒数百或数千次读/写)。这可能会严重影响性能,这可能是由于HBase对每个请求执行的I / O操作。

使用和不使用HBase的时间成本! Doo.dle 是对我的代码的调用-蓝色和红色之间的区别是HBase消耗的时间。

目前,我仅在独立模式下进行过测试,其中HBase使用本地文件系统存储数据。我想知道,在分布式模式下将其与实际的HDFS一起使用是否可以显着提高性能,还是仅产生相同的结果。我正在尝试寻找线索,然后再花太多时间来建立和运行集群。

我问自己的第二个问题是,是否可以将独立的HBase配置为仅将数据持久存储到内存(RAM)中,而不是将其写入文件系统中以进行性能评估。

hadoop hbase hdfs

5
推荐指数
1
解决办法
758
查看次数

org.apache.hadoop.hbase.TableNotFoundException:与Phoenix 4.5.2的SYSTEM.CATALOG异常

我一直在尝试集成Phoenix 4.5.2到我现有的hadoop集群中.

Hadoop Version : 2.7.1
HBase Version : 1.1.2
Run Code Online (Sandbox Code Playgroud)

当我尝试从我的凤凰客户端创建表时,我遇到了异常.但我能够从HBase控制台成功创建表.

org.apache.phoenix.exception.PhoenixIOException: SYSTEM.CATALOG
    at org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:108)
    at org.apache.phoenix.query.ConnectionQueryServicesImpl.metaDataCoprocessorExec(ConnectionQueryServicesImpl.java:1051)
    at org.apache.phoenix.query.ConnectionQueryServicesImpl.metaDataCoprocessorExec(ConnectionQueryServicesImpl.java:1014)
    at org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQueryServicesImpl.java:1259)
    at org.apache.phoenix.query.DelegateConnectionQueryServices.createTable(DelegateConnectionQueryServices.java:113)
    at org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:1937)
    at org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:751)
    at org.apache.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCompiler.java:186)
    at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:320)
    at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:312)
    at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
    at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:310)
    at org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1422)
    at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1927)
    at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1896)
    at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:77)
    at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1896)
    at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
    at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
    at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
    at org.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java:370)
    at org.apache.tools.ant.taskdefs.SQLExec.getConnection(SQLExec.java:940)
    at org.apache.tools.ant.taskdefs.SQLExec.execute(SQLExec.java:612)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:435)
    at org.apache.tools.ant.Target.performTasks(Target.java:456)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393) …
Run Code Online (Sandbox Code Playgroud)

hadoop hbase phoenix

5
推荐指数
1
解决办法
5959
查看次数