• 熟悉常用的HBase操作


    实验环境:

    1、 操作系统:Linux(建议Ubuntu16.04);

    2、 Hadoop版本:2.7.1

    3、 JDK版本:1.7或以上版本;

    4、 Java IDEEclipse

    实验目的:

    1、 理解HBaseHadoop体系结构中的角色;

    2、 熟练使用HBase操作常用的Shell命令;

    3、 熟悉HBase操作常用的Java API

     

    实验步骤:

    (一)编程实现以下指定功能,并用Hadoop提供的HBase Shell命令完成相同任务:

    列出HBase所有的表的相关信息,例如表名;

     

    在终端打印出指定的表的所有记录数据;

     

    向已经创建好的表添加和删除指定的列族或列;

     

     

     

     

    清空指定的表的所有记录数据;

     

    统计表的行数。

     

    (二)HBase数据库操作

    1. 现有以下关系型数据库中的表和数据,要求将其转换为适合于HBase存储的表并插入数据:

    学生表(Student

    学号(S_No

    姓名(S_Name

    性别(S_Sex

    年龄(S_Age

    2015001

    Zhangsan

    male

    23

    2015003

    Mary

    female

    22

    2015003

    Lisi

    male

    24

     

    课程表(Course

    课程号(C_No

    课程名(C_Name

    学分(C_Credit

    123001

    Math

    2.0

    123002

    Computer Science

    5.0

    123003

    English

    3.0

     

    选课表(SC

    学号(SC_Sno

    课程号(SC_Cno

    成绩(SC_Score

    2015001

    123001

    86

    2015001

    123003

    69

    2015002

    123002

    77

    2015002

    123003

    99

    2015003

    123001

    98

    2015003

    123002

    95

     

     

     

     

     

     

     

    2. 请编程实现以下功能:

    1createTable(String tableName, String[] fields)

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

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

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

    3scanColumn(String tableName, String column)

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

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

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

    5deleteRow(String tableName, String row)

    删除表tableNamerow指定的行的记录。

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    100道MySQL数据库经典面试题解析(收藏版)
    input()函数的进阶用法
    MySQL数据库面试题(2020最新版)
    mysql 1418错误_MySQL 错误1418 的原因分析及解决方法
    使用pymysql循环删除重复数据,并修改自增字段偏移值
    字典get方法和setdesault方法,统计message中各元素的出现频次
    Python中字典get方法的使用技巧
    collections模块
    python的30个编程技巧
    SQL中where与having的区别
  • 原文地址:https://www.cnblogs.com/xiangyu721/p/14068088.html
Copyright © 2020-2023  润新知