Apache Hbase 快速入门

本文节选自《Netkiller Database 手札》

第 62 章 Apache Hbase

目录

  • 62.1. 安装 Apache Hbase
    • 62.1.1. 单机安装
  • 62.2. Hbase Shell
  • 62.3. Web UI
  • 62.4. 配置 Apache Hbase
    • 62.4.1. hbase-env.sh
  • 62.5. FAQ
    • 62.5.1. HBaseConfTool : Unsupported major.minor version 51.0
    • 62.5.2. ignoring option PermSize=128m; support was removed in 8.0

62.1. 安装 Apache Hbase

注意:Apache Hbase 不能使用 OpenJDK 启动,需要去 Oracle 网站下载 Server JRE

62.1.1. 单机安装

如果你是第一次安装Hbase,建议你从单机安装开始,这样成功率比较高,不会受挫。Hbase 不比关系型数据库复杂,只是安装比较麻烦,一旦安装号使用起来还是很容易上手的,请直接粘贴复制下面的命令即可完成安装:

			cd /usr/local/src
wget http://mirrors.hust.edu.cn/apache/hbase/stable/hbase-1.2.6-bin.tar.gz

tar zxf hbase-1.2.6-bin.tar.gz
cp hbase-1.2.6/conf/hbase-site.xml{,.original}
mv hbase-1.2.6 /srv/apache-hbase-1.2.6
ln -s /srv/apache-hbase-1.2.6 /srv/apache-hbase

cp /srv/apache-hbase/conf/hbase-env.sh{,.original}
cat > /srv/apache-hbase/conf/hbase-env.sh <<EOF
export JAVA_HOME=/srv/java
#export HBASE_CLASSPATH=
export HBASE_MANAGES_ZK=true
EOF

cat > /srv/hbase/conf/hbase-site.xml <<EOF
<?xml version="1.0"?>  
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
<configuration>  
	<property>  
		<name>hbase.rootdir</name>  
		<value>file:///tmp/hbase-${user.name}</value>  
	</property>  
</configuration>
EOF			

启动 Apache Hbase

/srv/apache-hbase/bin/start-hbase.sh			

进入 Hbase shell

/srv/apache-hbase/bin/hbase shell

62.2. Hbase Shell

安装完Apache hbase启动后就可以进入 hbase shell了,hbase shell 是与Hbase交互的界面。

首先我们做几个基本操作,例如创建表,写入数据,读取数据等等,你会发现Hbase被神话了,操作其实没有那么复杂,远没有关系型数据库复杂。

		[root@localhost bin]# hbase shell
2017-06-27 21:07:35,524 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017

hbase(main):001:0>		

创建一个名为 t1 的表,使用默认命名空间 namespace=default,这个表有一个column family 为 f1。后面会解释什么是 column family,这里你只要对着操作就可以了。

		hbase(main):002:0> create 't1', 'f1'
0 row(s) in 1.2190 seconds

=> Hbase::Table - t1		

向t1表插入数据字段名(key)是r1,数据值 value 是 ‘value’

		hbase(main):014:0> put 't1', 'r1', 'f1', 'value'
0 row(s) in 0.0060 seconds		

获取表 t1 ,字段名(key)为 r1 的数据

		hbase(main):032:0> get 't1', 'r1'
COLUMN                                              CELL                                                                                                                                                  
 f1:                                                timestamp=1498613275013, value=value                                                                                                                  
1 row(s) in 0.0240 seconds		

扫描表相当于 select * from t1

		hbase(main):034:0> scan 't1'
ROW                                                 COLUMN+CELL                                                                                                                                           
 r1                                                 column=f1:, timestamp=1498613275013, value=value                                                                                                      
1 row(s) in 0.0140 seconds		

删除表,删除表之前需要先禁用该表,然后使用drop命令删除。

		hbase(main):036:0> disable 't1'
0 row(s) in 2.2460 seconds

hbase(main):037:0> drop 't1'
0 row(s) in 1.2310 seconds

hbase(main):038:0>		

退出 Hbase shell

		hbase(main):038:0> exit
[root@localhost bin]# 

62.3. Web UI

除了 Web Shell Hbase 还提供了 Web UI 地址是:

http://localhost:16010/master-status

请确保你的防火墙放行了 16010 端口

[root@localhost conf]# iptables-save | grep 16010
-A INPUT -p tcp -m state --state NEW -m tcp --dport 16010 -j ACCEPT

62.4. 配置 Apache Hbase

62.4.1. hbase-env.sh

环境变量配置文件

HBASE_MANAGES_ZK=true 仅用于单机运行,true表示不使用 Zookeeper

62.5. FAQ

62.5.1. HBaseConfTool : Unsupported major.minor version 51.0

错误提示

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/hadoop/hbase/util/HBaseConfTool : Unsupported major.minor version 51.0			

解决方案,Hbase 不支持 OpenJDK 更换 Oracle Server JRE 后可以解决。

62.5.2. ignoring option PermSize=128m; support was removed in 8.0

jvm 1.8 之后不再支持PermSize和MaxPermSize选项

[root@localhost hbase]# bin/start-hbase.sh
starting master, logging to /srv/hbase/bin/../logs/hbase-root-master-localhost.localdomain.out
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0			

解决方案:"-server -Xms2048m -Xmx4096m"

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2017-06-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏orientlu

FreeRTOS 任务通知

FreeRTOS 从版本 V8.2.0开始提供任务通知这个功能,每个任务都有一个32位的通知值。按照 FreeRTOS 官方的说法,使用消息通知比通过二进制信...

1092
来自专栏程序猿

SQLmap命令的介绍

SQLmap这个工具的使用。(结尾有彩蛋) URL---> 判断注入的参数, 判断是使用的那种SQL注入 识别出那种数据库 根据用户的选择,读出数据 五种注入模...

2853
来自专栏微信公众号:Java团长

从零开发一个Java Web项目要点

本文章详细的列出了开发一个传统JavaWeb项目需要注意的要点,从环境准备开始到三层架构搭建,需要注意的地方全部罗列出来。

963
来自专栏小白安全

SQLMAP命令中文注释

sqlmap常用命令大全 sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap...

2845
来自专栏散尽浮华

Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录

在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据。 线上数据库备份场景: 每周日执行一次全量备份,然后...

3789
来自专栏散尽浮华

[原创]CI持续集成系统环境---部署gerrit环境完整记录

开发同事提议在线上部署一套gerrit代码审核环境,废话不多说,部署gerrit的操作记录如下: 提前安装好java环境,mysql环境,nginx环境 测试系...

2599
来自专栏写写代码吃吃瓜

Tornado中sqlalchemy使用

2566
来自专栏Java架构师历程

ssh工作原理

1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件

953
来自专栏北京马哥教育

【gitlab使用】--gitlab-ce并发超过30引起ip被封1小时的问题

系统环境描述 System information System: Ubuntu 14.04Current User: git Using RVM:...

4345
来自专栏FreeBuf

WordPress 4.6远程代码执行漏洞(CVE-2016-10033)复现环境搭建指南

首先是找到网上的漏洞分析和poc脚本,WordPress <4.7.1 远程代码执行漏洞(非插件无需认证,附Poc,演示视频)——具体关于漏洞的分析不多说了,这...

2727

扫码关注云+社区