一、实验目的二、实验内容

  1.掌握HBase操作常用Shell命令;

  2.掌握HBase数据表的创建、添加数据、查看数据、删除数据、删除表、查询历史数据等操作;

  3.掌握HBase APIs编程实践方法

  第1题 HBase 练习

  【实验内容】

  1.实现HBase的配置并完成http://dblab.xmu.edu.cn/blog/install-hbase/上的javac程序练习。

  1、切换到/usr/local/hbase目录并编辑/.bashrc文件(在/.bashrc文件中export PATH这行追加/usr/local/hbase/bin)

  

  2、编辑完成后,再执行source命令使上述配置在当前终端立即生效

  

  3、添加HBase权限(将hbase下的所有文件的所有者改为hadoop,hadoop是当前用户的用户名)

  

  4、 查看HBase版本,确定hbase安装成功(看到以下输出消息表示HBase已经安装成功)

  

  5、用vi命令打开并编辑hbase-env.sh

  

  配置JAVA环境变量如图,配置HBASE_MANAGES_ZK为true,表示由hbase自己管理zookeeper,不需要单独的zookeeper

  

  6、打开并编辑hbase-site.xml

  

  在启动HBase前需要设置属性hbase.rootdir,用于指定HBase数据的存储位置(以防每次重启系统都会丢失数据)

  

  7、测试运行(首先切换目录至HBase安装目录/usr/local/hbase;再启动HBase)

  

  8、打开shell命令行模式(用户可以通过输入shell命令操作HBase数据库)

  

  9、退出shell命令行模式,停止HBase运行

  

  10、配置/usr/local/hbase/conf/hbase-env.sh

  

  配置JAVA_HOME,HBASE_CLASSPATH,HBASE_MANAGES_ZK.

  HBASE_CLASSPATH设置为本机Hadoop安装目录下的conf目录(即/usr/local/hadoop/conf)

  

  11、用命令vi打开并编辑hbase-site.xml

  

  hbase.rootdir指定HBase的存储目录;hbase.cluster.distributed设置集群处于分布式模式

  

  12、登陆ssh,切换目录至/usr/local/hadoop ,启动hadoop

  

  13、命令jps(能看到NameNode,DataNode和SecondaryNameNode都已经成功启动,表示hadoop启动成功)

  

  14、切换目录至/usr/local/hbase,启动HBase(输入命令jps,看到以下界面说明hbase启动成功)

  

  15、进入shell界面

  

  16、退出shell界面,停止HBase运行

  

  编程实践

  1、HBase中用create命令创建表

  

  2、通过describe命令查看“student”表的基本信息

  

  3、添加数据( 当运行命令:put ‘student’,’95001’,’Sname’,’LiYing’时,即为student表添加了学号为95001,名字为LiYing的一行数据,其行键为95001 )

  

  4、为95001行下的course列族的math列添加了一个数据

  

  5、为95001行下的course列族的Sage列添加了一个数据

  

  6、为95001行下的course列族的Sdept列添加了一个数据

  

  7、删除数据,删除了student表中95001行下的Ssex列的所有数据

  

  8、get命令,(用于查看某一行数据,返回的是‘student’表‘95001’行的数据)

  

  9、scan命令(用于查看某个表的全部数据)

  

  10、删除student表中的95001行的全部数据

  

  11、删除表有两步,第一步先让该表不可用,第二步删除表

  

  12、在创建表的时候,指定保存的版本数(假设指定为5)

  

  13、put命令,插入数据然后更新数据,使其产生历史版本数据

  

  14、询时,指定查询的历史版本数。默认会查询出最新的数据。(有效取值为1到5)

  

  15、Eclipse编写java程序,来对HBase数据库进行增删改查等操作

  ExampleForHbase类代码如下

  编程实例代码运行结果

  

  执行完插入数据后,在shell界面中执行scan ‘Score’

  

  第2题. HBase Shell数据库表创建

  【实验内容】

  根据以下关系型数据库表,使用HBase Shell设计并创建适宜的HBase数据表。

  

  1、启动hadoop、hbase

  

  2、进入hbase的shell界面

  

  3、创建表格“Student”

  

  4、创建表格“Score”和“SC”

  

  5、查看已有的表格

  

  6、给“Student”表学号为“2020001”添加姓名、性别、年龄

  

  7、给“Student”表学号为“2020003”添加姓名、性别、年龄

  

  8、给“Student”表学号为“2020005”添加姓名、性别、年龄

  

  9、scan命令查看“Student”表格信息

  

  10、给“Course”表学号为“123001、123002、123003”分别添加对应的课程名称

  

  11、给“Course”表学号为“123001、123002、123003”添加学分

  

  12、查看“Course”表格的全部数据

  

  13、向学生表添加课程列族

  

  14、scan命令查看“Student”表格信息

  

  第3题 HBase Shell数据访问操作

  【实验内容】

  (1)使用HBase Shell命令向第1题所构建的HBase数据表中添加适宜数据;

  (2)使用HBase Shell命令从第1题所构建的HBase数据表中查询出数据;

  (3)使用HBase Shell命令从第1题所构建的HBase数据表中删除任一数据;

  (4)使用HBase Shell命令统计第1题所构建的HBase数据表的行数。

  【实验过程】(步骤、记录、数据、程序等)

  请提供相应Shell操作命令或相应Shell界面截图证明。

  1、在“Student”添加数据

  

  2、查询出数据

  

  3、删除任一数据

  

  4、统计“Student”表的行数

  

  第4题 HBase Java API编程

  【实验内容】

  根据第1,2题所建立的表,请编程完成以下指定功能:

  (1)createTable(String tableName, String[] fields)

  创建表,参数tableName为表的名称,字符串数组fields为存储记录各个域名称的数组。要求当HBase已经存在名为tableName的表的时候,先删除原有的表,然后再创建新的表。

  (2)addRecord(String tableName, String row, String[] fields, String[] values)

  向表tableName、行row(用S_Name表示)和字符串数组files指定的单元格中添加对应的数据values。其中fields中每个元素如果对应的列族下还有相应的列限定符的话,用“columnFamily:column”表示。例如,同时向“Math”、“Computer Science”、“English”三列添加成绩时,字符串数组fields为{“Score:Math”,”Score;Computer Science”,”Score:English”},数组values存储这三门课的成绩。

  (3)scanColumn(String tableName, String column)

  浏览表tableName某一列的数据,如果某一行记录中该列数据不存在,则返回null。要求当参数column为某一列族名称时,如果底下有若干个列限定符,则要列出每个列限定符代表的列的数据;当参数column为某一列具体名称(例如“Score:Math”)时,只需要列出该列的数据。

  (4)modifyData(String tableName, String row, String column)

  修改表tableName,行row(可以用学生姓名S_Name表示),列column指定的单元格的数据。

  (5)deleteRow(String tableName, String row)

  删除表tableName中row指定的行的记录。

  1、创建java工程

  

  2、菜单函数,java程序代码如下

  HBaseModifyStudent类代码如下

  

  3、连接和关闭Hbase数据库的JAVA代码

  HBaseStudentOperation类代码如下

  

  

  4、创建学生信息表

  

  

  5、添加学生选课信息

  

  6、浏览学生选课信息表

  

  7、修改学生选课信息

  

  

  8、删除学生选课信息

  

  运行结果如下

  选择1,创建学生选课表

  

  再次创建,提示该表已经存在

  

  选择2,学生Zhangsan选课信息的录入

  

  Scan命令,查看插入成功的结果

  

  选择3,进行学生Zhangsan数学课程信息的查询,结果如下

  

  选择4,进行学生Zhangsan数学成绩的修改

  

  Scan命令查询结果(之前是86分,现在89分)

  

  选择5,进行学生Zhangsan一行的信息的删除

  

  Scan命令查询结果(可见,zhangshan的信息已经被全部删除)

  

  做到这里,本次HBase分布式数据库操作与编程基本完成,过程截图不清楚或有问题的可以给我评论或私信,命令行代码希望自己敲,可以加深理解,加油!

  

hbase数据库_实验目的相关推荐

  1. 数据库原理实验二 数据库管理 实验报告

    广州大学学生实验报告实验二:数据库管理 此篇分享仅供参考学习,图文禁复制,勿作他用!谢谢配合! 数据库原理实验之实验二:数据库管理 软件:Oracle SQL Developer 今天实验才刚开始,花 ...

  2. 【大数据存储技术】实验1 Hbase数据库的部署和操作

    1.HBase数据库的部署与配置(伪分布) (1)安装Hbase 下载网址:Apache HBase – Apache HBase Downloads (Hadoop版本3.3.4,下载最新hbase ...

  3. mysql中实现分类统计查询的步骤_实验07:数据库的组合查询和统计查询

    实验6:数据库的组合查询和统计查询实验 本实验需要 4 学时. 一.实验目的 使学生熟练掌握SQL Server 查询分析器的使用方法,加深对SQL 和Transact-SQL 语言的查询语句的理解. ...

  4. JAVA数据库访问设置的实验_实验十一 连接数据库实验(V2.0)

    实验十一  连接数据库实验(V2.0) 一.实验目的 1.  连接MS SQL Server2005数据库 2.  读取数据库到Web页面 二.实验内容 1.实验准备: java连接数据库的方法模型. ...

  5. MySQL查询实验报告_实验报告数据库的基本查询'

    <实验报告数据库的基本查询'>由会员分享,可在线阅读,更多相关<实验报告数据库的基本查询'(5页珍藏版)>请在人人文库网上搜索. 1.一.实验目的:通过该实验掌握应用SQL 查 ...

  6. mysql安全实验测验答案_实验四∶数据库安全性实验报告.doc

    资源描述 1 / 2实验四:数据库安全性班级:软件工程 0918 姓名:许啸 学号:0911610819[实验目的] :验证数据库安全性[实验要求] :1)新建一个登陆名为 tom,密码为 tom00 ...

  7. mysql上机实验报告_数据库上机实验7实验报告.doc

    <数据库上机实验7实验报告.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<数据库上机实验7实验报告.doc>文档请在天天文库搜索. 1. 上机 ...

  8. MySql实验嵌套查询_实验五 数据库的嵌套查询实验

    实验五数据库的嵌套查询实验 本实验需要2学时. 一.实验目的 使学生进一步掌握SQL Server或oracle的企业管理器的使用方法,加深SQL 语言的嵌套查询语句的理解. 二.实验内容 在SQL ...

  9. mysql实验四数据库查询和视图_实验四 数据库查询和视图.doc

    实验四 数据库查询和视图 测试过程:(实验中出现的问题.错误.解决方法) 问题一:新建查询,调试过程中出现提示无效行或列 问题二:新建查询,调试过程中出现第几行出现错误 解决办法:检查新建的查询,标点 ...

最新文章

  1. 装管家婆系统要开启那些服务器,管家婆服务器维护注意的一些事项?
  2. Linux DNS (2)搭建DNS服务器
  3. 2017寒假练习题解 第四周 2.6-2.12
  4. Mac OS系统版本与XCode版本的关系
  5. Asp.net Vnext IValueProvider
  6. 弱电系统集成(收集)
  7. 小程序进阶学习02--安装webstorm
  8. linux 关机命令_小猿圈Linux基础命令汇总
  9. 收藏:如何实现路由器的本地验证和授权
  10. HDU ACM 3986 Harry Potter and the Final Battle(邻接表实现最短路dijkstra堆优化记录路径 + 枚举最短路上每条边)...
  11. DNN训练技巧(Tips for Training DNN)
  12. 机器学习--文本分析(jieba)
  13. java 授课录像_讲课视频录制方法,录制上课录像详细步骤
  14. 台式机和笔记本快速互拷超大文件
  15. iPhone加码“独立王国” 有可能成摆设?
  16. 历史类:古希腊与亚历山大帝国
  17. screen:There is no screen to be resumed matching XXX 解决办法
  18. 如何解决HTTP Error 503. The service is unavailable问题
  19. 英语 | Day3、4 x 句句真研每日一句
  20. Android工程师进阶之路 Android开发进阶 从小工到专家 上市啦

热门文章

  1. ffmpeg命令行视频剪辑与拼接
  2. CTO谈豆瓣网和校内网技术架构变迁
  3. python打印日历小项目
  4. 树莓派3b+安装ubuntu 16.04+ROS kinetic过程详解及踩坑总结
  5. 大数据------维度表,事实表
  6. java jsf_eclipse搭建JSF简单示例的教程(亲测)
  7. 解决office2003 32位卸载不干净 无法安装office2013 64位在问题
  8. F矩阵的自由度是多少?
  9. 反向工程之“测测你的本命专业”
  10. 中国象棋将帅问题java_编程之美:中国象棋将帅问题