【头歌】HBase扫描与过滤答案 解除复制粘贴限制

 解除复制粘贴限制

当作者遇到这个限制的时候火气起来了三分,然后去网上搜索答案,然后发现了一位【碳烤小肥肠】居然不贴代码,XX链接,贴截图,瞬时火气冲顶,怒写此文

首先启动万能的控制台,然后Ctrl+Shift+F全局搜索这个弹窗

双击进入源码,随便搞个NB的文件夹,然后点击允许

然后右键这个事儿多的js文件,给它替换了

然后在这儿把这玩意儿代码给注释了,然后保存

最后刷新网页,奇迹出现,可以复制粘贴了【切勿关闭控制台】

第1关:使用 Shell 命令创建表

start-hbase.sh
create 'exam_tb1','student_info','course_info'
put 'exam_tb1', 'row-1', 'student_info:name', 'zhangsan'
put 'exam_tb1', 'row-1', 'student_info:s_no', '2020001'
put 'exam_tb1', 'row-2', 'student_info:name', 'lisi'
put 'exam_tb1', 'row-2', 'student_info:s_no', '2020002'put 'exam_tb1', 'row-1', 'course_info:c_no', '123001'
put 'exam_tb1', 'row-1', 'course_info:c_name', 'HBase'
put 'exam_tb1', 'row-2', 'course_info:c_no', '123002'
put 'exam_tb1', 'row-2', 'course_info:c_name', 'Hadoop'
exitecho "scan 'exam_tb1'" | hbase shell >/root/student.txt

第2关:使用 Java API 实现增删操作

package com.yy;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import java.util.ArrayList;
import java.util.List;
import java.io.IOException;public class HbaseUtil {private static Admin admin = null;private static Connection connection = null;private static Configuration conf = null;static {// HBase配置文件conf = HBaseConfiguration.create();// 获取连接对象try {connection = ConnectionFactory.createConnection(conf);// 获取HBase管理员对象admin = connection.getAdmin();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private static void close(Connection conn, Admin admin) throws IOException {if (conn != null) {conn.close();}if (admin != null) {admin.close();}}//删除exam_tb2表public void deleteTable() throws IOException {/**********Begin**********/admin.disableTable(TableName.valueOf("exam_tb2"));admin.deleteTable(TableName.valueOf("exam_tb2"));/**********End**********/}//创建exam_tb3表public void createTab() throws IOException {/**********Begin**********/TableName tb3 = TableName.valueOf("exam_tb3");TableDescriptorBuilder tbd = TableDescriptorBuilder.newBuilder(tb3);tbd.setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("user_info")).build());tbd.setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("address_info")).build());admin.createTable(tbd.build());/**********End**********/}//往exam_tb3表中添加数据public void putBatch() throws IOException {/**********Begin**********/Table table = connection.getTable(TableName.valueOf("exam_tb3"));Put p1 = new Put(Bytes.toBytes("1"));Put p2 = new Put(Bytes.toBytes("2"));Put p3 = new Put(Bytes.toBytes("3"));p1.addColumn(Bytes.toBytes("user_info"), Bytes.toBytes("name"), Bytes.toBytes("Avatar"));p1.addColumn(Bytes.toBytes("user_info"), Bytes.toBytes("age"), Bytes.toBytes("100"));p1.addColumn(Bytes.toBytes("address_info"), Bytes.toBytes("address"), Bytes.toBytes("pandora"));p1.addColumn(Bytes.toBytes("address_info"), Bytes.toBytes("email"), Bytes.toBytes("avatar@163.com"));p1.addColumn(Bytes.toBytes("address_info"), Bytes.toBytes("phone"), Bytes.toBytes("123456"));p2.addColumn(Bytes.toBytes("user_info"), Bytes.toBytes("name"), Bytes.toBytes("change"));p2.addColumn(Bytes.toBytes("user_info"), Bytes.toBytes("age"), Bytes.toBytes("50"));p2.addColumn(Bytes.toBytes("address_info"), Bytes.toBytes("address"), Bytes.toBytes("moon"));p2.addColumn(Bytes.toBytes("address_info"), Bytes.toBytes("email"), Bytes.toBytes("change@163.com"));p2.addColumn(Bytes.toBytes("address_info"), Bytes.toBytes("phone"), Bytes.toBytes("234567"));p3.addColumn(Bytes.toBytes("user_info"), Bytes.toBytes("name"), Bytes.toBytes("nezha"));p3.addColumn(Bytes.toBytes("user_info"), Bytes.toBytes("age"), Bytes.toBytes("6"));p3.addColumn(Bytes.toBytes("address_info"), Bytes.toBytes("address"), Bytes.toBytes("earth"));p3.addColumn(Bytes.toBytes("address_info"), Bytes.toBytes("email"), Bytes.toBytes("nezha@163.com"));p3.addColumn(Bytes.toBytes("address_info"), Bytes.toBytes("phone"), Bytes.toBytes("345678"));ArrayList < Put > puts = new ArrayList < > ();puts.add(p1);puts.add(p2);puts.add(p3);table.put(puts);/**********End**********/}}


第3关:HBase扫描

package step3;import java.io.IOException;import org.apache.hadoop.conf.*;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.*;public class Task {public void scanTable(String tableName) throws Exception {/********* Begin *********/Configuration config = HBaseConfiguration.create();Connection conn = ConnectionFactory.createConnection(config);Admin admin = conn.getAdmin();TableName name = TableName.valueOf(tableName);Table table = conn.getTable(name);Scan scan = new Scan();scan.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"));scan.setStartRow(Bytes.toBytes("row-10"));scan.setStopRow(Bytes.toBytes("row-30"));ResultScanner scanner = table.getScanner(scan);for (Result result: scanner) {for (Cell cell: result.listCells()) {String family = Bytes.toString(CellUtil.cloneFamily(cell));String qualifier = Bytes.toString(CellUtil.cloneQualifier(cell));String value = Bytes.toString(CellUtil.cloneValue(cell));System.out.println("Rowkey:" + Bytes.toString(result.getRow()) + ",ColumuFamily:" + family + ",Column:" + qualifier + ",Value:" + value);/********* End *********/}}}}

第4关:HBase过滤器

package step4;import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;public class Task {public void query(String tName) throws Exception {/********* Begin *********/Configuration conf = HBaseConfiguration.create();Connection connection = ConnectionFactory.createConnection(conf);try {Table table = connection.getTable(TableName.valueOf(tName));Scan scan = new Scan();ResultScanner scanner = table.getScanner(scan);for (Result result : scanner) {byte[] row = result.getRow();String rowKey = Bytes.toString(row);result.listCells().forEach(cell -> {String family = Bytes.toString(cell.getFamilyArray(), cell.getFamilyOffset(), cell.getFamilyLength());String qualifier = Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength());String value = Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength());System.out.println(String.format("Rowkey:%s,ColumuFamily:%s,Column:%s,Value:%s", rowKey, family, qualifier, value));});}scanner.close();table.close();} finally {connection.close();}/********* End *********/}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/854683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5年Android 开发者的社招面经总结(值得你记录收藏)

4. 分别代表什么含义&#xff0c;他们有什么区别&#xff1f; 5. 了解过 Java 的集合吗&#xff1f; 6. 说说 HashMap 的底层实现原理&#xff1f; 7. ArrayList 和 LinkedList 的区别&#xff1f; 8. Java 集合中哪些是线程安全的&#xff1f; 9. JVM 的内存…

中年帕金森:守护健康,从容面对生活挑战

在快节奏的现代生活中&#xff0c;中年人群面临着越来越多的健康挑战。其中&#xff0c;帕金森病作为一种常见的神经系统疾病&#xff0c;逐渐引起了人们的关注。帕金森病不仅影响患者的身体健康&#xff0c;还对其日常生活造成极大的困扰。那么&#xff0c;我们该如何应对中年…

android manifest.hal.name

在Android系统中&#xff0c;manifest.hal.name 是在HAL&#xff08;Hardware Abstraction Layer&#xff0c;硬件抽象层&#xff09;相关的配置中使用的一个属性。这个属性是用来定义HAL接口的名称&#xff0c;它是HAL模块身份的一个关键标识。HAL作为Android架构中的重要组成…

智慧分流:探索互联网与物联网的负载均衡技术

数字化时代&#xff0c;个人认为&#xff0c;无论是互联网还是物联网&#xff0c;还是其他网&#xff0c;在各个层级&#xff0c;都对系统的稳定性和效率提出了更高的要求。负载均衡技术作为保障系统平稳运行的关键&#xff0c;其重要性不言而喻。在数字世界的海洋中&#xff0…

vue2+element 组件封装使用

1.图片上传组件 使用 <el-descriptions-item label"附件图片" :span"3"><ImageUpload v-model"picUrl" :fileSize"0" getImg"getImg"></ImageUpload></el-descriptions-item> // 图片getImg(val)…

在哪里可以查到一手的标讯信息?

标讯信息集招投标讯息的简称。在市场上&#xff0c;标讯是一种非常关键的信息&#xff0c;包括招标公告&#xff0c;文件&#xff0c;截止日期等关键内容&#xff0c;便于需求方和供应商进行业务合作。 对于企业来说&#xff0c;及时获取到最新的标讯信息是非常重要的&#xf…

MySQL8新特性:窗口函数

目录 一、 概念二、语法基本语法语法解析进阶语法命名窗口WINDOW AS框架FRAME_CLAUSE 三、窗口函数ROW_NUMBERRANKDENSE_RANKPERCENT_RANKCUME_DISTFIRST_VALUE与LAST_VALUENTH_VALUELAG与LEADNTILE 四、窗口函数使用事项五、窗口函数优化方法六、面试常问&#xff08;持续更新…

设计模式-创建型-04-建造者模式

1、盖房项目需求 1&#xff09;需要建房子&#xff1a;这一过程为打桩、砌墙、封顶2&#xff09;房子有各种各样的&#xff0c;比如普通房&#xff0c;高楼&#xff0c;别墅&#xff0c;各种房子的过程虽然一样&#xff0c;但是要求不要相同的3&#xff09;请编写程序&#xf…

【1990-2023】上市公司高新技术企业数据(Excel+stata)+do代码

数据简介&#xff1a;根据《上市公司资质认定信息文件》 数据进行整理。筛选“认定项目类型” 为“高新技术企业”&#xff1b;筛选“认定对象身份”为“上市公司本身”&#xff0c;根据“认定时间”和“有效期限”判断当年是否为高新技术企业。有效期限通常为3年&#xff0c;缺…

ultralytics版本及对应的更新

Ultralytics Ultralytics 是一家专注于计算机视觉和深度学习工具的公司&#xff0c;尤以其开源的 YOLO (You Only Look Once) 系列深受欢迎。目前&#xff0c;Ultralytics 主要管理和开发 YOLOv5 和 YOLOv8。以下是各个版本的概述及其主要更新&#xff1a; YOLOv5 YOLOv5 是…

力扣-2379. 得到 K 个黑块的最少涂色次数

文章目录 力扣题目工程代码C实现python实现 力扣题目 给你一个长度为 n 下标从 0 开始的字符串 blocks &#xff0c;blocks[i] 要么是 ‘W’ 要么是 ‘B’ &#xff0c;表示第 i 块的颜色。字符 ‘W’ 和 ‘B’ 分别表示白色和黑色。 给你一个整数 k &#xff0c;表示想要 连…

华为手环9省电设置

1、 手环开启熄屏显示续航约3天&#xff0c;原因为屏幕持续常亮显示&#xff1b;如不需要可通过手环“设置->表盘->熄屏显示”路径进行关闭&#xff1b; 2、 手环具备后台健康自动检测功能&#xff0c;您可根据需要选择是否使用或关闭&#xff1a; &#xff08;1&#x…

实用软件分享-----一款免费的人工智能替换face的神器

专栏介绍:本专栏主要分享一些实用的软件(Po Jie版); 声明1:软件不保证时效性;只能保证在写本文时,该软件是可用的;不保证后续时间该软件能一直正常运行;不保证没有bug;如果软件不可用了,我知道后会第一时间在题目上注明(已失效)。介意者请勿订阅。 声明2:本专栏的…

DoIP——step2:车辆发现

文章目录 前言一、IP地址配置1.1 AutoIP1.2 DHCP1.3 DoIP实体的IP地址配置流程二、车辆发现车辆声明报文内容如下:前言 完成诊断设备到车辆的物理连接并通过激活线使能诊断连接后边缘节点将会将连接状态传递至应用层,在开始车辆发现过程之前,需要先进行各自的IP地址配置,获…

海外媒体发稿渠道和方法有哪些?如何选择靠谱的国外媒体发稿服务商?

在选择海外媒体发稿服务商时&#xff0c;以下是一些关键点可以帮助您找到靠谱的服务商&#xff1a; 服务商的经验和口碑&#xff1a;查找该服务商在行业内的声誉和客户评价。拥有丰富经验和良好口碑的服务商通常更可靠。 媒体资源和覆盖范围&#xff1a;了解服务商所能提供的媒…

vue中的模板语法

第1部分&#xff1a;引言 1.1 介绍Vue框架 Vue.js&#xff0c;简称Vue&#xff0c;是一个用于构建用户界面的渐进式JavaScript框架。自从2014年首次发布以来&#xff0c;Vue因其简洁、易学和高效而迅速赢得了开发者的青睐。Vue的核心库只关注视图层&#xff0c;易于与其他库或…

Python并行编程技术与方法详解:线程池、进程池及优化策略

目录 一、引言 二、线程池 线程池的概念 Python中的线程池实现 线程池的优缺点 三、进程池 进程池的概念 Python中的进程池实现 进程池的优缺点 四、优化策略 合理设置线程池和进程池的大小 任务的拆分与合并 使用队列和锁等同步机制 选择合适的并行框架 五、异…

【机器学习300问】121、RNN是如何生成文本的?

当RNN模型训练好后&#xff0c;如何让他生成一个句子&#xff1f;其实就是一个RNN前向传播的过程。通常遵循以下的步骤。 &#xff08;1&#xff09;初始化 文本生成可以什么都不给&#xff0c;让他生成一首诗。首先&#xff0c;你需要确定采样的起始点。这可以是一个特殊的开…

MySQL-DDL(Data Definition Language)

078-对表结构进行增删改操作 增删改表结构DDL&#xff08;Data Definition Language&#xff09; 创建一个学生表 create table t_student( no bigint, name varchar(255), age int comment 年龄 );查看建表语句 show create table t_student;修改表名 alter table 表名 r…

关于scrapy模块中间件的简单理解

摘要 Scrapy爬虫模块是爬虫程序员使用最多的一个模块&#xff0c;它以快速&#xff0c;高层次等优势&#xff0c;深受爬虫工作者的喜爱&#xff0c;其中Scrapy的中间件功能也极其重要。中间件处于引擎和爬虫之间的钩子框架&#xff0c;允许开发者自定义处理请求和响应的过程。…