关系型数据库导入到Hbase

#!/bin/sh
. /etc/profile

sqoop import #连接
--connect \
"jdbc:mysql://192.168.1.107:3306/test" #用户名
--username  root#密码
 --password 123456 #使用多少个Map
   - m\
 1 #如果有null用‘‘替代
--null-string‘‘#Mysql的表名
   --table user #字段
   --columns  "id,host,user,password" #可加条件
--where
  id=108
#Hbase的表名
   --hbase-table aa #列族
   --column-family cf #那一列字段作为rowkey呢?
   --hbase-row-key id 

关系型数据库的ID一般来说是自增的,如果我们导入到Hbase可能会造成存储热点,如何避免呢?

维护一个reverse(id) 即可。

一般来说在关系型数据库创建一个字段,进行翻转

update user set reverse_id = reverse(id);

然后把reverse_id 当做RowKey即可

调用执行

sqoop --options-file ./user.opt

时间: 2024-10-23 00:52:51

关系型数据库导入到Hbase的相关文章

关系型数据库导入导出绝招出炉

Sqoop作为数据传输的工具,对于Hadoop与传统数据库之间数据的传输起着桥梁作用,那么到底如何导入导出数据呢? 第一:使用MapReduce作业来执行导入: (1)Sqoop首先检查将要导入的表 1.确定主键(如果有的话),调用mapreduce,根据主键分割map 2.没有主键,运行边界查询确定导入的记录数(找到一个min和一个max,确定边界进行划分) 3.通过任务数来划分边界查询的结果,使得他们有相同的负载 (2)Sqoop为每个将导入的表生成Java源文件 1.在导入过程中编译和使用

关系型数据库导入到HDFS

#从关系数据库抽取到HDFS,默认逗号分隔,执行sqoop --options --file ./fileName import --connect jdbc:oracle:thin:@192.168.1.101:1522/myora --username beifeng --password 123 -m 1 --null-string '' --table CITY --columns "ID,CITY_CNAME,PROVINCE_ID" --target-dir #要抽取到那个

Sqoop1.4.4将MySQL数据库表中数据导入到HBase表中

问题导读:         1.--hbase-table.--hbase-row-key.--column-family及--hbase-create-table参数的作用? 2.Sqoop将关系型数据库表中数据导入HBase中,默认Rowkey是什么? 3.如果关系型数据库表中存在多关键字,该怎么办? 一.简介及部分重要参数介绍 Sqoop除了能够将数据从关系型数据库导入到HDFS和Hive中,还能够导入到HBase表中. --hbase-table:通过指定--hbase-table参数值

使用sqoop 在关系型数据库和Hadoop之间实现数据的抽取

(一)从关系型数据库导入至HDFS 1.将下面的参数保持为 import.script import --connectjdbc:mysql://192.168.1.14:3306/test--username root--password 1234 -m1--null-string''--table user--columns "id,username,age"--target-dir/user/root/sqoop_test  -- 此目录不能存在 2. 执行sqoop --opt

Sqoop1.4.4实现关系型数据库多表同时导入HDFS或Hive中

问题导读: 1.使用Sqoop哪个工具实现多表导入? 2.满足多表导入的三个条件是? 3.如何指定导入HDFS某个目录?如何指定导入Hive某个数据库? 一.介绍 有时候我们需要将关系型数据库中多个表一起导入到HDFS或者Hive中,这个时候可以使用Sqoop的另一个工具sqoop-import-all-tables.每个表数据被分别存储在以表名命名的HDFS上的不同目录中. 在使用多表导入之前,以下三个条件必须同时满足: 1.每个表必须都只有一个列作为主键: 2.必须将每个表中所有的数据导入,

关系型数据库与HBase的数据储存方式区别

如今Bigtable型(列族)数据库应用越来越广,功能也很强大.但是很多人还是把它当做关系型数据库在使用,用原来关系型数据库的思维建表.存储.查询.本文以hbase举例讲述数据模式的变化. 传统关系型数据库(mysql,oracle)数据存储方式主要如下: 图一 上图是个很典型的数据储存方式,我把每条记录分成3部分:主键.记录属性.索引字段.我们会对索引字段建立索引,达到二级索引的效果. 但是随着业务的发展,查询条件越来越复杂,需要更多的索引字段,且很多值都不存在,如下图: 图二 上图是6个索

sqoop导入关系型数据库-解密Sqoop

Sqoop作为Hadoop与传统数据库之间的桥梁,对于数据的导入导出有着重要作用.通过对Sqoop基本语法以及功能的阐述,深刻解密Sqoop的作用和价值.  一.什么是Apache Sqoop? Cloudera开发的Apache开源项目,是SQL-to-Hadoop的缩写.主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql...)间进行数据的传递,可以将一个关系型数据库(例如: MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDF

Sqoop2入门之导入关系型数据库数据到HDFS上(sqoop2-1.99.4版本)

sqoop2-1.99.4和sqoop2-1.99.3版本操作略有不同:新版本中使用link代替了老版本的connection,其他使用类似. sqoop2-1.99.4环境搭建参见:Sqoop2环境搭建 sqoop2-1.99.3版本实现参见:Sqoop2入门之导入关系型数据库数据到HDFS上 启动sqoop2-1.99.4版本客户端: $SQOOP2_HOME/bin/sqoop.sh client set server --host hadoop000 --port 12000 --web

基于spark的关系型数据库到HDFS的数据导入

package com.shenyuchong; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.spark.sql.SaveMode; import org.apache.spark.sql.SparkSession; import java.net.HttpURLCon