【Hadoop】通过Sqoop实现从MySQL导入数据到HDFS

这篇具有很好参考价值的文章主要介绍了【Hadoop】通过Sqoop实现从MySQL导入数据到HDFS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

sqoop从mysql导入数据到hdfs,大数据,大数据,hdfs,hadoop

一、前言

各位CSDN的朋友们大家好!这篇文章是在困扰了我三天(甚至更久),经过不断尝试与踩坑总结出来的通过 Sqoop 从Mysql数据库导入数据到 Hadoop hdfs 的详细笔记与感想,希望能帮助到大家!本篇文章收录于 初心 的 大数据 专栏。

🏠 个人主页:初心%个人主页
🧑 个人简介:大家好,我是初心,和大家共同努力
💕 座右铭:理想主义的花,终究会盛开在浪漫主义的土壤里!🍺🍺🍺
💕欢迎大家:这里是CSDN,我记录知识的地方,喜欢的话请三连,有问题请私信😘

事情是这样的:要实现从关系型数据库(RDBMS)导入数据到数据仓库中(比如说Hive、HBase等),就要借助 Hadoop 集群的 Hdfs 来实现,而数据要从关系型数据库(这里以MySQL为例)到 hdfs ,则需要借助 Sql to Hadoop 工具,也就是本篇文章的主角——Sqoop。

二、导入前的准备

2.1 Hadoop集群搭建

上面我们提到,要导入数据到 Hdfs ,那么 Hdfs 我们肯定得有吧?于是我们首先就得有 Hadoop 集群,Hadoop集群搭建,大家可以参考我的这篇文章,这里就不再重复讲啦, Hadoop集群搭建(完全分布式)。

2.2 Hadoop启停脚本

在使用Hadoop集群的过程中,我们不可避免的遇到一个问题:

当我们一打开虚拟机,总是要在 NameNode 节点上启动 Hdfs ,在 ResourceManager 节点上启动 yarn ,关闭的时候也是,这可能是一个烦人的操作!有没有能够让我们在一个节点上,执行一个命令,就可以把 Hdfs 、yarn以及历史服务器打开呢?答案是有! ,大家可以参考我的这篇文章——Hadoop启停脚本分享Hadoop启停脚本笔记。

三、docker安装MySQL

使用Docker安装MySQL,我本来是打算放在这里的,但是因为文章较为详细,放在此处使得可阅读性有所下降,所以我将笔记放在了另外一篇文章,供大家参考!点击查看Docker安装MySQL。

四、安装Sqoop

4.1 Sqoop准备

  • 1.将Sqoop压缩包上传到 Hadoop102的/opt/software 目录下

sqoop从mysql导入数据到hdfs,大数据,大数据,hdfs,hadoop

  • 2.解压到 /opt/module 目录下
tar -xzvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/module/
  • 3.将Sqoop重命名
mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop-1.4.6 sqoop
  • 4.重命名Sqoop的模板文件

进入到Sqoop的conf目录下,将sqoop-env-template.sh重命名。

mv sqoop-env-template.sh sqoop-env.sh
  • 5.在Sqoop的配置文件末尾添加上Hadoop_Home目录
vim /opt/module/sqoop/conf/sqoop-env.sh
# hadoop_home

export HADOOP_HOME=/opt/module/hadoop-3.1.3
export HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3

sqoop从mysql导入数据到hdfs,大数据,大数据,hdfs,hadoop

  • 6.上传jdbc的jar包到Sqoop的lib目录下

sqoop从mysql导入数据到hdfs,大数据,大数据,hdfs,hadoop

至此,Sqoop的安装工作我们就准备好了!接下来我们来测试Sqoop是否能正常连接到MySQL。

4.2 Sqoop连接Mysql数据测试

通过在Sqoop安装目录下,执行以下命令,如果能够显示MySQL数据库中的所有数据库,那么证明Sqoop可以和Mysql正常通信,即代表安装成功。

  • 1.进入到Sqoop安装目录
cd /opt/module/sqoop/
  • 2.执行以下命令测试
bin/sqoop list-databases --connect jdbc:mysql://hadoop102:3307/ --username root --password sky

sqoop从mysql导入数据到hdfs,大数据,大数据,hdfs,hadoop

五、导入MySQL数据到hdfs

现在,我们所有的准备工作都已经准备好了!Hadoop集群的 hdfs,yarn,历史服务器,MySQL数据库,Sqoop工具,现在我们就可以开始从MySQL导入数据到 hdfs 了。

5.1 准备MySQL数据

  • 1.在Navicat中新建数据库mysql_to_hive

sqoop从mysql导入数据到hdfs,大数据,大数据,hdfs,hadoop

  • 2.在mysql_to_hive数据库执行 sql 文件

SQL文件我放在了百度网盘上,点击即可下载。

执行完gmall_report.sql之后,我们的mysql_to_hive数据库就会新建四张表,分别是order_by_province,order_spu_stats,order_total,user_total,并且插入了一些数据。

  • 3.查看表及数据
    sqoop从mysql导入数据到hdfs,大数据,大数据,hdfs,hadoop
    这是order_by_province表中的部分数据展示。
    sqoop从mysql导入数据到hdfs,大数据,大数据,hdfs,hadoop

四张表和数据均正常,至此,我们MySQL的数据就准备好了!

5.2 导入数据

首先进入到Sqoop的安装目录:

cd /opt/module/sqoop/

从Sqoop导入全部数据,我们只需要执行以下命令即可。

在执行下面的代码之前,如果你的MySQL不是在hadoop102上,需要修改;用户名和密码也是以自己的为准。

  • 导入表order_by_province
bin/sqoop import \
--connect jdbc:mysql://hadoop102:3307/mysql_to_hive \
--username root \
--password sky \
--target-dir /mysql/gmall_report/order_by_province \
--table order_by_province \
--num-mappers 1 \
--delete-target-dir \
--fields-terminated-by '\t' \
--num-mappers 5 \
--bindir /opt/module/sqoop/lib \
--split-by dt
  • 导入表order_spu_stats
bin/sqoop import \
--connect jdbc:mysql://hadoop102:3307/mysql_to_hive \
--username root \
--password sky \
--table order_spu_stats \
--target-dir /mysql/gmall_report/order_spu_stats \
--num-mappers 1 \
--delete-target-dir \
--fields-terminated-by '\t' \
--num-mappers 5 \
--bindir /opt/module/sqoop/lib \
--split-by dt
  • 导入表order_total
bin/sqoop import \
--connect jdbc:mysql://hadoop102:3307/mysql_to_hive \
--username root \
--password sky \
--table order_total \
--target-dir /mysql/gmall_report/order_toal \
--num-mappers 1 \
--delete-target-dir \
--fields-terminated-by '\t' \
--num-mappers 5 \
--bindir /opt/module/sqoop/lib \
--split-by dt
  • 导入表user_total
bin/sqoop import \
--connect jdbc:mysql://hadoop102:3307/mysql_to_hive \
--username root \
--password sky \
--table user_total \
--target-dir /mysql/gmall_report/user_toal \
--num-mappers 1 \
--delete-target-dir \
--fields-terminated-by '\t' \
--num-mappers 5 \
--bindir /opt/module/sqoop/lib \
--split-by dt

至此,通过Sqoop实现从MySQL导入数据到 Hdfs 就结束了!希望这篇文章对你有帮助。

六、Sqoop现状

讲完了Sqoop导入MySQL数据到Hdfs,接下来我们再聊聊些别的,首先看一下下面这张图片(来源于Apache Sqoop官网)Sqoop官网:

sqoop从mysql导入数据到hdfs,大数据,大数据,hdfs,hadoop

**啊?Sqoop要退役了吗?这不科学啊,这么好用的工具,怎么就退役了呢。**仔细看了下,原来Apache Sqoop在2021年6月就已经进入Attic了,就是最近的事情。

不过,「Attic」(英文翻译是阁楼,有些束之高阁的意思了)是啥啊?并没有听说过,进入到Attic的项目会咋样?,我们继续探索下。

Apache Attic原来就相当于Apache的小黑屋,如果Apache托管的项目长时间不活跃(超过2年没有release新版本,没有committer、contributer并且没有未来roadmap),就会选择将项目移动到Attic中,这也就相当于Apache的项目管理了,掌管整个项目的生命周期。

目前将Sqoop做数据迁移工具公司不在少数,当Sqoop移动到Attic后,单单使用来说是完全不受影响的;Apache Attic依旧会提供代码库的下载;但是不会再修复任何的bug,release新版本了,并且也不会再重启社区。

看到这里其实就没有这么慌了,我们还能继续用,不过如果遇到问题,我们只能自己建个分支去fix了,从侧面来说,也能说明Sqoop在某个角度是成功的,毕竟曾经成为Apache顶级项目,如果真的是长时间没有release,有可能是他确实已经够成熟了

七、结语

😎 本文主要讲解了如何通过Sqoop将RDBMS的数据导入到 Hdfs ,导入到了 Hdfs 之后,我们可以导入数据到数据仓库(HBase、Hive等),进行大数据的下一步学习啦!😊

这就是今天要分享给大家的全部内容了,我们下期再见!😊
🏠 本文由初心原创,首发于CSDN博客, 博客主页:初心%🏠
🍻 理想主义的花,终究会盛开在浪漫主义的土壤里!😍
🏠 我在CSDN等你哦!😍
sqoop从mysql导入数据到hdfs,大数据,大数据,hdfs,hadoop文章来源地址https://www.toymoban.com/news/detail-738285.html

到了这里,关于【Hadoop】通过Sqoop实现从MySQL导入数据到HDFS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [sqoop]将hive查询后的数据导入到MySQL

    一、知识点 export:将Hive的表导入到mysql叫导出 搜了很多,发现sqoop在hive导出到mysql时 1)不支持where参数对数据进行过滤。 2)不支持指定hive表的方式导出,只能指定Hive目录进行导出。 二、操作 1、在MySQL中建表 2、在hive中建表 3、将hive表导入到Mysql对应的表

    2024年02月15日
    浏览(42)
  • MySQL中的业务数据该如何正确导入到Hive中 - Sqoop

    水善利万物而不争,处众人之所恶,故几于道💦   1. 使用Sqoop脚本将MySQL中的数据迁移到HDFS   2. 在Hive中建立与之对应的表   3. 将HDFS中的数据load到 Hive 数仓的ODS层的表中 1 . 使用Sqoop 将 MySQL中的数据导入到HDFS上 使用示例: mysql_to_hdfs.sh all 2021-02-01 导出的数据用lzo压缩,并

    2024年02月11日
    浏览(48)
  • Hadoop3.0大数据处理学习4(案例:数据清洗、数据指标统计、任务脚本封装、Sqoop导出Mysql)

    直播公司每日都会产生海量的直播数据,为了更好地服务主播与用户,提高直播质量与用户粘性,往往会对大量的数据进行分析与统计,从中挖掘商业价值,我们将通过一个实战案例,来使用Hadoop技术来实现对直播数据的统计与分析。下面是简化的日志文件,详细的我会更新

    2024年02月08日
    浏览(53)
  • 【Sqoop】MySQL表导入Hive

    用 Sqoop 将 MySQL 指定数据库指定的表导入Hive 的指定数据库

    2024年02月03日
    浏览(41)
  • sqoop(DataX)-MySQL导入HIVE时间格问题

    用公司的大数据平台(DataX)导数,已经开发上线一个多月的一批报表,突然有同事说有个报表数据不准。出在时间字段上。 分析: 1、先看了原数据MySQL字段类型为datetime,目标字段为timestamp类型; 2、经发现所有时间的差距都是8小时,怀疑是因为时区转换的原因; 3、对比其他

    2024年02月02日
    浏览(49)
  • 基于Hadoop的MapReduce网站日志大数据分析(含预处理MapReduce程序、hdfs、flume、sqoop、hive、mysql、hbase组件、echarts)

    需要本项目的可以私信博主!!! 本项目包含:PPT,可视化代码,项目源码,配套Hadoop环境(解压可视化),shell脚本,MapReduce代码,文档以及相关说明教程,大数据集! 本文介绍了一种基于Hadoop的网站日志大数据分析方法。本项目首先将网站日志上传到HDFS分布式文件系统

    2024年02月16日
    浏览(65)
  • 教你使用Sqoop一次性将mysql中的十张表导入到hive中

    ​🏠​ 个人主页:csdn春和 ​🛰​ 推荐专栏:更多专栏尽在主页!  JavaWeb专栏(从入门到实战超详细!!!)  SSM专栏 (更新中) ​📖​ 本期文章:Sqoop一次性将mysql中的十张表同步到hive中 如果对您有帮助还请三连支持,定会一 一回访! 前言:这是一篇实验随记文章

    2023年04月15日
    浏览(56)
  • Sqoop【实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)

    1️⃣ 查看所有命令【 sqoop help 】 2️⃣ 查看某条命令的具体使用方法【 sqoop help COMMAND 】 查询MySQL所有数据库,通常用于 Sqoop 与 MySQL 连通测试: 【具体参数可以使用 sqoop help list-databases 查看】实例: 结果: 【2个】WARN处理: 查询指定数据库中所有数据表,这里要注意一下

    2024年03月18日
    浏览(49)
  • 大数据bug-sqoop(二:sqoop同步mysql数据到hive进行字段限制。)

    新增加三个参数 –query “${sql}” 这个参数添加对应表的sql语句。注意结尾必须添加 $CONDITIONS ,必须添加where 条件,如果没有where条件,写成where 1=1。案例如下: \\\"select id,key_id,key_type,\\\'\\\' as encryption_cert_chain,device_type,account_id_hash,user_identifier,user_id,request_id,device_id,vehicle_id,vehicl

    2024年02月12日
    浏览(43)
  • 使用sqoop从Hive导出数据到MySQL

    1、启动hadoop:start-all.sh。 2、启动mysql:support-files/mysql.server start。 3、启动hive:hive。 4、在hive中创建表。 (学生信息:学号xh,姓名xm)xsxx: create table bigdata03.xsxx ( xh String, xm String ) row format delimited fields terminated by \\\',\\\'stored as textfile; (课程信息:课程号kch,学号xh,课程名称

    2024年02月11日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包