当前位置: 首页 > news >正文

一个人可以做几个网站负责人/怎么制作网页推广

一个人可以做几个网站负责人,怎么制作网页推广,动感技术网站建设,济南网站建设vashine目录 前置HBase数据压缩效果获取数据(反序列化) 前置 安装说明 使用说明 HBaseDDL和DML操作 HBase数据压缩 问题 在上文的datain中原文 每次写入数据会写入4个单元格的内容,现在希望能对其进行筛减,合并成1格,减少存储空间(序列…

目录

  • 前置
  • HBase数据压缩
  • 效果
  • 获取数据(反序列化)

前置

安装说明
使用说明
HBaseDDL和DML操作

HBase数据压缩

问题
在上文的datain中原文
每次写入数据会写入4个单元格的内容,现在希望能对其进行筛减,合并成1格,减少存储空间(序列化)
在这里插入图片描述
datain2
此处仅修改了插入方法之前的内容,将数据合并,对于插入方法没有做修改,其他内容仿照之前的即可。

package org.wunaiieq;import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
import org.wunaiieq.util.MyPhone;import java.text.SimpleDateFormat;
import java.util.*;public class datain2 {public static Connection connection = HBaseConnection.connection;public static Random random=new Random();public static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");public static String getPhone(String prefix) {return prefix + String.format("%08d", random.nextInt(99999999));}private static String getData(int year) {Calendar calendar = Calendar.getInstance();calendar.set(year, 0, 1);calendar.add(Calendar.MONTH, random.nextInt(12));calendar.add(Calendar.DAY_OF_MONTH, random.nextInt(31));calendar.add(Calendar.HOUR_OF_DAY, random.nextInt(12));Date time = calendar.getTime();return simpleDateFormat.format(time);}public static void main(String[] args) throws Exception {Table table = connection.getTable(TableName.valueOf("wunaiieq", "phone_log"));List<Put> putList =new ArrayList<Put>();//10个用户for (int i = 0; i < 10            ; i++) {String phonenumber = getPhone("158");for (int j = 0; j < 1000; j++) {putList.clear();String dnum = getPhone("199");int length = random.nextInt(200) + 1;int type = random.nextInt(2);String date = getData(2050);String rowkey = phonenumber + "_" + (Long.MAX_VALUE - simpleDateFormat.parse(date).getTime()) + i + j;Put put =new Put(Bytes.toBytes(rowkey));//构造器MyPhone.Phone.Builder builder = MyPhone.Phone.newBuilder();//数据写入builder.setDnum(dnum);builder.setLength(length);builder.setDate(date);builder.setType(type);//构造器创建phone对象MyPhone.Phone phone = builder.build();put.addColumn(Bytes.toBytes("basic"),Bytes.toBytes("info"),phone.toByteArray());putList.add(put);}table.put(putList);}}}

其他内容
修改pom.xml——增加对protobuf的依赖
导入myPhone.java——protobuf生成的java文件
编写HbaseDML.java(参考专栏博客)

效果

原有大小
在这里插入图片描述
更新后
在这里插入图片描述

获取数据(反序列化)

数据存储格式已经修改,因此获取数据的方式需要改变
在这里插入图片描述
Using2.java

package org.wunaiieq;import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import org.wunaiieq.util.MyPhone;import java.io.IOException;
import java.text.SimpleDateFormat;public class Using2 {public static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");public static Connection connection0 = HBaseConnection.connection;static Table table;static {try {table = connection0.getTable(TableName.valueOf("wunaiieq", "phone_log"));System.out.println(table);} catch (IOException e) {throw new RuntimeException(e);}}public static void scanProtocBuf(String phoneNumber) throws Exception {String startRow = phoneNumber+"_"+(Long.MAX_VALUE-simpleDateFormat.parse("2099-04-01 00:00:00").getTime());String stopRow = phoneNumber+"_"+(Long.MAX_VALUE-simpleDateFormat.parse("2000-03-01 00:00:00").getTime());Scan scan = new Scan();scan.withStartRow(Bytes.toBytes(startRow));scan.withStopRow(Bytes.toBytes(stopRow),true);//执行查询ResultScanner resultScanner = table.getScanner(scan);//解析resultScannerfor(Result result:resultScanner){Cell[] cells = result.rawCells();//获取值byte[] phoneInfoBytes = CellUtil.cloneValue(cells[0]);//将字节数据中的数据反序列化为MyPhone.Phone对象MyPhone.Phone phone = MyPhone.Phone.parseFrom(phoneInfoBytes);System.out.print(phone.getDnum()+"--");System.out.print(phone.getType()+"--");System.out.print(phone.getLength()+"--");System.out.println(phone.getDate()+"--");}}public static void main(String[] args) throws Exception {String phoneNumber0 = "15894163362";scanProtocBuf(phoneNumber0);String phoneNumber1 = "15898559729";scanProtocBuf(phoneNumber1);String phoneNumber2 = "15807236902";scanProtocBuf(phoneNumber2);}
}

相关文章:

protobuf实现Hbase数据压缩

目录 前置HBase数据压缩效果获取数据(反序列化) 前置 安装说明 使用说明 HBaseDDL和DML操作 HBase数据压缩 问题 在上文的datain中原文 每次写入数据会写入4个单元格的内容&#xff0c;现在希望能对其进行筛减&#xff0c;合并成1格&#xff0c;减少存储空间&#xff08;序列…...

论文阅读之方法: Single-cell transcriptomics of 20 mouse organs creates a Tabula Muris

The Tabula Muris Consortium., Overall coordination., Logistical coordination. et al. Single-cell transcriptomics of 20 mouse organs creates a Tabula Muris. Nature 562, 367–372 (2018). 论文地址&#xff1a;https://doi.org/10.1038/s41586-018-0590-4 代码地址…...

PHP语法学习(第三天)

老规矩&#xff0c;先回顾一下昨天学习的内容 PHP语法学习(第二天) 主要学习了PHP变量、变量的作用域、以及参数作用域。 今天由Tom来打开新的篇章 文章目录 echo 和 print 区别PHP echo 语句实例 PHP print 语句实例 PHP 数组创建数组利用array() 函数 数组的类型索引数组关联…...

PostgreSQL添加PostGIS扩展和存储坐标

一、安装 1、PostGIS安装&#xff1a;Getting Started | PostGIS 2、安装好后&#xff0c;执行下面sql CREATE EXTENSION postgis;SELECT PostGIS_Full_Version(); 二、使用 PostGIS文档&#xff1a;PostGIS 简介 — Introduction to PostGIS 建表&#xff1a; CREATE TAB…...

Flink四大基石之State(状态) 的使用详解

目录 一、有状态计算与无状态计算 &#xff08;一&#xff09;概念差异 &#xff08;二&#xff09;应用场景 二、有状态计算中的状态分类 &#xff08;一&#xff09;托管状态&#xff08;Managed State&#xff09;与原生状态&#xff08;Raw State&#xff09; 两者的…...

Linux中dos2unix详解

dos2unix 是一个用于将文本文件从DOS/Windows格式转换为Unix/Linux格式的工具。在不同的操作系统中&#xff0c;文本文件中的换行符表示方式是不一样的。具体来说&#xff1a; 在DOS和Windows系统中&#xff0c;换行由两个字符组成&#xff1a;回车&#xff08;Carriage Retur…...

MySQL MVCC 介绍

MVCC&#xff08;Multi-Version Concurrency Control&#xff09;是一种并发控制机制&#xff0c;用于在多个并发事务同时读写数据库时保持数据的一致性和隔离性。MVCC通过在每个数据行上维护多个版本的数据来实现。当一个事务要对数据库中的数据进行修改时&#xff0c;MVCC不会…...

Linux篇之日志管理工具Logrotate介绍并结合crontab使用

1. Logrotate介绍 logrotate 是一个用于管理和轮换日志文件的工具,通常用于 Unix 和 Linux 系统。它可以自动化日志文件的轮换、压缩、删除和邮寄等操作,确保日志文件不会无限制地增长,占用过多的磁盘空间。 2. 主要功能 轮换:定期将日志文件移动到备份目录,并生成新的…...

Vulnhub靶场 Matrix-Breakout: 2 Morpheus 练习

目录 0x00 准备0x01 主机信息收集0x02 站点信息收集0x03 漏洞查找与利用1. 文件上传2. 提权 0x04 总结 0x00 准备 下载连接&#xff1a;https://download.vulnhub.com/matrix-breakout/matrix-breakout-2-morpheus.ova 介绍&#xff1a; This is the second in the Matrix-Br…...

秒杀项目 超卖问题 详解

秒杀项目中的超卖问题详解 秒杀场景是一种高并发场景&#xff0c;用户在短时间内大量涌入抢购有限的商品。超卖问题指的是由于系统设计不合理&#xff0c;导致实际售出的商品数量超过库存数量。 1. 为什么会出现超卖问题&#xff1f; 超卖问题通常由以下原因引发&#xff1a;…...

Linux系统编程之进程控制

概述 在Linux系统中&#xff0c;创建一个新的进程后&#xff0c;如何对该进程进行有效的控制&#xff0c;是一项非常重要的操作。控制进程状态的操作主要包括&#xff1a;进程的执行、进程的等待、进程的终止等。下面&#xff0c;我们将逐个进行介绍。 进程的执行 创建进程后&a…...

集合的相关性质与定义

集合 集合 集合描述了一组对象的集合&#xff0c;而映射描述了集合之间的对应关系。 集合 集合是由一组无序的&#xff0c;互不相同的对象组成的整体&#xff0c;集合中的对象称为元素或成员。集合可以用大括号{}表示,元素之间用逗号进行分隔。 定义&#xff1a; 集合 A …...

pytest自定义命令行参数

实际使用场景&#xff1a;pytest运行用例的时候&#xff0c;启动mitmdump进程试试抓包&#xff0c;pytest命令行启动的时候&#xff0c;传入mitmdump需要的参数&#xff08;1&#xff09;抓包生成的文件地址 &#xff08;2&#xff09;mitm的proxy设置 # 在pytest的固定文件中…...

c++预编译头文件

文章目录 c预编译头文件1.使用g编译预编译头文件2.使用visual studio进行预编译头文件2.1visual studio如何设置输出预处理文件&#xff08;.i文件&#xff09;2.2visual studio 如何设置预编译&#xff08;初始创建空项目的情况下&#xff09;2.3 visual studio打开输出编译时…...

YOLOv8模型pytorch格式转为onnx格式

一、YOLOv8的Pytorch网络结构 model DetectionModel((model): Sequential((0): Conv((conv): Conv2d(3, 64, kernel_size(3, 3), stride(2, 2), padding(1, 1))(act): SiLU(inplaceTrue))(1): Conv((conv): Conv2d(64, 128, kernel_size(3, 3), stride(2, 2), padding(1, 1))(a…...

电子课程开发中的典型误区

创建一个有效的电子课程需要仔细的规划和执行&#xff0c;但常见的错误可能会破坏其成功。以下是开发人员应该避免的一些典型陷阱&#xff1a; 1.缺乏明确的目标 如果没有明确的学习目标&#xff0c;课程可能会缺乏重点&#xff0c;让学习者不确定自己应该实现什么。明确、可衡…...

Docker 逃逸突破边界

免责声明 本博客文章仅供教育和研究目的使用。本文中提到的所有信息和技术均基于公开来源和合法获取的知识。本文不鼓励或支持任何非法活动&#xff0c;包括但不限于未经授权访问计算机系统、网络或数据。 作者对于读者使用本文中的信息所导致的任何直接或间接后果不承担任何…...

残差连接,就是当某一偏导等于0时,加上x偏导就是1,这样乘以1保证不失效

目录 残差连接,就是当某一偏导等于0时,加上x偏导就是1,这样乘以1保证不失效 残差连接中F(x)一般代表什么,将F(x)变为F(x) +x,这样不是改变了函数 本身的性质 F(x)=F(x) +x F(x)偏导若==0;偏导连乘就是0,这样就梯度消失了 F(x) +x;求偏导时x导数是1,保证不丢失F(x)…...

博泽Brose EDI项目案例

Brose 是一家德国的全球性汽车零部件供应商&#xff0c;主要为全球汽车制造商提供机电一体化系统和组件&#xff0c;涵盖车门、座椅调节系统、空调系统以及电动驱动装置等。Brose 以其高质量的创新产品闻名&#xff0c;在全球拥有多个研发和生产基地&#xff0c;是全球第五大家…...

从科举到高考,人才选拔制度的变革与发展

一、引言 在人类历史的长河中&#xff0c;人才选拔机制始终是推动社会进步与文明传承的关键环节。古代科举制度与现代高考制度&#xff0c;分别在各自的时代背景下承担着筛选人才的重任&#xff0c;二者虽皆关乎教育与人才进阶之路&#xff0c;却有着诸多本质性的区别与独特的…...

利用Docker一键发布Nginx-Tomcat-MySQL应用集群

Docker简介&#xff0c;可以看上一篇文章&#xff1a; 为什么互联网公司离不开Docker容器化&#xff0c;它到底解决了什么问题&#xff1f;-CSDN博客 Docker体系结构 docker核心就是镜像和容器&#xff1a; 镜像就是应用程序的安装文件&#xff0c;包含了所有需要的资源&…...

关于数据库数据国际化方案

方案一&#xff1a;每个表设计一个翻译表 数据库国际化的应用场景用到的比较少&#xff0c;主要用于对数据库的具体数据进行翻译&#xff0c;在需要有大量数据翻译的场景下使用&#xff0c;举个例子来说&#xff0c;力扣题目的中英文切换。参考方案可见&#xff1a; https://b…...

【系统架构设计师】高分论文:论信息系统的安全与保密设计

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 摘要正文摘要 本人所在工作单位承担了我市城乡智慧建设工程综合管理平台项目的开发工作。我有幸参与了本项目,并担任架构师一职,全面负责项目的需求分析和系统设计等工作。城乡智慧建设工程综合管理平台项目包括…...

使用Tauri创建桌面应用

当前是在 Windows 环境下 1.准备 系统依赖项 Microsoft C 构建工具WebView2 (Windows10 v1803 以上版本不用下载&#xff0c;已经默认安装了) 下载安装 Rust下载安装 Rust 需要重启终端或者系统 重新打开cmd&#xff0c;键入rustc --version&#xff0c;出现 rust 版本号&…...

【docker】docker compose多容器部署

Docker Compose 的详细讲解与实际应用 什么是 Docker Compose&#xff1f; Docker Compose 是一个工具&#xff0c;用于定义和运行多容器 Docker 应用。 通过一个 docker-compose.yml 文件&#xff0c;可以同时启动多个服务&#xff0c;简化多容器管理。 Docker Compose 的核心…...

JS +CSS @keyframes fadeInUp 来定义载入动画

JSCSS 更完美展现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>跳动加载指示器</title>&l…...

Seatunnel解决ftp读取json文件无法读取数组以及格式化之后的json无法解析的问题

问题原因 在JsonRead这个方法里面 在源码中使用的逻辑是读取一行 然后把这个json进行解析 但是这样存在一个问题 比如如果json的格式是这样的 { name&#xff1a;“zhangsan”&#xff0c; age&#xff1a;25 } 如果是这样的话 第一行读到的内容就是 { 显然 一个 { 并不是一个…...

Elasticsearch在liunx 中单机部署

下载配置 1、下载 官网下载地址 2、上传解压 tar -zxvf elasticsearch-XXX.tar.gz 3、新建组和用户 &#xff08;elasticsearch 默认不允许root账户&#xff09; #创建组 es groupadd es #新建用户 useradd ryzhang -g es 4、更改文件夹的用户权限 chown -R ryzhang …...

深入探索 HarmonyOS 的 Navigation 组件:灵活的页面管理与动态导航

在移动应用开发中&#xff0c;页面的跳转和导航一直是核心功能之一。对于 HarmonyOS 开发者来说&#xff0c;Navigation 组件提供了一个强大的工具来实现灵活的页面管理和导航体验。今天&#xff0c;我们将深入探讨如何使用 HarmonyOS 中的 Navigation 组件来管理页面跳转、工具…...

【CUDA】CUDA Hierarchy

【CUDA】CUDA 基本概念和 Hierarchy CUDA 编程基础&#xff1a;Host 和 Device 工作流程 首先简单介绍CUDA 编程的基本概念&#xff1a;讲解 Host&#xff08;CPU&#xff09;与 Device&#xff08;GPU&#xff09;的区别、内存管理以及 CUDA 运行时的工作机制。 Host&#x…...