离线sqoop

Apache Sqoop是一款用于在Hadoop和RDBMS之间迁移数据的工具,通过MapReduce实现数据导入导出。本文详细介绍了Sqoop的安装部署、全量与增量数据导入HDFS、导入Hive、导出数据、作业管理和使用技巧,涵盖了import和export的各种模式及注意事项。
摘要由CSDN通过智能技术生成

离线sqoop

sqoop hadoop hive flume

01- Sqoop–软件介绍

  • sqoop专门用来做RDBMS数据和Hadoop数据相互迁移的一个工具。

  • Apache Sqoop 是在 Hadoop 生态体系和 RDBMS 体系之间传送数据的一种工具。来自于 Apache 软件基金会提供。sqoop.apache.org

  • Sqoop 工作机制是将导入或导出命令翻译成 mapreduce 程序来实现。在翻译出的 mapreduce 中主要是对 inputformat 和 outputformat 进行定制。

    Import:数据导入。RDBMS----->Hadoop
    Export:数据导出。Hadoop---->RDBMS

02- Sqoop–安装部署

  • 查看服务器内存
    • free -h
  • 查看磁盘大小
    • df -h
    • 1.3G 200M
  • 清理缓存
    • echo 1 >/proc/sys/vm/drop_caches
安装 sqoop 的前提是已经具备 java 和 hadoop 的环境。
最新稳定版: 1.4.6
配置文件修改:
cd $SQOOP_HOME/conf
mv sqoop-env-template.sh sqoop-env.sh
vi sqoop-env.sh
export HADOOP_COMMON_HOME= /export/servers/hadoop-2.7.5
export HADOOP_MAPRED_HOME= /export/servers/hadoop-2.7.5
export HIVE_HOME= /export/servers/hive
//加入 mysql 的 jdbc 驱动包
cp /hive/lib/mysql-connector-java-5.1.32.jar $SQOOP_HOME/lib/
验证启动
bin/sqoop list-databases \
--connect jdbc:mysql://localhost:3306/ \
--username root --password hadoop
本命令会列出所有 mysql 的数据库。
到这里,整个 Sqoop 安装工作完成。shell

  • 是一个单节点
  • 不需要启动程序为一个守护进程。只需要使用时用sqoop脚本操作。

03- Sqoop–导入import–全量数据导入hdfs

  • 下面的命令用于从MySQL数据库服务器中的emp表导入HDFS。
bin/sqoop import \
--connect jdbc:mysql://node03:3306/userdb \
--username root \
--password 123456 \
--delete-target-dir \
--target-dir /aa \
--table emp --m 1
其中--target-dir可以用来指定导出数据存放至HDFS的目录;
  • 可以看出它会在HDFS上默认用逗号,分隔emp表的数据和字段。可以通过

    –fields-terminated-by '\t’来指定分隔符

  • 首先得把hdfs启动,还得启动yarn集群

  • sqoop任务使用的MapReduce运行的

  • –m 1 指定mapper的个数为1 _success

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值