hadoop之HBase集群搭建及使用
2015-06-22 20:14
639 查看
集群搭建
部署计划:
1.上传hbase安装包
2.解压
3.配置hbase集群,要修改3个文件(首先zk集群已经安装好了)
注意:要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下
3.1修改hbase-env.sh
4.将配置好的HBase拷贝到每一个节点并同步时间。
5.启动所有的hbase
分别启动zk
启动hdfs集群
启动hbase,在主节点上运行:
6.通过浏览器访问hbase管理页面
7.为保证集群的可靠性,要启动多个HMaster
简单使用:
进入hbase命令行
显示hbase中的表
创建user表,包含info、data两个列族
向user表中插入信息,row key为rk0001,列族info中添加name列标示符,值为zhangsan
向user表中插入信息,row key为rk0001,列族info中添加gender列标示符,值为female
向user表中插入信息,row key为rk0001,列族info中添加age列标示符,值为20
向user表中插入信息,row key为rk0001,列族data中添加pic列标示符,值为picture
获取user表中row key为rk0001的所有信息
获取user表中row key为rk0001,info列族的所有信息
获取user表中row key为rk0001,info列族的name、age列标示符的信息
获取user表中row key为rk0001,info、data列族的信息
获取user表中row key为rk0001,列族为info,版本号最新5个的信息
获取user表中row key为rk0001,cell的值为zhangsan的信息
获取user表中row key为rk0001,列标示符中含有a的信息
查询user表中的所有信息
查询user表中列族为info的信息
查询user表中列族为info和data的信息
查询user表中列族为info、列标示符为name的信息
查询user表中列族为info、列标示符为name的信息,并且版本最新的5个
查询user表中列族为info和data且列标示符中含有a字符的信息
查询user表中列族为info,rk范围是[rk0001, rk0003)的数据
查询user表中row key以rk字符开头的
查询user表中指定范围的数据
删除数据
删除user表row key为rk0001,列标示符为info:name的数据
删除user表row key为rk0001,列标示符为info:name,timestamp为1392383705316的数据
清空user表中的数据
修改表结构
首先停用user表(新版本不用)
添加两个列族f1和f2
启用表
disable ‘user’(新版本不用)
删除一个列族:
添加列族f1同时删除列族f2
将user表的f1列族版本号改为5
启用表
删除表
部署计划:
cent07,cent08 运行HMaster cent04,cent05,cent06 运行HRegionServer
1.上传hbase安装包
2.解压
3.配置hbase集群,要修改3个文件(首先zk集群已经安装好了)
注意:要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下
3.1修改hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_55 //告诉hbase使用外部的zk export HBASE_MANAGES_ZK=false vim hbase-site.xml <configuration> <!-- 指定hbase在HDFS上存储的路径 --> <property> <name>hbase.rootdir</name> <value>hdfs://ns1/hbase</value> </property> <!-- 指定hbase是分布式的 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- 指定zk的地址,多个用“,”分割 --> <property> <name>hbase.zookeeper.quorum</name> <value>cent04:2181,cent05:2181,cent06:2181</value> </property> </configuration> vim regionservers cent04 cent05 cent06
3.2拷贝hbase到其他节点
scp -r /usr/cloud/hbase-0.96.2-hadoop2/ cent07:/usr/cloud/ scp -r /usr/cloud/hbase-0.96.2-hadoop2/ cent04:/usr/cloud/ scp -r /usr/cloud/hbase-0.96.2-hadoop2/ cent05:/usr/cloud/ scp -r /usr/cloud/hbase-0.96.2-hadoop2/ cent06:/usr/cloud/
4.将配置好的HBase拷贝到每一个节点并同步时间。
5.启动所有的hbase
分别启动zk
./zkServer.sh start
启动hdfs集群
start-dfs.sh
启动hbase,在主节点上运行:
start-hbase.sh
6.通过浏览器访问hbase管理页面
192.168.08.90:60010
7.为保证集群的可靠性,要启动多个HMaster
hbase-daemon.sh start master
简单使用:
进入hbase命令行
./hbase shell
显示hbase中的表
list
创建user表,包含info、data两个列族
create 'user', 'info1', 'data1' create 'user', {NAME => 'info', VERSIONS => '3'}
向user表中插入信息,row key为rk0001,列族info中添加name列标示符,值为zhangsan
put 'user', 'rk0001', 'info:name', 'zhangsan'
向user表中插入信息,row key为rk0001,列族info中添加gender列标示符,值为female
put 'user', 'rk0001', 'info:gender', 'female'
向user表中插入信息,row key为rk0001,列族info中添加age列标示符,值为20
put 'user', 'rk0001', 'info:age', 20
向user表中插入信息,row key为rk0001,列族data中添加pic列标示符,值为picture
put 'user', 'rk0001', 'data:pic', 'picture'
获取user表中row key为rk0001的所有信息
get 'user', 'rk0001'
获取user表中row key为rk0001,info列族的所有信息
get 'user', 'rk0001', 'info'
获取user表中row key为rk0001,info列族的name、age列标示符的信息
get 'user', 'rk0001', 'info:name', 'info:age'
获取user表中row key为rk0001,info、data列族的信息
get 'user', 'rk0001', 'info', 'data' get 'user', 'rk0001', {COLUMN => ['info', 'data']}
get 'user', 'rk0001', {COLUMN => ['info:name', 'data:pic']}
获取user表中row key为rk0001,列族为info,版本号最新5个的信息
get 'people', 'rk0002', {COLUMN => 'info', VERSIONS => 2} get 'user', 'rk0001', {COLUMN => 'info:name', VERSIONS => 5} get 'user', 'rk0001', {COLUMN => 'info:name', VERSIONS => 5, TIMERANGE => [1392368783980, 1392380169184]}
获取user表中row key为rk0001,cell的值为zhangsan的信息
get 'people', 'rk0001', {FILTER => "ValueFilter(=, 'binary:图片')"}
获取user表中row key为rk0001,列标示符中含有a的信息
get 'people', 'rk0001', {FILTER => "(QualifierFilter(=,'substring:a'))"} put 'user', 'rk0002', 'info:name', 'fanbingbing' put 'user', 'rk0002', 'info:gender', 'female' put 'user', 'rk0002', 'info:nationality', '中国' get 'user', 'rk0002', {FILTER => "ValueFilter(=, 'binary:中国')"}
查询user表中的所有信息
scan 'user'
查询user表中列族为info的信息
scan 'people', {COLUMNS => 'info'} scan 'user', {COLUMNS => 'info', RAW => true, VERSIONS => 5} scan 'persion', {COLUMNS => 'info', RAW => true, VERSIONS => 3}
查询user表中列族为info和data的信息
scan 'user', {COLUMNS => ['info', 'data']} scan 'user', {COLUMNS => ['info:name', 'data:pic']}
查询user表中列族为info、列标示符为name的信息
scan 'user', {COLUMNS => 'info:name'}
查询user表中列族为info、列标示符为name的信息,并且版本最新的5个
scan 'user', {COLUMNS => 'info:name', VERSIONS => 5}
查询user表中列族为info和data且列标示符中含有a字符的信息
scan 'people', {COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"}
查询user表中列族为info,rk范围是[rk0001, rk0003)的数据
scan 'people', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'}
查询user表中row key以rk字符开头的
scan 'user',{FILTER=>"PrefixFilter('rk')"}
查询user表中指定范围的数据
scan 'user', {TIMERANGE => [1392368783980, 1392380169184]}
删除数据
删除user表row key为rk0001,列标示符为info:name的数据
delete 'people', 'rk0001', 'info:name'
删除user表row key为rk0001,列标示符为info:name,timestamp为1392383705316的数据
delete 'user', 'rk0001', 'info:name', 1392383705316
清空user表中的数据
truncate 'people'
修改表结构
首先停用user表(新版本不用)
disable 'user'
添加两个列族f1和f2
alter 'people', NAME => 'f1' alter 'user', NAME => 'f2'
启用表
enable 'user'
disable ‘user’(新版本不用)
删除一个列族:
alter 'user', NAME => 'f1', METHOD => 'delete' 或 alter 'user', 'delete' => 'f1'
添加列族f1同时删除列族f2
alter 'user', {NAME => 'f1'}, {NAME => 'f2', METHOD => 'delete'}
将user表的f1列族版本号改为5
alter 'people', NAME => 'info', VERSIONS => 5
启用表
enable 'user'
删除表
disable 'user' drop 'user'
get 'person', 'rk0001', {FILTER => "ValueFilter(=, 'binary:中国')"} get 'person', 'rk0001', {FILTER => "(QualifierFilter(=,'substring:a'))"} scan 'person', {COLUMNS => 'info:name'} scan 'person', {COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"} scan 'person', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'} scan 'person', {COLUMNS => 'info', STARTROW => '20140201', ENDROW => '20140301'} scan 'person', {COLUMNS => 'info:name', TIMERANGE => [1395978233636, 1395987769587]} delete 'person', 'rk0001', 'info:name' alter 'person', NAME => 'ffff' alter 'person', NAME => 'info', VERSIONS => 10 get 'user', 'rk0002', {COLUMN => ['info:name', 'data:pic']} scan 'people', {COLUMNS => 'info',RAW => true, VERSIONS => 3}
相关文章推荐
- linux中应用程序main函数中没有开辟进程的,它应该在那个进程中运行呢?
- Nexus设备渗透测试平台 – Kali Linux NetHunter
- linux 端口占用
- 给VMware下的Linux扩展磁盘空间(以CentOS7)
- kubernetes实战-基于redis和docker的留言簿案例
- Red Hat Enterprise Linux 7(RHEL7)配置静态IP地址
- linux rsync +inotify 实现 实时同步
- linux1.0内核硬件须知
- 查看Linux游戏服务器运行性能
- Tomcat并发优化,提高处理性能
- lr函数--web_get_int_property返回上一级请求的状态
- IAR EWARM __iar_program_start, __iar_data_init3, __iar_copy_init3, __iar_zero_init3
- Unable to load configuration. - bean - jar:file:/E:/tomcat/lib/struts...
- 用nohup命令让Linux下程序永远在后台执行
- H264 编解码器架构简单
- linux sun/awt/X11GraphicsEnvironment
- Tips & Tricks:Apache log4j简明教程(一)
- 解决使用GOOGLE字体网站访问慢的问题
- centos 6.5 安装桌面环境
- 搬移网站程序到不同服务器的操作流程