gpt4 book ai didi

java - 使用java api连接Hbase时卡住

转载 作者:可可西里 更新时间:2023-11-01 16:15:17 31 4
gpt4 key购买 nike

我的本​​地环境:

OS X 10.9.2、Hbase-0.94.17、Java 1.6

我的Hbase模式:独立

我可以在shell中进行操作,但是当我使用java api时,它不起作用。

我的java代码:

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.util.Bytes;


public class MyLittleHBaseClient {
public static void main(String[] args) throws IOException {

Configuration config = HBaseConfiguration.create();
config.addResource("/Users/apple/Documents/tools/hbase-0.94.17/conf/hbase-site.xml");

HTable table = new HTable(config, "myLittleHBaseTable");

Put p = new Put(Bytes.toBytes("myLittleRow"));

p.add(Bytes.toBytes("myLittleFamily"), Bytes.toBytes("someQualifier"),
Bytes.toBytes("Some Value"));

table.put(p);

Get g = new Get(Bytes.toBytes("myLittleRow"));
Result r = table.get(g);
byte [] value = r.getValue(Bytes.toBytes("myLittleFamily"),
Bytes.toBytes("someQualifier"));

String valueStr = Bytes.toString(value);
System.out.println("GET: " + valueStr);

Scan s = new Scan();
s.addColumn(Bytes.toBytes("myLittleFamily"), Bytes.toBytes("someQualifier"));
ResultScanner scanner = table.getScanner(s);
try {

for (Result rr = scanner.next(); rr != null; rr = scanner.next()) {
// print out the row we found and the columns we were looking for
System.out.println("Found row: " + rr);
}

} finally {

scanner.close();
}
}
}

这是我的一些 conf 文档:

###########################################hbase-env.sh:
export JAVA_HOME=`/usr/libexec/java_home -v '1.6*'`
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
###########################################hbase-site.sh:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///Users/apple/Documents/tools/hbase-0.94.17/hbase-rootdir/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/Users/apple/Documents/tools/hbase-0.94.17/hbase-zookeeper/zookeeper</value>
</property>
</configuration>

当我运行上面的 java 代码时,我得到了以下信息:

log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
2014-03-31 13:20:15.037 java[873:1003] Unable to load realm info from SCDynamicStore

然后控制台就停在这里,什么也没有给出。(没有更多的 react )

另外,我在此处附上我的/Users/apple/Documents/tools/hbase-0.94.17/logs/hbase-apple...local.log:

https://docs.google.com/file/d/0BxtBre5A8J61Y2k3SXNtNGs1WXM/edit

感谢您的耐心解答,您的回答对我有很大的帮助:)

最佳答案

在您的配置文件“hbase-env.sh”中:而不是您所拥有的行:
导出 HBASE_OPTS="-XX:+UseConcMarkSweepGC"
添加:
-Djava.security.krb5.realm= -Djava.security.krb5.kdc=
所以该行将是
export HBASE_OPTS="-XX:+UseConcMarkSweepGC -Djava.security.krb5.realm= -Djava.security.krb5.kdc="
在此处查找上下文:Hadoop on OSX "Unable to load realm info from SCDynamicStore"

关于java - 使用java api连接Hbase时卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22755912/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com