ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【hdfs】【hbase】【大数据技术底子】实践二 HBase Java API编程 [打印本页]

作者: 石小疯    时间: 2024-11-29 07:54
标题: 【hdfs】【hbase】【大数据技术底子】实践二 HBase Java API编程
实践二  HBase Java API编程

为什么可以写命令还要编写程序?自动化批量处理?
        只管我们可以通过HBase的shell命令行工具进行数据操纵,但在现实的生产环境中,为了提高效率和实现自动化处理,我们通常需要编写程序来与HBase进行交互。
        本实例利用Eclipse编写java程序,来对HBase数据库进行增删改查等操纵,Eclipse可以在Ubuntu软件中心搜索下载并安装。

第一步:启动hadoop,启动hbase

        在开始之前,确保你已经安装了Hadoop和HBase,而且它们正在运行。你可以通过以下命令启动它们:


HBase 命令要在HBase shell中利用
启动 HBase shell: 在命令行中输入以下命令来启动 HBase shell:
  1. hbase shell
复制代码
        假如 HBase 服务启动成功,你将看到 HBase shell 的提示符,通常是一个光标背面跟着 hbase>。

HBase命令利用:利用scan ‘Score’,示例:

:因为我们表还没被创建,报错Unknown table Score是正常的。
   报错了大概因为少了:ssh localhost
  这个命令可不能少!利用SSH登录当地主机,确保HBase Shell可以正常访问。
  

  
第二步,新建Java Project——>新建Class



第三步:在工程中导入外部jar包:


起首导入前面的HDFS API相应类包(实践一中导入的)。
然后导入hbase安装目次中的lib文件中的所有jar包。



下列代码包含了数据库创建、增删改查等一系列操纵,需要大家根据需要逐步开放注释,进行分阶段运行。
这里给出一个编程实例,,以下是源代码:


这里应该是:
    if (col != null && !col.isEmpty()) {
        // 假如有 col 参数传入,则删除指定列
        delete.addColumn(colFamily.getBytes(), col.getBytes());
    } else if(colFamily != null && !colFamily.isEmpty()) {
        // 否则,删除指定列族的所有数据
        delete.addFamily(colFamily.getBytes());
    }


第四步:执行与验证

        每次执行完,都可以回到shell界面查看是否执行成功,如:执行完插入数据后,在shell界面中执行scan 'Score'。截图如下:
 

建表:

建表成功~



添加数据:


删除指定列:



删除指定列族:


删除整行数据:


查询Score表中,行键为95001,列族为course,列为Math的值:


查询Score表中,行键为95001,列族为sname的值(因为sname列族下没有子列所以第四个参数为空):





 【遇到的问题】:为什么打印了内存地址而不是值?
【解决方法】:把+" "删除就好了?



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4