我已经安装了Hbase,现在我正在寻找一些PHP库来集成hbase和PHP我试过2个库我试图用thrift连接但是无法这样做第二个是我试图用popHbase连接它但是无法如果有任何其他库可用或者是否有任何可用的工作库使用thrift,有人可以提供给我吗?请建议我,为了PHP与hbase进行通信,我该怎么做.
问候,
我在Ubuntu 11.04上安装hbase时遇到问题.我是ubuntu的新手,实际上是菜鸟!最近,我在我的笔记本电脑上使用单集群配置安装了hadoop-0.20.2,并在其上运行了WordCount示例,它运行正常.然后,我尝试安装hbase-0.90.3,如HBase快速入门中所述.当我启动hbase并尝试create 'test', 'cf'(shell练习)时出现此错误:
ERROR: org.apache.hadoop.hbase.ZooKeeperConnectionException: HBase is able to
connect to ZooKeeper but the connection closes immediately. This could be a sign
that the server has too many connections (30 is the default). Consider inspecting
your ZK server logs for that error and then make sure you are reusing
HBaseConfiguration as often as you can. See HTable's javadoc for more information.
Here is some help for this command:
Create table; pass table name, a dictionary …Run Code Online (Sandbox Code Playgroud) 我可以将一个数字存储为HBase中的Long和Double.它们都在Java中占用8个字节.
使用Double的优点在于它为存储整数提供了更宽的范围.
但是,我认为Long的范围也足以供我使用.
有没有人对Long vs Dobule的序列化和反序列化性能有任何想法?我有兴趣比较它们.
谢谢.
我正在使用HBase的cloudera发行版(hbase-0.94.6-cdh4.5.0)和cloudera管理器来设置所有集群的配置.
我为HBase设置了以下属性:
<property>
<name>hbase.hregion.max.filesize</name>
<value>10737418240</value>
<source>hbase-default.xml</source>
</property>
Run Code Online (Sandbox Code Playgroud)
NB: 10737418240 <=> 10G
因此,根据我阅读的所有文档,数据应累积到一个区域,直到区域大小达到10G.
但是,它似乎没有用......也许我想念一些东西......
这是我的hbase表的所有区域及其大小:
root@hadoopmaster01:~# hdfs dfs -du -h /hbase/my_table
719 /hbase/my_table/.tableinfo.0000000001
0 /hbase/my_table/.tmp
222.2 M /hbase/my_table/08e225d0ae802ef805fff65c89a15de6
602.7 M /hbase/my_table/0f3bb09af53ebdf5e538b50d7f08786e
735.1 M /hbase/my_table/1152669b3ef439f08614e3785451c305
2.8 G /hbase/my_table/1203fbc208fc93a702c67130047a1e4f
379.3 M /hbase/my_table/1742b0e038ece763184829e25067f138
7.3 G /hbase/my_table/194eae40d50554ce39c82dd8b2785d96
627.1 M /hbase/my_table/28aa1df8140f4eb289db76a17c583028
274.6 M /hbase/my_table/2f55b9760dbcaefca0e1064ce5da6f48
1.5 G /hbase/my_table/392f6070132ec9505d7aaecdc1202418
1.5 G /hbase/my_table/4396a8d8c5663de237574b967bf49b8a
1.6 G /hbase/my_table/440964e857d9beee1c24104bd96b7d5c
1.5 G /hbase/my_table/533369f47a365ab06f863d02c88f89e2
2.5 G /hbase/my_table/6d86b7199c128ae891b84fd9b1ccfd6e
1.2 G /hbase/my_table/6e5e6878028841c4d1f4c3b64d04698b
1.6 G /hbase/my_table/7dc1c717de025f3c15aa087cda5f76d2
200.2 M /hbase/my_table/8157d48f833bb3b708726c703874569d
118.0 M /hbase/my_table/85fb1d24bf9d03d748f615d3907589f2
2.0 G /hbase/my_table/94dd01c81c73dc35c02b6bd2c17d8d22
265.1 M …
我正在通过oozie java动作运行测试hbase java程序.遇到以下错误:
Failing Oozie Launcher, Main class [HbaseTest], main() threw exception, org/apache/hadoop/hbase/HBaseConfiguration
java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration
at HbaseTest.main(HbaseTest.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:495)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:417)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:332)
at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1438)
at org.apache.hadoop.mapred.Child.main(Child.java:262)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 14 more
Run Code Online (Sandbox Code Playgroud)
该程序从命令行正确运行:
java -cp `hbase classpath` HbaseTest
Run Code Online (Sandbox Code Playgroud)
有没有办法可以将'hbase classpath'的输出传递给oozie java动作.我不想将hbase jar复制到工作流的lib目录,因为这将是一个维护开销.
以下是来自的java动作workflow.xml:
<java>
<job-tracker>${jobTracker}</job-tracker> …Run Code Online (Sandbox Code Playgroud) 我正在做一个批处理作业,以通过HTableInterface将一批对象放入HBase。有两种API方法,即HTableInterface.put(List)和HTableInterface.put(Put)。
我想知道,对于相同数量的Put对象,批处理是否比逐个放置更快?
另一个问题是,我放置了一个非常大的Put对象,这导致作业失败。放置对象的大小似乎受到限制。可以多大?
什么更快/更容易转换为SQL,接受SQL脚本作为输入:Spark SQL作为Hive高延迟查询或Phoenix的一层速度?如果是这样,怎么样?我需要对数据进行大量的upserts/join/grouping.[HBase的]
在Cassandra CQL之上是否有任何替代方案可以支持上述(以实时方式加入/分组)?
因为我想利用MLlib,所以我很可能一定要使用Spark.但是为了处理应该是我的选择的数据呢?
谢谢,克拉斯特
我正在使用Java HBase API从Hbase获取值.这是我的代码.
public class GetViewFromHbaseBolt extends BaseBasicBolt {
private HTable table;
private String zkQuorum;
private String zkClientPort;
private String tableName;
public GetViewFromHbaseBolt(String table, String zkQuorum,
String zkClientPort) {
this.tableName = table;
this.zkQuorum = zkQuorum;
this.zkClientPort = zkClientPort;
}
@Override
public void prepare(Map config, TopologyContext context) {
try {
table = getHTable();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void execute(Tuple tuple, BasicOutputCollector collector) {
try {
if (tuple.size() > 0) {
Long dtmid = tuple.getLong(0);
byte[] …Run Code Online (Sandbox Code Playgroud) 单列上的过滤列表家庭工作,但多个columnFamily返回0行.问题陈述与如何将多个QualifierFilter应用于HBase中的行相同
但我不能使用SingleColumnValueFilter,因为列限定符是时间戳.所以我的过滤器看起来像:
val master_filter_list = new FilterList()
val outer_fl_A = new FilterList()
val cf_filter = new FamilyFilter (CompareOp.EQUAL, new BinaryComparator("ac".getBytes))
val qualifier_range = new ColumnRangeFilter(Bytes.toBytes(fromDate.getMillis), true, Bytes.toBytes(toDate.getMillis), true)
val ac_fl = new ValueFilter(comparison_operator, new BinaryComparator(Bytes.toBytes(value.toString.toInt)))
outer_fl_A.addFilter(cf_filter)
outer_fl_A.addFilter(qualifier_range)
outer_fl_A.addFilter(ac_fl)
master_filter_list.addFilter(outer_fl_A)
val outer_fl_B = new FilterList()
val cf_filter = new FamilyFilter (CompareOp.EQUAL, new BinaryComparator("t".getBytes))
val qualifier_range = new ColumnRangeFilter(Bytes.toBytes(fromDate.getMillis), true, Bytes.toBytes(toDate.getMillis), true)
val ts_fl = new ValueFilter(comparison_operator, new BinaryComparator(value.toString.getBytes))
outer_fl_B.addFilter(cf_filter)
outer_fl_B.addFilter(qualifier_range)
outer_fl_B.addFilter(ts_fl)
master_filter_list.addFilter(outer_fl_B)
Run Code Online (Sandbox Code Playgroud)
只从表中获得具有outer_fl_A AND outer_fl_B的行的正确方法是什么?
hbase ×10
hadoop ×3
java ×3
apache-spark ×1
apache-storm ×1
cassandra ×1
connection ×1
hive ×1
installation ×1
mocking ×1
oozie ×1
performance ×1
phoenix ×1
php ×1
region ×1
split ×1
thrift ×1