Hbase和Mysql存储数据量对比

news2024/11/18 3:34:13

目录

前言

生成数据

转换成hbase能够识别的HFile文件

导入HFile到hbase中

导入数据到Mysql

总结


前言

由于想知道hbase和mysql存储同样的一份数据需要的存储是否一样,故做的一下实验。

生成数据

脚本如下:

#!/bin/bash

array_brand=([1]=huawei [2]=apple [3]=xiaomi [4]=honor)
array_color=([1]=green [2]=red [3]=white [4]=black)
array_price=([1]=5000 [2]=4899 [3]=2899 [4]=8999)

function rand(){
    min=$1
    max=$(($2-$min+1))
    num=$(date +%s%N)
    echo $(($num%$max+$min))  
}


for i in `seq 1 100000`
do
        num=$(rand 1 4)
        brand=${array_brand[$num]}
        color=${array_color[$num]}
        price=${array_price[$num]}

        echo "$i,$brand,$color,$price"
done

#执行sh makedata.sh >> hbaseSourceData.txt开始造数据

在linux上的大小为2.2M

转换成hbase能够识别的HFile文件

  • 上传至hdfs
sudo -u hdfs hadoop fs -put hbaseSourceData.txt /tmp/
  •  转换为HFile,表不存在的话会自动创建
hbase  org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=, -Dimporttsv.columns='HBASE_ROW_KEY,cf:brand,cf:color,cf:price' -Dimporttsv.bulk.output=/tmp/output default:mysqltest /tmp/hbaseSourceData.txt

有点出乎所料,转成HFile竟然需要11.5M的存储,到这里应该就可以看出在hbase存储时的存储空间是多少了,因为hbase就是以HFile的方式存的,不过本着严谨的态度,一条道走到黑,不撞南墙不回头

导入HFile到hbase中

hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /tmp/output/  default:mysqltest

执行过程虽然有点小报错,但是数据还是进去了

查看hbase存储大小,不出所料,就是HFile的大小

 ok,接下来导入到mysql中

导入数据到Mysql

#创建mysql对应的表
create table `testhbase`(`rowkey` int,`name` varchar(200),`color` varchar(200),`price` int);
#在mysql交互窗口执行,导入数据
load data local infile '/hbaseSourceData.txt' into table testhbase fields terminated by ',' (rowkey,name,color,price);
#查询表占用的存储空间
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data  from information_schema.TABLES where table_schema = 'test' and table_name='testhbase';

总结

linux:2.2M

Hbase:11.5M

Mysql:5.52M

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

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

相关文章

Java-MySQL

数据库基础知识 先谈发音 MySQL如何发音?在国内MySQL发音有很多种,Oracle官方文档说他们念作My sequal[si:kwəl]。 数据库基本概念 1 ● 数据 数据(Data)是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的、…

目标检测算法——人脸识别数据集汇总(附下载链接)

>>>深度学习Tricks&#xff0c;第一时间送达<<< &#x1f384;&#x1f384;近期&#xff0c;小海带在空闲之余&#xff0c;收集整理了一批人脸识别数据集供大家参考。 整理不易&#xff0c;小伙伴们记得一键三连喔&#xff01;&#xff01;&#xff01;&am…

用python给女朋友写个圣诞树玩玩~

嗨害大家好鸭&#xff01;我是小熊猫~ 虽然我们不过洋节&#xff0c;但是女朋友要的话&#xff0c;那顺手写一个吧 代码&#x1f386; 模块 [源码、资料电子书点击此处] import turtle as t from turtle import * import random as r import time圣诞树细节以及画布大小 画布…

如何读取MySQL中的数据存放到HDFS_大数据培训

大数据培训读取MySQL中的数据存放到HDFS 1 查看官方模板 [atguiguhadoop102 ~]$ python /opt/module/datax/bin/datax.py -r mysqlreader -w hdfswriter { “job”: { “content”: [ { “reader”: { “name”: “mysqlreader”, “parameter”: { “column”: [], “conne…

ROS2初学者2022教程

ROS2初学者2022教程 掌握 ROS2 基础知识并成为机器人操作系统开发人员 – 一步一步 课程英文名&#xff1a;ROS2 For Beginners (ROS Foxy, Humble - 2022) 此视频教程共15.0小时&#xff0c;中英双语字幕&#xff0c;画质清晰无水印&#xff0c;源码附件全 下载地址 课程编…

手机视频如何修改封面?推荐这些修改方法

大家在社交平台上发布视频的时候会发现&#xff0c;一个好看的视频封面可以吸引很多的网友进行浏览和观赏。所以视频封面一直是视频创作者们不可忽略的一部分。那么你们知道手机视频怎么修改封面吗&#xff1f;如果你们想知道的话&#xff0c;那就接着往下看看吧&#xff0c;下…

Java_笔记_多态_包_final_权限修饰符_代码块

封装&#xff1a;对象代表什么&#xff0c;就得封装对应的数据&#xff0c;并提供数据对应的行为。 一、多态&#xff1a;对象的多种形态。同类型的对象&#xff0c;表现出的不同形态。 1.多态的表现形式&#xff1a;父类类型 对象名称 子类对象; 学生形态 对象 Student s …

Java异常(比较全)

前言&#xff1a;想要学好异常&#xff0c;需要了解JVM虚拟机知识&#xff0c;这里涉及面试常问的内存溢出错误解决办法 一、异常是什么&#xff1f; 定义 程序运行过程中&#xff0c;由于某些原因导致程序出错&#xff0c;从而结束程序运行&#xff0c;这就称为异常 java异常…

C++经典题目

目录 P62 3.6 求圆周长面积 P80 3 华氏转摄氏 P80 10 分段函数 P81 21 数列求和 P82 24 打印图形 P229 6 长方体体积 P384 4 printArea 题目来源于C程序设计&#xff08;第4版&#xff09; P62 3.6 求圆周长面积 设圆半径r1.5&#xff0c;圆柱高h3&#xff0c;求圆周长…

React生命周期中有哪些坑?如何避免?

在讨论React 的生命周期的时候&#xff0c;一定是在讨论类组件&#xff0c;因为函数组件并没有生命周期的概念&#xff0c;它本身就是一个函数&#xff0c;只会从头执行到尾巴 其实生命周期只是一个抽象的概念&#xff0c;大部分人看到生命周期想到的往往都componentDidMount&…

CMMI2.0配置管理工作及访谈学习笔记

1. 配置管理概述 1.1. 关于配置管理 配置管理是通过技术或其他手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施&#xff0c;通过配置标识、版本控制、版本管理、基线管理和配置审计来管理工作产品的完整性。 配置管理的主要目的是进行工作产品管理&#xf…

JavaScript -- 12. jQuery

文章目录jQuery1 jQuery简介2 使用jQuery2.1 下载jQuery2.2 引用jQuery3 jQuery的核心函数3.1 作为工具类使用3.2 作为函数使用3.2.1 将一个函数作为$的参数3.2.2 将选择器字符串作为参数3.2.3 将DOM对象作为参数3.2.4 将html代码作为参数4 jQuery对象4.1 获取DOM对象4.2 隐式迭…

Python——基础知识

前面主要讲解了javaEE的基础知识&#xff0c;基本上可以用servlet写一些简单的网页程序&#xff0c;后续的博客将围绕spring进行讲解&#xff0c;并且其中穿插一些python的知识 变量 命名 和其他的编程语言一样&#xff0c;java的变量命名需要遵循下面几个原则 由数字&…

世界杯竞猜项目Dapp-第二章(hardhat部署合约)

创建 hardhat 项目 # 创建 npm 空项目 npm init # 安装 npm install --save-dev hardhat2.11.1 # 创建工程 npx hardhat -> 选择高级ts项目运行测试 # 编译合约 npx hardhat compile # 单元测试 npx hardhat test添加合约 将 Worldcup.sol&#xff08;上节编写的合约&am…

【Flink】自定义keyBy的KeySelector

我们通常在写Flink程序的时候都会遇到keyBy,比如按照某条数据的某个字段进行分类计算,或者计算pv,还有需要用到Flink定时器的高级功能。 下面我们根据keyby的源码,看下keyBy的用法(本博客基于Flink1.13) 源码有5种方式定义keyBy, 但是其中的2种已经不用了,如果用户想…

PC的ARM的安全启动

其实还是很不习惯将PC和ARM联系起来&#xff0c;当然主要是因为我刚刚接触嵌入式没有多久&#xff0c;更别说服务器、PC端了。 脑子里固化了的X86。 于是这一篇学习一下&#xff0c;基于ARM的PC&#xff0c;是怎么利用这个ATF框架&#xff0c;进行安全启动的。 文章内容来自…

9个做好动效设计的好方法

动态效果意味着充满生命和兴奋&#xff0c;为静态事物增添生命。然而&#xff0c;在软件方面&#xff0c;动态效果不仅是为了获得乐趣&#xff0c;也是为了解决问题。 作为人类&#xff0c;我们习惯于看到世界在我们周围移动。如果任何软件有连贯的动画&#xff0c;它都会感到…

【Python游戏】Python基于第三方库pygame实现一个魂斗罗小游戏,毕业设计必备 | 附源码

前言 halo&#xff0c;包子们下午好 今天给打击整一个魂斗罗小游戏 很多小伙伴接触魂斗罗应该是在小时候的一个手柄游戏上面吧 我记得作为90后的我&#xff0c;玩这一款游戏是在小学的时候 废话不多说&#xff0c;直接上才艺 今天给大家直接安排 相关文件 关注小编&#xff…

30分钟了解linux操作系统内核总结

【推荐阅读】 概述Linux内核驱动之GPIO子系统API接口 一篇长文叙述Linux内核虚拟地址空间的基本概括 轻松学会linux下查看内存频率,内核函数,cpu频率 纯干货&#xff0c;linux内存管理——内存管理架构&#xff08;建议收藏&#xff09; Linux 内核性能优化的全景指南&#xff…

中学语文杂志中学语文杂志社中学语文编辑部2022年第30期目录

理论_视点《中学语文》投稿&#xff1a;cn7kantougao163.com 追求服务于学的“智慧语文”教育 陈维贤; 3-5 教学_阅读教学 高中古诗词群文阅读教学特点新探 张红娟; 6-8 导读需导思 领读方领悟 罗艳兰; 9-10 学习任务群背景下的群文阅读教学研究 丁雪云; 11-12…