hbase 转mysql_Mysql到HBase的迁移

Hive可是远重要于HBase

sqoop import

--connect jdbc:mysql://localhost/retail_db

--username  root

--password hadoop

--table products        // mysql的products表

--columns "customernum,customername"    //里面的两个原始数据列

--hbase-table customercontactinfo     新开关,hive可以自动创建表,但是hbase需要你提前创建好

--column-family CustomerName      //导入到我hbase这个表的这个column-family下面

--hbase-row-key  customernum   hbase是必须通过row-key来导入的

--m 1

问题:我们可以更新HBase的一条记录吗?

HBase只能用put,如果原来有这个row-key的数据,那他只能替换成最新的版本。

多版本支持是基于column family的,比如说第一个CF我支持5个版本,第二个CF支持10个版本。

b80ec81866bb4e579d9e8311e97e7ebc.png

如何检查HBase表中有哪些列?

desc并不能查询出column,只能查出column family。

理论上同一条记录是可以在同一个CF下,有不同的列的,所以没有可以真正检查列的命令。

53709708526d305af2c09fc24adf2ffc.png

1. 首先我们创建hbase表

2. 导入

例子

6e832decd3294f822b30bf5dcafb8f3c.png

3.进入Hbase查看下记录数目,果然导入了600多条

5de4da4f850299f59aed0e1eaee56b2b.png

这次导入我们换--query,不用--table了

4e778576b04c0d97d0cb1edbb23b3c84.png

4.查下数据

scan 'products' , {LIMIT -->10}

也就是送到了data列族下面

ad5878410b5f36fb5689a5fe0cf0c5b5.png

区别:

往HBase里面放就不用太担心mapper数量了,比如给个15,但是必须让每个mapper有活儿干。

因为HBase是有compaction的,不怕产生很多小文件,而hive没有。

问题:重新导了一遍数据,为什么count一下Hbase的记录数还是1345?

区别:

0e1b0676781eec25e21424022a19c9f7.png

第一次是填了第一个column family的记录,基于row-key

第二次我还是基于row-key插入,插入的是第二个column family。

所以记录数目不会增加,如果值插重复了,就产生多个版本。

d55b440d21e03c725826622afcef64d4.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HBaseMySQL 是两种不同的数据库系统,它们各自适用于不同的场景。HBase 是一个分布式、列式存储的 NoSQL 数据库,主要用于大规模数据处理和实时查询,适合于大规模数据存储和高并发读写的应用,如日志收集、社交网络等。 MySQL 则是一个关系型数据库管理系统,适合结构化的数据存储和管理,提供强大的事务支持和 ACID 属性,常用于企业级应用和个人网站。 如果你想在一台机器上安装 HBase,通常需要以下几个步骤: 1. **下载和安装**: - 下载 HBase 官方发行版的 tarball 或者通过 Apache Maven 或者 Docker 容器安装。 - 配置环境变量和设置必要的参数,如主/副节点、 ZooKeeper 等。 2. **启动服务**: - 启动 HMaster(主服务器)、HRegionServer(区域服务器)以及 ZooKeeper 服务。 3. **创建表**: 在 HBase shell 中创建表定义,并根据需求调整列族和列。 4. **数据管理**: 使用 HBase shell 插入、查询和管理数据。 对于安装 MySQL,流程如下: 1. **下载和安装**: - 访问 MySQL 官网下载适用于你的操作系统的版本。 - 根据官方文档进行安装,可能需要 root 权限。 2. **配置环境**: - 设置 PATH 环境变量指向 MySQL 的 bin 目录。 - 配置 my.cnf 文件以适应你的需求。 3. **初始化数据库**: - 创建新的数据库实例,执行 `mysql_install_db` 命令。 4. **启动服务**: - 启动 mysqld 服务。 5. **创建用户和数据库**: - 使用 `mysql` 或 `mysqladmin` 命令创建用户和数据库。 如果你需要在这两个系统之间迁移数据,可能需要使用特定的工具(如 Flume 或 Sqoop 对于 Hadoop 生态,或者直接的 SQL 脚本),具体取决于数据的结构和复杂度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值