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。