sqoop安装和简单使用

7 篇文章 0 订阅
3 篇文章 0 订阅

sqoop是一个数据传输工具,主要用于在Hadoop和关系数据库,数据仓库,NoSQL之间传输数据.通过sqoop可以方便的将数据从关系数据库导入HDFS,HBase,Hive或者从HDFS中导出到关系数据库中.
sqoop通过map任务来传输数据,map负责加载,转换,然后存储到HDFS,HBase,Hive中.Sqoop是基于客户端模式.只需要一台机子即可.Sqoop只提交一个map作业,数据的传输和转化都是使用Mapper来完成的,可通过YARN查看状态.
前提java 和hadoop已经安装了.
1.下载sqoop并解压
2.添加环境变量

vim .bashrc
export SQOOP_HOME=/../
export PATH=$ SQOOP_HOME/bin:$PATH

3.修改配置文件$SQOOP_HOME/conf/sqoop-env.sh

cd $SQOOP_HOME/conf/sqoop-env-template.sh $SQOOP_HOME/conf/sqoop-env.sh
vim $SQOOP_HOME/conf/sqoop-env.sh
export HADOOP_HOME=/.../
export HADOOP_MAPRED_HOME=/.../(hadoop 安装目录)
export HIVE_HOME=/.../

4.添加MySQL jar 包到下

cp mysql-connector-java-xx-.bin.jar $SQOOP_HOME/lib/

5.检测
sqoop version

Sqoop 导入MySQL数据到HDFS

sqoop import --connect jdbc:mysql://localhost:3306/sqoop --username root --password root --table tableName -m 1 --delete-target-dir

–connect 指定要导入数据的数据库
–username 数据库中的用户名,密码
–password 密码
–table 需要导入的数据表
-m 并行度,默认是4,并行度决定最终输出到hdfs中文件个数
–delete-target-dir 因为sqoop是使用map操作,不能有已经存在的文件,所以如果有则删除
sqoop默认的导入路径是/user/用户名/表名
sqoop默认从关系型数据库中导入数据到hdfs的分隔符是逗号

Sqoop 导入HDFS数据到MySQL

导出前需要创建对应的导出表使其结构与导出数据对应.

sqoop export --connect jdbc:mysql://localhost:3306/sqoop --username root --password root --table tableName --columns “colnames1, colnames2” --export-dir /data --fields-terminated-by ‘\t’ --lines-terminated-by ‘\n’ -m 1

–connect 指定要导入数据的数据库
–username 数据库中的用户名,密码
–password 密码
–table 需要导入的数据表
–export-dir 导出目录
–fields-terminated-by 行分隔符
–lines-terminated-by  列分隔符
-m 并行度,默认是4,并行度决定最终输出到hdfs中文件个数
-Dsqoop.export.records.pre.statement 批量导入,一次导入多少行

Sqoop 导入MySQL数据到Hive

将MySQL数据导入到Hive的过程是将MySQL的数据导入HDFS,在用load函数将HDFS的文件加载到Hive中.

sqoop import --connect jdbc:mysql://localhost:3306/sqoop --username root --password root --table tableName -m 1 --delete-target-dir --hive-import --create-hive-table --hive-table tableInportName

–hive-import 表示将数据导入到Hive中
–create-hive-table 自动创建hive表
–hive-table hive表名
–hive-database 导入到指定的Hive数据库

其他的参数可通过查看

sqoop help
sqoop help command

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

siyan985

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值