大数据——四种数据库(MySQL,HBase,MongoDB,Redis)操作实例

问题描述:

Student学生表

1. 根据上面给出的表格,用Hbase Shell模式设计student学生表格。

a) 设计完后,用scan指令浏览表的相关信息,给出截图。

b) 查询zhangsan 的Computer成绩,给出截图。

c) 修改lisi的Math成绩,改为95,给出截图。

2. 根据上面已经设计出的student,用Hbase API编程。

a) 添加数据:English:45 Math:89 Computer:100

b) 获取scofield的English成绩信息

解决问题:

1. 根据上面给出的表格,用Hbase Shell模式设计student学生表格。

设计表代码:(复制粘贴代码时,要删除注释部分,下同)

$ ssh localhost //检测自己的ssh服务器设置

$ cd /usr/local/hadoop

$ ./sbin/start-dfs.sh  //启动Hadoop

$ jps     注:用以查看hadoop是否启动成功

$ cd /usr/local/hbase

$ bin/start-hbase.sh  //启动hbase

$ jps     注:用以查看hbase是否启动成功

$ bin/hbase shell  //打开hbase的shell操作

hbase(main):006:0> create 'student','score' //创建student,其包含一个列族score

hbase(main):007:0> put 'student','zhangsan','score:English','69' //添加行健,列限定符和写入单元格数据

hbase(main):008:0> put 'student','zhangsan','score:Math','86'

hbase(main):009:0> put 'student','zhangsan','score:Computer','77'

hbase(main):010:0> put 'student','lisi','score:English','55'

hbase(main):011:0> put 'student','lisi','score:Math','100'

hbase(main):012:0> put 'student','lisi','score:Computer','88'

对应的Linux终端运行截图:

a) 设计完后,用scan指令浏览表的相关信息,给出截图。

hbase(main):013:0> scan 'student' //查看student表中信息

对应的Linux终端运行截图:

b) 查询zhangsan 的Computer成绩,给出截图。

hbase(main):014:0> get 'student','zhangsan','score:Computer'//查询zhangsan 的Computer成绩

对应的Linux终端运行截图:

c) 修改lisi的Math成绩,改为95,给出截图。

hbase(main):015:0> put 'student','lisi','score:Math','95' //修改lisi的Math成绩,改为95

hbase(main):016:0> get 'student','lisi','score:Math'

对应的Linux终端运行截图:

2. 根据上面已经设计出的student,用Hbase API编程

(1)与使用MySQL的JAVA客户端相类似,建立Java Project,但请注意,建立project时,所使用的执行环境JRE为J2SE-1.5,如下图方框所示

(2)在工程中导入外部jar包:这里只需要导入hbase安装目录中的lib文件中的所有jar包如果没有jar包,可下载:https://download.csdn.net/download/weixin_43042683/12439546)。如下图所示:

a) 添加数据:English:45 Math:89 Computer:100

(1)新建class,并将如下代码复制到.java文件中,调试运行,给出结果截图。

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;public class hbase_insert {/*** @param args*///三个静态成员对象public static Configuration configuration;//管理HBase的配置信息public static Connection connection;//管理HBase的连接public static Admin admin;  //管理HBase数据库的表信息public static void main(String[] args) {// TODO Auto-generated method stubconfiguration  = HBaseConfiguration.create();//使用默认的HBase配置文件创建configuration          configuration.set("hbase.rootdir","hdfs://localhost:9000/hbase");//连接hbasetry{connection = ConnectionFactory.createConnection(configuration);admin = connection.getAdmin();}catch (IOException e){e.printStackTrace();}try {//插入的信息insertRow("student","scofield","score","English","45");insertRow("student","scofield","score","Math","89");insertRow("student","scofield","score","Computer","100");} catch (IOException e) {//异常处理// TODO Auto-generated catch blocke.printStackTrace();}close();}public static void insertRow(String tableName,String rowKey,String colFamily,String col,String val) throws IOException {Table table = connection.getTable(TableName.valueOf(tableName));Put put = new Put(rowKey.getBytes());put.addColumn(colFamily.getBytes(), col.getBytes(), val.getBytes());table.put(put);table.close();}//关闭连接public static void close(){try{if(admin != null){admin.close();}if(null != connection){connection.close();}}catch (IOException e){e.printStackTrace();}}
}

Java运行结果:

hbase检验结果:使用scan ‘student’查看数据是否被添加成功

b) 获取scofield的English成绩信息

(1)获取scofield的English成绩信息,可以采用如下代码,调试运行,给出截图

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Table;public class hbase_query {/*** @param args*///三个静态成员对象public static Configuration configuration;//管理HBase的配置信息public static Connection connection;//管理HBase的连接public static Admin admin;  //管理HBase数据库的表信息public static void main(String[] args) {// TODO Auto-generated method stub
configuration  = HBaseConfiguration.create();//使用默认的HBase配置文件创建configuration
configuration.set("hbase.rootdir","hdfs://localhost:9000/hbase");//连接hbase
try{connection = ConnectionFactory.createConnection(configuration);//连接hbaseadmin = connection.getAdmin();}catch (IOException e){e.printStackTrace();}try {getData("student","scofield","score","English");//获取scofield的English成绩信息
} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}close();}public static void getData(String tableName,String rowKey,String colFamily,String col)throws  IOException{Table table = connection.getTable(TableName.valueOf(tableName));Get get = new Get(rowKey.getBytes());get.addColumn(colFamily.getBytes(),col.getBytes());Result result = table.get(get);//从指定的行的某些单元格中取出相应的值showCell(result);table.close();}public static void showCell(Result result){//显示结果信息函数Cell[] cells = result.rawCells();for(Cell cell:cells){System.out.println("RowName:"+new String(CellUtil.cloneRow(cell))+" ");System.out.println("Timetamp:"+cell.getTimestamp()+" ");System.out.println("column Family:"+new String(CellUtil.cloneFamily(cell))+" ");System.out.println("row Name:"+new String(CellUtil.cloneQualifier(cell))+" ");System.out.println("value:"+new String(CellUtil.cloneValue(cell))+" ");}}
//关闭连接public static void close(){try{if(admin != null){admin.close();}if(null != connection){connection.close();                }}catch (IOException e){e.printStackTrace();}}
}

Java 运行结果:

PS:最后,别忘了停止hbase

hbase(main):018:0> hbase(main):025:0> exit

$ bin/stop-hbase.sh

linux终端运行截图:

大数据——HBase数据库操作实例相关推荐

  1. 大数据——MySQL数据库操作实例

    大数据--四种数据库(MySQL,HBase,MongoDB,Redis)操作实例 问题描述: Student学生表 1. 根据上面给出的表格,利用MySQL5.7设计出student学生表格; a) ...

  2. 大数据——MongoDB数据库操作实例

    大数据--四种数据库(MySQL,HBase,MongoDB,Redis)操作实例 问题描述: student文档如下: 1. 根据上面给出的文档信息,用MongoDB模式设计student集合. a ...

  3. 图解大数据 | 海量数据库查询-Hive与HBase详解

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  4. 2021年大数据HBase(四):HBase的相关操作-客户端命令式!【建议收藏】

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase的相关操作-客户端命令式 1.进入HBase ...

  5. 2021年大数据HBase(十五):HBase的Bulk Load批量加载操作

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase的Bulk Load批量加载操作 一.Bulk L ...

  6. 2021年大数据HBase(十一):Apache Phoenix的视图操作

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Apache Phoenix的视图操作 一.应用场景 ...

  7. 2021年大数据HBase(十):Apache Phoenix的基本入门操作

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Apache Phoenix的基本入门操作 一.Pho ...

  8. 2021年大数据HBase(五):HBase的相关操作JavaAPI方式

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase的相关操作-JavaAPI方式 一.需求说明 ...

  9. 2021年大数据HBase(二):HBase集群安装操作

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase集群安装操作 一.上传解压HBase安装包 ...

最新文章

  1. 1054 The Dominant Color
  2. 激光标记舱口轮廓生成_宣城国产圆管激光切割机-利晟激光
  3. ICCV 2019 | SPM:单阶段人体姿态估计解决方案
  4. linux内核支持utf8,Linux对非UTF-8中文编码的支持
  5. PHP 设计模式之迭代器模式
  6. React开发(130):ant design学习指南之form中的新城多个表单
  7. 尽点力,虽然也不一定有用
  8. 优酷1080P的KUX视频如何快速转换成MP4格式
  9. 思维模型篇:数据化营销的六脉神剑
  10. C++使用模板重载vector的加减法实现矩阵向量加减法
  11. 天天炫斗服务器维修,天天炫斗连接服务器超时怎么办|天天炫斗连接服务器超时解决方法_好特教程...
  12. 天翼云打造国云安全品牌 铸牢企业云上安全防线
  13. 2021-06-07 致即将毕业的你们
  14. Delphi皮肤控件分析与QQ的皮肤变色功能
  15. 如何计算两个日期之间的工作天数
  16. 【华为OD机试真题 JS】IPv4地址转换成整数
  17. StringBuilder和输入输出
  18. Visual Studio C++ 输出调试信息在调试-输出窗口
  19. wpa_supplicant, wpa_cli用法
  20. 2020最新面试题(含答案)

热门文章

  1. 密码存储之PyQt5知识点储备
  2. JUnit测试类使用
  3. MVC项目实例--GuestBook
  4. java list的tostring,Java ArrayList toString() 方法
  5. vue+elementui实现可编辑表格
  6. Vue超好玩的新特性:DOM传送门
  7. 专攻难题:Rails、MVC及最常用的Rails命令
  8. Python 交互式数据可视化详解
  9. 系统调用原理及详细过程
  10. SELinux的策略规则