在学习Hadoop的过程中,你可能会遇到在Hadoop创建Hbase表的问题,本节和大家介绍一下,欢迎大家一起来学习在Hadoop创建Hbase表的方法。
在Hadoop创建Hbase表
之前项目组曾经尝试过Hadoop来进行DFS存储,但是因为当时Hadoop版本不稳定,或者是我们使用的不深入,感觉Hadoop不是太稳定,有些文件扫描时会出错,因此就放弃了Hadoop的方案。最近在寻找大容量样本数据库的方案,又想起Hadoop来了,而且最近新出的HBase构建在Hadoop之上,实现了一个类似Bigtable的存储结构,恰好能满足要求。拿来尝试下。
安装很简单,下载HBase的文件,解压,修改下conf/hbase-site.xml,测试时简单的用本机:
hbase.rootdir
file:///tmp/hbase-${user.home}/hbase
修改conf/hbase-env.sh,把JAVA_HOME路径写进去。ok了
执行hbase/bin/start-hbase.sh启动一个hbase服务器。
运行hbase/bin/hbaseshell进入HQL的shell。
进入HQLshell有种熟悉的感觉,如同mysql或者sqlite的shell,试着创建了一个表:
createtableuser(name,age);~运行ok,很简单。
在Hadoop创建Hbase表时插入条数据:
hql>insertintouser(name,age)values("AlbertLee",26);
Syntaxerror:Type'help;'forusage.
Message:Encountered";"atline1,column56.
hql>
oh,出错了,看help,原来需要一个row的key,之前看过Google的Bigtable的论文,大概知道这个rowkey是定位一行数据的
hql>insertintouser(name,age)values("AlbertLee",26)whererow='al';
1rowinsertedsuccessfully.(0.12sec)
ok,查询:
hql>select*fromuser;
+-------------------------+-------------------------+-------------------------+
|Row|Column|Cell|
+-------------------------+-------------------------+-------------------------+
|al|age:|26|
+-------------------------+-------------------------+-------------------------+
|al|name:|AlbertLee|
+-------------------------+-------------------------+-------------------------+
恩,看到Rowal这个行,有两个Column,一个age,一个name。没有发现Update语句而是直接用Insert,改下数据覆盖掉就可以了,应该会记录不同的版本的数据的,具体再试验。本节关于在Hadoop创建Hbase表内容介绍到这里,谢谢关注。
【编辑推荐】