标签: hbase

HBase如何保证行级原子性?

考虑到HBase将每个列族存储在单独的HFile中以及行可以跨越多个列族的事实.HBase如何确保跨越多个列族的行的放置/删除操作确实是原子的?

database hadoop hbase distributed-system nosql

8
推荐指数
1
解决办法
2458
查看次数

Hbase:如何为Hbase主机指定主机名

我竭力要建立一个HBase的分布式集群2个节点,一个是我的机器,一个是虚拟机,使用VirtualBox中的"仅主机"适配器.

我的问题是区域服务器(来自VM机器)无法连接到在主机上运行的Hbase主机.虽然在Hbase shell中我可以列出,创建表,...,在VM机器上的regionserver('slave'),日志总是显示

org.apache.hadoop.hbase.regionserver.HRegionServer: Unable to connect to master.      Retrying. Error was:
java.net.ConnectException: Connection refused
Run Code Online (Sandbox Code Playgroud)

以前,我已成功在此集群上设置Hadoop,HDFS和MapReduce,其中2个节点名为"master","slave","master"作为主节点,"master"和"slave"都作为从节点工作,这些绑定到VirtualBox的vboxnet0接口的名称(/ etc/hostname中的主机名不同).我还要为每个节点指定"slave.host.name"属性为"master"和"slave".

似乎'master'上的Hbase master始终使用'localhost'主机名运行,从slave机器,我无法使用'master'主机名telnet到hbase master.那么,有什么办法可以指定HBase的主人为"主"主机名的使用,我已经试过指定有关动物园管理员,硕士,RegionServer的DNS界面的一些属性使用主机和从机之间的内部接口,但它仍然不能工作.

像/ etc/hosts这样的东西

127.0.0.1   localhost
127.0.0.1   ubuntu.mymachine

# For Hadoop
192.168.56.1 master
192.168.56.101 slave

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Run Code Online (Sandbox Code Playgroud)

hadoop hbase

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

HBASE 0.94.1与hadoop的兼容性

我是HBASE和HADOOP的新手,需要兼容的hbase和hadoop版本来运行我的实验.

"http://apache.techartifact.com/mirror/hbase/"的当前稳定版本是hbase-0.94.1.任何人都可以告诉我应该使用哪个版本的hadoop,这样就没有兼容性问题,也没有未来的数据丢失.

请从当前在线提供的hadoop和hbase版本中进行建议.

以下是我用于下载这些版本的网站

http://apache.techartifact.com/mirror/hadoop/common/(hadoop的) http://apache.techartifact.com/mirror/hbase/(HBase的)

compatibility hadoop hbase

8
推荐指数
1
解决办法
1772
查看次数

HBase - 行键基础知识

注意:几个小时前,我开始使用 HBase 并且我来自 RDBMS 背景:P

我有一个类似 RDBMS 的表 CUSTOMERS 具有以下列:

  1. CUSTOMER_ID STRING
  2. CUSTOMER_NAME STRING
  3. CUSTOMER_EMAIL STRING
  4. CUSTOMER_ADDRESS STRING
  5. CUSTOMER_MOBILE STRING

我想到了以下 HBase 等效项:

表:客户行键:客户 ID

列族:CUSTOMER_INFO

列:姓名电子邮件地址移动

从我读过的内容来看,RDBMS 表中的主键大致类似于HBase 表的行键。因此,我想保留 CUSTOMER_ID 作为行键。

我的问题既愚蠢又直接:

  1. 不管我是使用 shell 命令还是 HBaseAdmin java 类,我如何定义行键?我在 shell 或 HBaseAdmin 类中都没有找到任何可以做的事情(比如 HBaseAdmin.createSuperKey(...))
  2. 给定一个 HBase 表,如何确定 rowkey 详细信息,即哪些值用作 rowkey?
  3. 我知道 rowkey 设计是一件至关重要的事情。假设客户 id 接收 CUST_12345、CUST_34434 等值,HBase 将如何使用 rowkey 来决定特定行驻留在哪个区域(假设该区域概念类似于 DB 水平分区)?

* * *编辑添加示例代码片段

我只是想在 shell 中使用“put”为客户表创建一行。我这样做了:

hbase(main):011:0> put  'CUSTOMERS', 'CUSTID12345', 'CUSTOMER_INFO:NAME','Omkar Joshi'
0 row(s) in …
Run Code Online (Sandbox Code Playgroud)

hbase nosql

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

Hbase错误.org.apache.hadoop.hbase.client.RetriesExhaustedException:尝试次数= 10后失败,异常

我正在使用Hbase,当我查询Hbase时,我开始遇到一个丑陋的错误.

问题是当我尝试与Hbase建立连接时出现此错误.唯一的问题是我使用线程,,,但实际上并不是太多.

Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=10, exceptions:
Wed Dec 04 16:09:13 CET 2013, org.apache.hadoop.hbase.client.HTable$5@7271601f, java.io.IOException: org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@35cc96e8 closed
Wed Dec 04 16:09:14 CET 2013, org.apache.hadoop.hbase.client.HTable$5@7271601f, java.io.IOException: org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@35cc96e8 closed
Wed Dec 04 16:09:15 CET 2013, org.apache.hadoop.hbase.client.HTable$5@7271601f, java.io.IOException: org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@35cc96e8 closed
Wed Dec 04 16:09:16 CET 2013, org.apache.hadoop.hbase.client.HTable$5@7271601f, java.io.IOException: org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@35cc96e8 closed
Wed Dec 04 16:09:18 CET 2013, org.apache.hadoop.hbase.client.HTable$5@7271601f, java.io.IOException: org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@35cc96e8 closed
Wed Dec 04 16:09:20 CET 2013, org.apache.hadoop.hbase.client.HTable$5@7271601f, java.io.IOException: org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@35cc96e8 closed
Wed Dec 04 16:09:24 CET 2013, org.apache.hadoop.hbase.client.HTable$5@7271601f, java.io.IOException: org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@35cc96e8 closed
Wed …
Run Code Online (Sandbox Code Playgroud)

hbase

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

Hbase 0.96,Spark v 1.0+

这种Hbase/Spark版本的组合似乎非常有毒.我花了好几个小时试图找到各种可行的MergeStrategy,但无济于事.

这是当前build.sbt的核心:

val sparkVersion = "1.0.0"
// val sparkVersion = "1.1.0-SNAPSHOT"

val hbaseVersion = "0.96.1.1-cdh5.0.2"

libraryDependencies ++= Seq(
    "org.apache.hbase" % "hbase-client" % hbaseVersion,
    "org.apache.hbase" % "hbase-common" % hbaseVersion,
    "org.apache.hbase" % "hbase-server" % hbaseVersion,
    "org.apache.hbase" % "hbase-protocol" % hbaseVersion,
    "org.apache.hbase" % "hbase-examples" % hbaseVersion,
  ("org.apache.spark" % "spark-core_2.10" % sparkVersion  withSources()).excludeAll(ExclusionRule("org.mortbay.jetty")),
  "org.apache.spark" % "spark-sql_2.10" % sparkVersion  withSources()
)
Run Code Online (Sandbox Code Playgroud)

以下是不可避免地重现的错误消息:

14/06/27 19:49:24 INFO HttpServer: Starting HTTP Server
[error] (run-main-0) java.lang.SecurityException: class "javax.servlet.FilterRegistration"'s signer information does not match signer information of other classes in …
Run Code Online (Sandbox Code Playgroud)

hbase scala sbt apache-spark

8
推荐指数
1
解决办法
4465
查看次数

具有多个范围的HBase扫描

我有一个HBase表,我需要从几个范围得到结果.例如,我可能需要从不同的范围获取数据,如第1-6行,第100-150行......我知道每次扫描时,我都可以定义起始行和停止行.但如果我有6个范围,我需要扫描6次.有没有什么方法可以从一次扫描或一次RPC中获得多个范围的结果?我的HBase版本是0.98.

hbase database-scan

8
推荐指数
1
解决办法
3265
查看次数

如何在hbase shell中停止命令运行而不退出hbase shell

有时我想从HBase shell中的运行命令退出,例如扫描操作通常需要花费太多时间.

所以我想停止运行这个命令,但我不想退出HBase shell.

通常的方法是我停止运行命令,我使用Ctrl + C,它可以停止运行命令,但它也退出HBase shell,然后我需要花更多的时间来重新输入HBase shell.

有没有更好的方法来解决这个问题?

hbase hbase-shell

8
推荐指数
1
解决办法
2500
查看次数

java.lang.IllegalArgumentException:无法使用PTableType枚举获取'MATERIALIZED VIEW'的值与Phoenix和Hbase的异常

我是Saiku的新手.我想把saiku和凤凰融为一体.凤凰实习生与HBase联系.我创建了一个模式,当Saiku尝试加载phoenix schema xml时,Am触发了以下错误.我正在努力想弄明白.任何人都可以建议我错过了什么,做了什么.

我使用的是以下版本的s/ws:

Phoenix 4.4 HBase 1.1.2 Saiku 3.8

感谢您的支持.

请在下面找到异常跟踪:

 java.lang.IllegalArgumentException: Unable to PTableType enum for value of 'MATERIALIZED VIEW'
    at org.apache.phoenix.schema.PTableType.fromValue(PTableType.java:88)
    at org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.getTables(PhoenixDatabaseMetaData.java:1057)
    at org.apache.commons.dbcp.DelegatingDatabaseMetaData.getTables(DelegatingDatabaseMetaData.java:604)
    at mondrian.rolap.aggmatcher.JdbcSchema.loadTablesOfType(JdbcSchema.java:1205)
    at mondrian.rolap.aggmatcher.JdbcSchema.loadTables(JdbcSchema.java:1162)
    at mondrian.rolap.aggmatcher.JdbcSchema.load(JdbcSchema.java:1042)
    at mondrian.rolap.RolapSchema$PhysSchema.<init>(RolapSchema.java:976)
    at mondrian.rolap.RolapSchemaLoader.createSyntheticPhysicalSchema(RolapSchemaLoader.java:1479)
    at mondrian.rolap.RolapSchemaLoader.validatePhysicalSchema(RolapSchemaLoader.java:684)
    at mondrian.rolap.RolapSchemaLoader.loadStage2(RolapSchemaLoader.java:376)
    at mondrian.rolap.RolapSchemaLoader.loadStage1(RolapSchemaLoader.java:336)
    at mondrian.rolap.RolapSchemaLoader.loadStage0(RolapSchemaLoader.java:272)
    at mondrian.rolap.RolapSchemaLoader.createSchema(RolapSchemaLoader.java:4304)
    at mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:210)
    at mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:62)
    at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:160)
    at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:84)
    at mondrian.olap.DriverManager.getConnection(DriverManager.java:112)
    at mondrian.olap.DriverManager.getConnection(DriverManager.java:68)
    at mondrian.olap4j.MondrianOlap4jConnection.<init>(MondrianOlap4jConnection.java:153)
    at mondrian.olap4j.FactoryJdbc4Plus$AbstractConnection.<init>(FactoryJdbc4Plus.java:323)
    at mondrian.olap4j.FactoryJdbc41Impl$MondrianOlap4jConnectionJdbc41.<init>(FactoryJdbc41Impl.java:118)
    at mondrian.olap4j.FactoryJdbc41Impl.newConnection(FactoryJdbc41Impl.java:32)
    at mondrian.olap4j.MondrianOlap4jDriver.connect(MondrianOlap4jDriver.java:139)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at org.saiku.datasources.connection.SaikuOlapConnection.connect(SaikuOlapConnection.java:111)
    at org.saiku.datasources.connection.SaikuOlapConnection.connect(SaikuOlapConnection.java:57)
    at org.saiku.datasources.connection.SaikuConnectionFactory.getConnection(SaikuConnectionFactory.java:29) …
Run Code Online (Sandbox Code Playgroud)

java olap hbase phoenix saiku

8
推荐指数
1
解决办法
173
查看次数

HBase - WAL和MemStore有什么区别?

我想了解HBase架构.我可以看到两个不同的术语用于相同的目的.

Write Ahead Logs并且Memstore,两者都用于存储尚未持久化的新数据permanent storage.

WAL和MemStore有什么区别?

更新:

WAL - 用于在服务器崩溃时恢复尚未保留的数据.MemStore - 将更新作为Sorted Keyvalue存储在内存中.

在将数据写入磁盘之前,似乎有很多重复数据.

architecture hadoop hbase hdfs

8
推荐指数
1
解决办法
6351
查看次数