Hbase客户端Lealone测试报告


1、由于Lealone只支持hbase 0.94版本,所以在编译好支持Hadoop 2.2.0的hbase 0.94版本之后,才可以进行相关测试。

2、在编译Lealone时发现pom.xml文件中设置的hadoop版本为1.0.4,尝试修改为2.2.0时提示错误,结果又改回为1.0.4,编译成功。

3、使用编译好的安装包,安装官网的说明进行配置。

4、使用官网的测试代码进行测试,发现只能访问本地地址localhost或者127.0.0.1,访问远程IP地址会报错,官网没有提供修改IP和端口号的配置说明。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JDBCExample {
public static void main(String[] args) throws Exception {
    String url = "jdbc:lealone:tcp://localhost:5210/hbasedb";
    Connection conn = DriverManager.getConnection(url, "sa", "");
    Statement stmt = conn.createStatement();

    stmt.executeUpdate("CREATE TABLE IF NOT EXISTS test (f1 int primary key, f2 long)");

    stmt.executeUpdate("INSERT INTO test(f1, f2) VALUES(1, 2)");
    stmt.executeUpdate("UPDATE test SET f2 = 1");
    ResultSet rs = stmt.executeQuery("SELECT * FROM test");
    while (rs.next()) {
        System.out.println("f1=" + rs.getInt(1) + " f2=" + rs.getLong(2));
        System.out.println();
    }
    stmt.executeUpdate("DELETE FROM test WHERE f1 = 1");

    //stmt.executeUpdate("DROP TABLE IF EXISTS test");
}
}

5、运行此测试代码会报如下错误:

Exception in thread "main" org.lealone.message.JdbcSQLException: Table "TEST" not found; 

 

6、通过hbase shell下,执行list命令,可以查到新建了2个存储元数据的hbase表,但是内容均为空。

lealone_ddl_redo_table                                                               

lealone_meta_data_table                                                              

2 row(s) in 0.9860 seconds

 

7、初步怀疑是之前编译时使用的是默认的hadoop 1.0.4的包造成的数据写入失败,也有可能是Lealone自身的bug造成的。

 

8、经过一系列的问题之后,决定放弃hbase 0.94系列和Lealone,接下来打算测试apache phoenix。

 

你可能感兴趣的:(hadoop)