- 实验目的
掌握HBase安装、HBase Shell命令和HBase Java API编程。
- 实验内容
- 掌握HBase安装配置方法
- 掌握HBase Shel命令使用方法;
- 掌握HBase Java API的基本用法。
- 实验步骤
一、HBase配置和启动
二、HBase命令行测试
- 实验结果
将hbase和Zookeeper添加到环境变量中 vi /etc/profile
Source /etc/profile
让环境变量生效
Scp /etc/profile node2:/etc/
Scp /etc/profile node3:/etc/
分别进入两个节点执行Source /etc/profile
修改conf/hbase-site.xml的配置
修改hbase-env.sh
修改域服务器地址
#vi /home/hbase-2.1.5/conf/regionservers
将zookeeper和hbase复制至slave
scp -r /home/apache-zookeeper-3.6.4 root@192.168.137.3:/home
scp -r /home/apache-zookeeper-3.6.4 root@192.168.137.4:/home
scp -r /home/hbase-2.1.5 root@192.168.137.3:/home
scp -r /home/hbase-2.1.5 root@192.168.137.4:/home
先启动hdfs再启动hbase(ZooKeeper会自动启动):
#bin/start-hbase.sh,jps如下
(1)进入zookeeper安装目录
(2)进入配置文件目录conf
(3)用拷贝命令从示例文件中创建配置文件
cp zoo_sample.cfg zoo.cfg
修改zoo.cfg,添加以下内容,node1
Node2
Node3
添加zookeeper数据目录(三个节点均操作)
mkdir /tmp/zookeeper
(2)在三个节点中的/tmp/zookeeper中分别创建文本文件myid,内容具体为zoo.cfg中server后的数字,如:
节点192.168.137.2中的myid文件内容为0
节点192.168.137.3中的myid文件内容为1
节点192.168.137.4中的myid文件内容为2
1.创建一个Student表,包含Base和Score两个列族;命令:create ‘Student’,’Base’,’Score’
2.插入数据
往表中新增数据,每行rowkey设置为学生学号
不需要指定列名,插入数据时会自动生成列,标点都为英文标点
Put‘Student’,’001’,’Base:Number’,’001’
Put 'Student', '001', 'Base:Name', 'Tim'
put 'Student', '001', 'Base:Sex', 'm'
Put 'Student', '001', 'Base:Prof', 'bigdata'
Put 'Student', '001', 'Base:English', '50'
Put 'Student', '001', 'Base:Math', '72'
Put 'Student', '001', 'Base:Java', '85'
Put 'Student', '001', 'Base:Python', '75'
Put 'Student', '001', 'Base:BigData', '80'
其他学生数据以同样的命令插入
插入完后,scan ‘Student’ 查看插入的数据
- 获取列键001的数学成绩;命令:get ‘Student’,’001’,{COLUMN=>’Score:Math’},get表名 , 行键 , 指定要查询的列
4.删除一行数据 命令:deleteall 表名,行键,deleteall把同一行键的全部信息都删除
- 获取学号范围从001~003的学生的基本信息(列族为Base) 命令:scan 表名,指定起始行键和结束行键,FILTER选择FamilyFilter,FamilyFilter对列族进行匹配,ENDROW => '003\xff' 指定了扫描的结束行键。因为HBase的行键是字节数组,并且按字典序排序,所以通过添加\xff(即255的十六进制表示,一个比任何字符都大的字节)来确保003会被包含在扫描结果中
搜索所有bigdata专业的学生 命令:scan 表名 FILTER选择ValueFilter,ValueFilter值过滤器,找到符合值条件的键值对
使用scan命令的filter搜索所有不及格的成绩记录 命令:scan 表名 FILTER选择FamilyFilter和ValueFilter,对查询到的列族进行值过滤,查询值小于60的信息