问题标签 [hbase-client]
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.
scala - 无法从 Eclipse 访问 HBase 数据库(在安全集群上运行)?
尝试HBase database
从Windows
.
集群是secured using Kerberos
身份验证,所以它没有连接到 Hbase 数据库。
每次我们创建 jar 文件并在集群中运行时。但这对开发和调试没有用。
我如何设置hbase-site.xml
类路径?
我下载*site.xml
的文件尝试添加hbase-site.xml, core-site.xml and hdfs-site.xml
assource
文件夹并尝试将此文件添加为项目构建路径中的外部类文件夹,但没有任何效果。我如何使它工作?
无论如何我们可以hbase-site.xml
在 sqlContext 中设置,因为我使用 sqlContext 来使用 HortonWorks 连接器读取 Hbase 表。
错误日志是:
apache-spark - Spark 和 Hbase-client 中的版本兼容性
我正在尝试编写 Spark 批处理作业。我想将它打包到一个 jar 中并与 spark submit 一起使用。我的程序在 spark-shell 中运行良好,但是当我尝试使用 spark 提交运行它时出现以下错误:
根据这个答案,问题源于版本不兼容。我也找到了这个,但我的 spark 版本是 1.6.0 这是我的项目的 .sbt 文件:
我的导入和导致错误的代码段如下:/SimpleApp.scala / import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import org.apache.spark.SparkConf
hbase - Hbase Table.batch 需要 300 秒将 800,000 个条目插入表中
我正在阅读一个大小为 30 mb 的 json 文件,用于创建列族和键值。然后创建 Put 对象,将 rowkey 和 values 插入其中。创建此类放置对象的列表并调用 Table.batch() 并传递此列表。当我的数组列表大小为 50000 时,我会调用它。然后清除列表并调用下一批。然而,处理最终有 800,000 个条目的文件需要 300 秒。我也厌倦了 table.put 但它更慢。我正在使用 hbase 1.1。我从 Kafka 得到那个 json。任何提高性能的建议表示赞赏。我检查了 SO 论坛,但没有太多帮助。如果您想查看它,我将分享代码。
问候
拉加文德拉
hadoop - 由于 hbase 客户端 jar 中的硬编码 managed=true 无法连接到 Bigtable 以扫描 HTable 数据
我正在开发一个自定义加载函数,以使用 Dataproc 上的 Pig 从 Bigtable 加载数据。我使用从 Dataproc 获取的以下 jar 文件列表编译我的 java 代码。当我运行以下 Pig 脚本时,它在尝试与 Bigtable 建立连接时失败。
错误信息是:
问题:
- 有解决这个问题的方法吗?
- 这是一个已知问题吗?是否有修复或调整的计划?
- 是否有不同的方法可以将多重扫描实现为适用于 Bigtable 的 Pig 的加载函数?
细节:
罐子文件:
这是一个使用我的自定义加载函数的简单 Pig 脚本:
我的自定义加载函数 HBaseMultiScanLoader 创建一个 Scan 对象列表,以对表 events_sessions 中的不同数据范围执行多次扫描,该表由 gte 和 lt 之间的时间范围确定,并由 SHARD_FIRST 到 SHARD_LAST 分片。
HBaseMultiScanLoader 扩展了 org.apache.pig.LoadFunc,因此它可以在 Pig 脚本中用作加载函数。当 Pig 运行我的脚本时,它会调用 LoadFunc.getInputFormat()。我的 getInputFormat() 实现返回了我的自定义类 MultiScanTableInputFormat 的一个实例,它扩展了 org.apache.hadoop.mapreduce.InputFormat。MultiScanTableInputFormat 初始化 org.apache.hadoop.hbase.client.HTable 对象以初始化与表的连接。
深入研究 hbase-client 源代码,我看到 org.apache.hadoop.hbase.client.ConnectionManager.getConnectionInternal() 调用 org.apache.hadoop.hbase.client.ConnectionManager.createConnection() 具有硬编码的属性“managed”为“真”。您可以从下面的堆栈跟踪中看到,我的代码 (MultiScanTableInputFormat) 尝试初始化一个调用 getConnectionInternal() 的 HTable 对象,该对象不提供将 managed 设置为 false 的选项。沿着堆栈跟踪,您将到达 AbstractBigtableConnection,它不接受 managed=true 并因此导致与 Bigtable 的连接失败。
这是显示错误的堆栈跟踪:
hadoop - 无法使用连接工厂连接到 BigTable
我正在使用自定义代码使用以下 API 将 HFiles 直接加载到 BigTable 中,
LoadIncrementalHFiles loader = new LoadIncrementalHFiles(conf);
loader.doBulkLoad(new Path(inputPath), admin, table, regionLocator);
同时使用 ConnectionFactory 我在语句中使用以下函数
它总是返回参数managed
asfalse
但我在运行它时收到以下错误。
java - HBase BufferedMutator vs PutList performance
I recently came across BufferedMutator class of HBase which can be used for batch inserts and deletes.
I was previously using a List to put data as hTable.put(putList)
to do the same.
Benchmarking my code didn't seem to show much difference too, where I was instead doing mutator.mutate(putList);
.
Is there a significant performance improvement of using BufferedMutator over PutList?
java - hbase-client 2.0.x 错误
我正在尝试使用 hbase-client java API 连接到远程 hbase 服务器。到目前为止,我已经能够使其与 hbase-client 版本 1.3.1 一起使用。但是为了解决与 gRPC 的依赖冲突,我正在尝试使用 hbase-client 版本 2.0.x。
当我尝试在 hbase java 客户端版本 2.0.x 中使用 `admin.tableExists(tableName) 时出现此错误。
但大多数其他数据持久化 API 都照常工作。这可能是由于依赖问题或与服务器的版本不匹配。
非常感谢任何解决该问题的建议。
Hbase 服务器版本:1.2.4
POM如下,
sql - 转换为长数据类型 - BigQuery
BigQuery 和 SQL 新手在这里。我在这里浏览了大查询支持的可能数据类型。我在 bigtable 中有一个类型的列,bytes
它的原始数据类型是 scala Long
。这bytes
已从我的应用程序代码转换为并存储在 bigtable 中。我正在尝试在 BigQuery UI 中执行CAST(itemId AS integer)
(itemId
列名在哪里),但输出CAST(itemId AS integer)
为 0 而不是实际值。我不知道该怎么做。如果有人能指出我正确的方向,那么我将不胜感激。
编辑:添加更多细节
示例itemId
是190007788462
以下是写入itemId
大表的代码。我已经包含了相关的方法。用于hbase client
写入大表。
}
以下是基于上述代码的大表中的条目
以下是从 scala 中的大表中读取条目的相关代码。这可以正常工作。Result
是一个org.apache.hadoop.hbase.client.Result
}
上面的getItemId
函数正确返回itemId
. 那是因为Bytes.toLong
它的一部分org.apache.hadoop.hbase.util.Bytes
正确地将字节字符串转换为长。
我正在使用与此类似的大查询 UI并使用CAST(itemId AS integer)
,因为 BigQuery 没有Long
数据类型。这错误地将itemId
字节字符串转换为整数,结果值为0
.
有什么方法可以让我在 BigQuery UI 中获得Bytes.toLong
等价物?hbase-client
如果没有,我还有其他方法可以解决这个问题吗?
hadoop - 将 hbase 客户端从 0.98 升级到 1.1 时出现 TableNotFoundException
我刚刚从版本 0.98 升级到 HortonWorks HBase 客户端 1.1.2.2.4.2.0-258。在本地一切正常,但几分钟后在生产负载下我开始出现 TableNotFoundException:
该行为似乎是随机且不可预测的,例如重复相同的请求就可以了(即不抛出异常并且成功检索数据)
我试图了解从 0.98 到 1.1 的变化,我发现的唯一重要的事情是https://issues.apache.org/jira/browse/HBASE-16973
玩弄这些价值观并没有帮助。
还有什么我应该考虑的吗?任何指针都非常感谢!
谢谢!