草庐IT

HBASE_CLASSPATH

全部标签

java - JDBC 与 HBase?

因为我想把数据存储在HDFS上,所以需要访问HBase,那么如何使用JavaAPI连接到HBase。请提出建议。谢谢。 最佳答案 HBase有JavaAPI。看看http://hbase.apache.org/apidocs/index.html两个重要的类是1)HBaseAdmin2)表格HBaseAdmin是用于创建/删除/更改表的管理APIHTable是用于放置/获取/扫描记录的客户端API。 关于java-JDBC与HBase?,我们在StackOverflow上找到一个类似的问

hadoop - 如何将 hbase 表打印到制表符分隔的文本文件

我正在尝试找到一种方法将hbase查询结果读取到制表符分隔的文本文件中。hbase表people的结构:12column-name=name;value=JohnSmith10column-name=name;value=JackJohnson我想将它输出到这样创建的文本文件中:-12(tab)JohnSmith-10(tab)JackJohnson是否有任何工具可用于此,例如导出可用于将hbase输出到hdfs? 最佳答案 如果您只需要导出一个完整的表,HBase附带一个实用程序来执行此操作,请参阅here另一种选择是使用Pig,

hadoop - 如何使用 starttime endtime 导出 hbase 表?

我正在尝试执行增量备份,我已经检查了导出选项但无法确定开始时间选项。另外请在CopyTable上提出建议,我该如何恢复。 最佳答案 使用CopyTable您刚刚在thesameoranothercluster上收到给定表格的副本(实际上是CopyTableMapReduce作业)。没有奇迹。如何恢复由您自己决定。明显的选择是:使用相同的工具将表格复制回来。只需获取/放置选定的行(我认为您在这里需要)。请注意,在回传数据时应保留时间戳。实际上,对于增量备份,您只需编写扫描表并将具有给定时间戳的行获取/放入具有按日期计算的名称的表的作业

hadoop - HBase错误: Server IPC version 8 cannot communicate with client version 4

我使用的是hbase-0.94.9,我试着按照HBase在线书籍的介绍,但是我得到了错误:org.apache.hadoop.hbase.master.HMasterCommandLine:Failedtostartmasterjava.net.ConnectException:Calltolocalhost/127.0.0.1:8020failedonconnectionexception:java.net.ConnectException然后我在网上发现我必须先设置Hadoop,我在Hadoop2.0.5-alpha中使用了start-dfs.sh但是现在我得到这个错误,当我尝试运

hadoop - 如何在 Hive-HBase-Integration 中在 Hive 和 Hbase 之间移动或反射(reflect)数据。?

据我了解,HIVE和HBASE都使用HDFS来存储数据。当我们整合HIVE和HBASE----数据如何在它们之间移动?或者它就像数据不会移动而只是反射(reflect)?我有兴趣了解两种情况。一:Table_1有数据及其在HIVE中,Table_2有数据及其在HBASE中。现在集成发生了(这种情况是否可能?)。数据移动是如何发生的?是从HBASE到HIVE还是从HIVE到HBASE。二:设置为场景一。现在为新插入的记录。他们会去哪里?我是HBASE的新手,有兴趣通过示例详细了解数据移动。如果需要,请改进问题。提前致谢。 最佳答案 H

hadoop - 原生 mapreduce VS hbase mapreduce

如果我使用TableMapReduceUtil(Hbase)创建MR作业,似乎hbase扫描器将数据馈送到映射器并将数据从reducer转换为特定的hbase输出格式以将其存储在hbase表中。出于这个原因,我预计hbasemapreduce作业将比本地MR作业花费更多时间。那么,Hbase作业比原生MR需要多长时间? 最佳答案 关于通过HBase进行的读取可能比直接使用文件的本地map/reduce慢2-3倍。在recentlyannouncedHBase0.98他们添加了对HBase快照进行映射/缩减的功能。可以看到thispr

bash - 如何在不每次调用 shell 的情况下循环 HBase shell 中的命令

我编写了一个脚本来计算每2小时有多少条记录被插入到3个单独的HBase表中。我知道它很劣质,但效果很好,我检索到了所需的结果....但是,每次它在循环中工作时,我都必须调用HBaseshell。有没有办法改进我的代码,这样我就不必这样做来加快速度?#!/bin/bashdeclare-ahbaseTables=("table1""table2""table3");foriin"${hbaseTables[@]}"doecho$i>>results.txttime=1431925200000for((x=0;x>results.txtscan'$i',{TIMERANGE=>[$time

hadoop - 在 HBase 设置行 TTL

我正在尝试将TTL设置为Hbase中的一行。我无法将TTL设置到列族,因为该表已经存在并且我无法更改它。我尝试的是使用setTTLPut操作中的函数。但这似乎不起作用,因为即使时间已经过去,当我对表进行扫描操作时信息仍然存在。如果我在函数中输入一个负值,表中就没有任何数据,我认为这是有道理的,因为我使用的是负ttl,因此根本不会存储数据。..1)你认为我使用了正确的功能吗?2)有没有办法在HBase中查看此信息(一行的TTL值)?编辑:这是一个describe命令的输出(请注意我无法更改列族的TTL值):hbase(main):010:0>describe"Snapshot"Table

hadoop - 同时使用HBase做小数据集和大数据分析?

我正在构建一个需要大量数据处理和分析(同时处理大量文件)的应用程序。我打算为此使用Hadoop(Map-reduce、Hbase(HDFS文件系统))。同时我有一些小的数据集,比如用户设置、应用程序用户列表、支付信息和其他可以在任何RDMS数据库(如sql或Mongo)上轻松管理的数据集。有时它可能只有很少的由Hadoop计算的聚合和分析数据,但这些数据也不是那么大。我的问题是我是否应该选择2个数据库,如Mysql/Mongo来存储小数据集和HBase来存储大数据集?或者我的HBase可以高效地完成这两项工作? 最佳答案 Myopi

hadoop - 使用 MapReduce 在 HBase 中插入多行

我想从每个映射器批量插入N行到HBase表。我目前知道有两种方法可以做到这一点:创建Put的列表对象和使用put(Listputs)HTable的方法实例并确保禁用autoFlush参数。使用TableOutputFormat类和使用context.write(rowKey,put)方法。哪个更好?第一种方式,context.write()不需要,因为hTable.put(putsList)方法用于直接将数据放入表中。我的映射器类正在扩展ClassMapper,那么我应该为KEYOUT使用什么类呢?和VALUEOUT?在第二种方式中,我必须调用context.write(rowKey,