通过Sqoop将MySQL数据导入到HDFS/HBase

本文将利用Sqoop将MySQL海量测试数据导入到HDFS和HBase。

一、安装Sqoop

1、下载sqoop,解压、文件夹重命名

wget http://mirror.bit.edu.cn/apache/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

tar -zxvf sqoop-1.4.6.bin_hadoop-2.0.4.alpha.tar.gz  -C /root/hadoop/

mv sqoop-1.4.6.bin_hadoop-2.0.4.alpha sqoop-1.4.6

2、配置环境变量

vim /etc/profile
export SQOOP_HOME=/root/hadoop/sqoop-1.4.6

export PATH = $PATH:$SQOOP_HME/bin

3、验证

若正常显示Sqoop版本信息,则安装配置成功:

[root@localhost ~ ] # sqoop version

二、创建数据库和表

安装MySql后,创建测试数据库和测试表。

数据库名:test

表结构:point(pointId int(10) PRIMARYKEY,pointName varchar(16),pointValue int(10))

三、shell脚本生成测试数据

编写Shell脚本,此处的插入语句需要根据所创建的表结构来修改:

#!/bin/bash
i=1;
MAX_INSERT_ROW_COUONT=$1;
while(( $i <= $MAX_INSERT_ROW_COUNT ))
do
    mysql -uhive -phive test -e "insert into test.point(pointId,pointName,pointValue) values($i,'point"$i"',$i);"
    i=(($i+1))
done
exit 0

四、MySql数据导入

1、导入HDFS

sqoop import --connect jdbc:mysql://localhost:3306/test --username hive --password hive  --table 
point
参数解析:

import:表示从传统数据库导入数据到 HDFS/HIVE/HBASE等;

–connect:建立数据库连接;

jdbc:mysql://localhost:3306/test:使用jdbc方式连接mysql数据库,数据库名为test;

–username:指定数据库用户名;

–password:指定数据库密码;

–table:指定表名

注意: a)HDFS输出目录不能已经存在; b)没有指定-m或者splite-by时,即没有指定并行度时,要导入的表必须有主键,否则会出错。 c)导入到指定目录:sqoop import –connect jdbc:mysql://localhost:3306/test –username hive –password hive –table point –target-dir /directory

如果没有指定输出目录,默认在/user/root/下创建一个与表名一致的子目录作为输出目录,导入操作执行后,查看HDFS中是否有导入的文件:

hdfs dfs -ls /user/root/point/

2、导入HBase

sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password root --table 
point --hbase-table HPoint --column-family info --hbase-row-key pointId --hbase-create-table
参数解析:

–hbase-table:指定导入到HBase数据库中某表;

–column-family:指定列族名;

–hbase-row-key:指定rowKey;

–hbase-create-table:表示按照参数创建HBase中的表;

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏tiane12

ZenCart/JoyCart搬家引起后台无法登陆故障修复方法

2344
来自专栏CSDN技术头条

Hadoop大数据平台运维工程师须掌握的基本命令集分享

本博文收集和整理了在日常维护hadoop集群时运维工程师需要掌握的最基本的hadoop管理与维护的相关命令,在此分享出来供大家参考学习~博主也是刚刚接触hado...

1889
来自专栏Jed的技术阶梯

Spark HA集群搭建

比如分别把这两个文件重命名为start-spark-all.sh和stop-spark-all.sh 原因: 如果集群中也配置HADOOP_HOME,那么在...

1253
来自专栏Hadoop实操

如何在CDH中使用LZO压缩

CDH中默认不支持Lzo压缩编码,需要下载额外的Parcel包,才能让Hadoop相关组件如HDFS,Hive,Spark支持Lzo编码。

4488
来自专栏应兆康的专栏

【腾讯云的1001种玩法】在腾讯云上部署你的Hadoop集群

Apache Hadoop软件库是一个框架,开发者只需使用简单的编程模型在大量计算机(配置不高)上对大型数据集进行分布式处理。本文主要跟大家讲述如何在腾讯云上部...

6913
来自专栏Hadoop实操

如何通过CM禁用Federation

本文主要讲述如何通过CM禁用Federation。我前面写过两篇关于Federation的文章,可参看《HDFS Federation(联邦)简介》和《如何通过...

874
来自专栏杂烩

spark2.0.1安装部署及使用jdbc连接基于hive的sparksql

复制一份spark-env.sh.template,改名为spark-env.sh。然后编辑spark-env.sh

823
来自专栏我是攻城师

Spark SQL+Hive历险记

2945
来自专栏Hadoop实操

如何在CDSW上调试失败或卡住的Spark应用

默认情况下,CDSW会话中的Spark应用程序只显示ERROR级别的日志,当作业出现异常或卡住时无法查看作业运行详细日志及异常堆栈信息,不能根据日志的上下文正确...

1103
来自专栏Hadoop实操

如何在CDH集群外配置Kerberos环境的Spark2和Kafka客户端环境

1573

扫码关注云+社区