问题标签 [hbase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 从我的 java/mysql webapp 启动 map reduce 工作
我需要一些架构建议。我有一个基于 java 的 webapp,一个基于 JPA 的 ORM 支持一个 mysql 关系数据库。现在,作为应用程序的一部分,我有一个批处理作业,可以相互比较数千条数据库记录。这项工作变得过于耗时,需要并行化。我正在考虑使用 mapreduce 和 hadoop 来做到这一点。但是,我不太确定如何将其集成到我当前的架构中。我认为最简单的初始解决方案是找到一种将数据从 mysql 推送到 hadoop 作业的方法。我对此做了一些初步研究,发现了以下相关信息和可能性:
1) https://issues.apache.org/jira/browse/HADOOP-2536这给出了一些内置 JDBC 支持的有趣概述 2) 这篇文章http://architects.dzone.com/articles/tools-moving-sql -database描述了一些将数据从 mysql 移动到 hadoop 的第三方工具。
老实说,我刚开始学习 hbase 和 hadoop,但我真的不知道如何将其集成到我的 webapp 中。
任何意见是极大的赞赏。干杯,布赖恩
java - 复制独立的 HBase 0.2 部署
据我所知,HBase 的当前稳定版本 0.2 不支持复制,尽管它正在构建到下一个版本中。
您如何建议复制 HBase (0.2) 的独立(非分布式)部署?
我希望将辅助实例用作工作备份,即只读。我可以负担得起具有“最终一致性”的异步备份和少量丢失(数据是非关键的)。
到目前为止,我唯一的想法是在写入主实例之后异步手动更新辅助实例。
hadoop - HBase NoServerForRegionException?
当我有一段时间没有与 HBase 沟通时,我得到了这个异常:
org.apache.hadoop.hbase.client.NoServerForRegionException:尝试定位根区域时超时,因为:连接被拒绝
这是否与会话到期有关,如果是,我如何延长会话寿命?
hbase - 如何存储和查询非常大的数据集(除了关系数据库)
我们目前面临的问题是如何有效地从非常大的数据集(数十亿)中存储和检索数据。我们一直在使用 mysql 并优化了系统、操作系统、raid、查询、索引等,现在正在寻求继续前进。
我需要就采用何种技术来解决我们的数据问题做出明智的决定。我一直在研究使用 HDFS 的 map/reduce,但也听说过有关 HBase 的好消息。我不禁想到还有其他选择。是否对可用的技术进行了很好的比较,以及每种技术的权衡是什么?
如果您有每个链接可以分享,我也将不胜感激。
c# - HBase 列 RegEx 通过 C# 中的 Thrift
我正在使用 thrift 接口 ( http://apache.mesi.com.ar//incubator/thrift/0.5.0-incubating/ ) 访问集群上的 HBase。我可以连接、获取和显示记录;使用开始日期和结束日期。
也可以在列限定符中传递正则表达式。
我的问题很简单——如何?
我的工作代码:
ToByteArray()
and是扩展函数,其中ToByteArrayList()
...List 为每个字符串调用 ToByteArray,列表中的内容等。我把它放在下面,以防我的 string->byte[] 转换方法可能导致问题。
当我运行上面的代码时,它返回的数据因 和 的变化而START_ROW
异STOP_ROW
。:
如果我在 List 中的条目中添加一个冒号 ( ),COLUMN_FAMILY:
它仍然会返回数据。如果我在其中输入一个完整的列名,COLUMN_FAMILY:http://www.myurl.com/more/goes/here
它将获得该 URL 的所有值。
我想要做的是拥有COLUMN_FAMILY:http://www.myurl.com/.*
(或其他正则表达式)并让它返回相关数据,就像文档似乎说的那样。
我只需要一两个例子。我认为我缺少一些格式或技巧来使正则表达式正常工作。
hadoop - HBase 连接异常
我尝试在伪分布式模式下运行 HBase。但是在我设置 hbase-site.xml 后它不起作用。
每次我尝试在 hbase shell 中运行命令时,都会收到此错误:
错误:org.apache.hadoop.hbase.ZooKeeperConnectionException:org.apache.hadoop.hbase.ZooKeeperConnectionException:org.apache.zookeeper.KeeperException$ConnectionLossException:KeeperErrorCode = connectionLoss for /hbase
我设置了 ssh 并确保所有端口都是正确的。
此外,我无法停止 hbase ./bin/stop-hbase.sh
。我只得到以下输出。
cassandra - SSTables 或 Hfile 是否合并到 1TB 以上?
在major compaction中,将区域服务器(Hbase)中的所有sstables和所有SSTables形成tablet server(Cassandra)合并成一个大的。
如果周期来了,是否将平均 SSTables(总空间超过 1TB)合并为一个?可能有一些 SSTable 或 HFile 的范围界限将其分成几个部分 - 以确保合并操作不会“重写所有服务器”?
我的问题与此链接http://wiki.apache.org/cassandra/MemtableSSTable的“压缩”部分有关
java - HBase java.lang.OutOfMemoryError
我在使用 Hbase 时遇到以下问题。
我有一个脚本,它启动 HBase shell 并将多行插入到具有单列的表中。我尝试插入 10,000 行,但在大约 1,700 行之后,我得到了可怕的“java.lang.OutOfMemoryError:无法创建新的本机线程”错误。我尝试将 Java 堆大小从默认的 1000mb 更改为 1800mb,但这不允许我插入超过 1700 行左右的行。
但是,我注意到我可以插入 1000 行,退出 shell,重新启动 shell,在同一个表中再插入 1000 行,再次退出,等等。我对 JVM 的了解还不够,无法弄清楚为什么它允许我在多个会话中执行此操作,但不允许我在同一个会话中批量插入。
有人可以向我解释这里发生了什么,以及我可以做些什么吗?
编辑:
我现在使用 64 位机器,red hat linux 5,Java 1.6。我给 HBase 的堆大小为 20gb(我总共有大约 32 gigs 内存)。对于堆栈大小,我给 8mb。我相信 64 位的默认值是 2mb;使用 2mb 时我遇到了同样的错误,将其增加到 8mb 根本没有帮助(无论堆栈大小如何,我都只能插入相同数量的行,~1700)。
我已经读过减小堆大小可以使这个错误消失,但这也无济于事。下面是我正在设置的 jvm 选项(除了堆栈大小,一切都是默认的)。
java - HBase 列宽扫描和获取
假设我创建了一个表
rowkey (attrId+attr_value) //复合键
列 => 文档:文档 1,文档:文档 2,...
当使用扫描功能时,我每次都会在迭代器中获取 1 行,如果列限定符达到数百万个条目怎么办。你如何循环,会有缓存问题吗?
谢谢。
hbase - 无法访问 HBase 表
我有一个由 5 个节点组成的集群,我在 HBase 上创建了一些表并用数据填充它。其中一个节点失败,现在我可以列出 HBase 上的所有表,但是扫描或禁用其中两个表会给出
NativeException: org.apache.hadoop.hbase.client.NoServerForRegionException: No server address listed in .META. for region TableName,,1295871604968
我想删除这张桌子,但无法解决这个问题。我为此使用了 hbase shell。