问题标签 [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.

0 投票
1 回答
433 浏览

scala - 无法从 Eclipse 访问 HBase 数据库(在安全集群上运行)?

尝试HBase databaseWindows.

集群是secured using Kerberos身份验证,所以它没有连接到 Hbase 数据库。

每次我们创建 jar 文件并在集群中运行时。但这对开发和调试没有用。

我如何设置hbase-site.xml类路径?

我下载*site.xml的文件尝试添加hbase-site.xml, core-site.xml and hdfs-site.xmlassource文件夹并尝试将此文件添加为项目构建路径中的外部类文件夹,但没有任何效果。我如何使它工作?

无论如何我们可以hbase-site.xml在 sqlContext 中设置,因为我使用 sqlContext 来使用 HortonWorks 连接器读取 Hbase 表。

错误日志是:

0 投票
1 回答
783 浏览

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

0 投票
1 回答
1123 浏览

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 论坛,但没有太多帮助。如果您想查看它,我将分享代码。

问候

拉加文德拉

0 投票
2 回答
277 浏览

hadoop - 由于 hbase 客户端 jar 中的硬编码 managed=true 无法连接到 Bigtable 以扫描 HTable 数据

我正在开发一个自定义加载函数,以使用 Dataproc 上的 Pig 从 Bigtable 加载数据。我使用从 Dataproc 获取的以下 jar 文件列表编译我的 java 代码。当我运行以下 Pig 脚本时,它在尝试与 Bigtable 建立连接时失败。

错误信息是:

问题:

  1. 有解决这个问题的方法吗?
  2. 这是一个已知问题吗?是否有修复或调整的计划?
  3. 是否有不同的方法可以将多重扫描实现为适用于 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 的连接失败。

这是显示错误的堆栈跟踪:

0 投票
1 回答
791 浏览

hbase - 我的 hbase 客户端的 hconnections 太多

为了获得最大吞吐量,我使用批量 put 和 increments 将数据放入 hbase,代码示例:

有 233 个 h 连接。和线程堆栈: 在此处输入图像描述

hbase 客户端版本:

0 投票
1 回答
215 浏览

hadoop - 无法使用连接工厂连接到 BigTable

我正在使用自定义代码使用以下 API 将 HFiles 直接加载到 BigTable 中, LoadIncrementalHFiles loader = new LoadIncrementalHFiles(conf); loader.doBulkLoad(new Path(inputPath), admin, table, regionLocator); 同时使用 ConnectionFactory 我在语句中使用以下函数

它总是返回参数managedasfalse但我在运行它时收到以下错误。

0 投票
1 回答
3746 浏览

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?

0 投票
4 回答
3711 浏览

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如下,

0 投票
1 回答
815 浏览

sql - 转换为长数据类型 - BigQuery

BigQuery 和 SQL 新手在这里。我在这里浏览了大查询支持的可能数据类型。我在 bigtable 中有一个类型的列,bytes它的原始数据类型是 scala Long。这bytes已从我的应用程序代码转换为并存储在 bigtable 中。我正在尝试在 BigQuery UI 中执行CAST(itemId AS integer)itemId列名在哪里),但输出CAST(itemId AS integer)为 0 而不是实际值。我不知道该怎么做。如果有人能指出我正确的方向,那么我将不胜感激。

编辑:添加更多细节
示例itemId190007788462

以下是写入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如果没有,我还有其他方法可以解决这个问题吗?

0 投票
1 回答
269 浏览

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

玩弄这些价值观并没有帮助。

还有什么我应该考虑的吗?任何指针都非常感谢!

谢谢!