当前位置: 首页 > news >正文

泰涨知识 | Sqoop全分布式搭建

一、Sqoop简介

Sqoop全称是 Apache Sqoop,是一个开源工具,能够将数据从关系型数据库中或者文件存储服务器(数据仓库,系统文档存储空间,关系型数据库)导入 Hadoop 的 HDFS或分布式数据库HBase,供MapReduce分析数据使用。数据传输的过程大部分是通过MapReduce过程来实现,只需要依赖数据库的Schema信息。Sqoop所执行的操作是并行的,数据传输性能高,具备较好的容错性,并且能够自动转换数据类型。

二、Sqoop架构

Sqoop架构主要有三部分组成:Sqoop客户端,数据存储与挖掘、数据存储空间。其中数据存储与挖掘主要为HDFS、Hbase、Hive等工具。

从上图中可以知道Sqoop的功能架构之间的关系:

1、Sqoop通过Hadoop中的Map任务将数据从数据存储空间中导入HDFS供数据分析使用

2、Sqoop只负责数据传输,不负责数据分析,只涉及Map任务,不涉及Reduce任务。

3、Sqoop本质是运行一个mapreduce程序,所以要运行sqoop,先启动Hadoop。

三、Sqoop导入导出数据

Sqoop导入数据流程如图:

1、Sqoop通过JDBC的接口读取元数据信息。

2、Sqoop获取元数据信息,并生成以一个与表名相同的容器类。

3、Sqoop生成的容器类完成数据的序列化和反序列化,保存表的每一行数据。

4、Sqoop生成的记录容器类向Hadoop的Map作业提供序列化和反序列化的功能,然后sqoop启动Map作业。

5、在Sqoop启动Map作业过程中,Map利用Sqoop生成的记录容器类提供的反序列化功能,通过JDBC读取数据库中的内容。

6、Map作业将读取的数据写入HDFS,此时Sqoop生成的记录容器类提供序列化功能。

Sqoop导出数据流程图:

Sqoop数据导出过程:将通过MapReduce或Hive分析后得出的数据结果导出到关系型数据库,供其他业务查看或生成报表使用。Sqoop export 是将一组文件从HDFS导出回RDBMS的工具。前提条件是,在数据库中,目标表必须已经存在,根据用户指定的分隔符将输入文件读取并解析为一组记录。

四、Sqoop安装部署

第一步:在/usr/local/下创建文件sqoop,并修改权限 chmod 777 sqoop

第二步:打开文件传输工具,将下载的sqoop上传到创建的sqoop文件中

第三步:解压文件 tar -xvf sqoop-1.4.5-cdh5.3.6.tar.gz

第四步:cd到conf目录下,复制sqoop-env-template.sh并命名为sqoop-env.sh mv sqoop-env-template.sh sqoop-env.sh

第五步:编辑sqoop-env.sh

增加以下四项内容:

1、export HADOOP_COMMON_HOME=/usr/local/hadoop/hadoop-2.6.0-cdh5.7.0

2、export HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-2.6.0-cdh5.7.0

3、export HBASE_HOME=/usr/local/hbase/hbase-1.2.0-cdh5.7.0

4、export HIVE_HOME=/usr/local/hive/hive-0.13.1-cdh5.3.6

注意:需要将mysql的驱动jar包导入到sqoop根目录下的lib文件夹里面

第六步:分发给其他节点 scp -r /usr/local/sqoop/ slave1:/usr/local/ (发完后将1修改为2、3)

第七步:进入sqoop的bin目录

案列:

获取MySQL中的数据库

sqoop-list-databases --connect jdbc:mysql://192.168.100.110:3306 --username root --password 123

获取MySQL中数据表

sqoop-list-tables --connect jdbc:mysql://192.168.100.110:3306/hive --username root --password 123

如果以上操作能够把MySQL中的数据库和数据表显示出来,证明Sqoop环境部署成功!

http://www.jsqmd.com/news/1152570/

相关文章:

  • K-Means与DBSCAN聚类算法对比:基于Scikit-learn的3大评估指标与可视化实战
  • 企业级日程中枢构建指南:Gemini嵌入Calendar的RBAC权限模型与GDPR合规审计路径
  • 31岁,运维IT,去年被菜员。还有什么出路可以走?
  • 3步快速实现Windows资源管理器毛玻璃效果:ExplorerBlurMica终极美化指南
  • Titanic 生存预测:12个机器学习模型 ROC-AUC 对比,逻辑回归 0.911 领先
  • 什么是“亚奈奎斯特”(Sub-Nyquist)频率
  • LLM 适配层实战:一套代码无缝切换 Qwen / DeepSeek / OpenAI
  • SSMS通过 Query Store 定位慢 SQL 通用SQL模板。
  • 智能音箱意图识别(NLU)技术演进:从规则匹配到BERT模型的3个关键阶段
  • Cursor AI inline chat到底怎么用?3步配置+7个神级提示词模板,今天不学会明天就落后
  • 1980–2024 年全球干旱事件时空聚类数据集
  • 如何用openeuler/python-multi_key_dict实现高效多键值存储?完整示例教程
  • SHAP 0.42.1 实战:3种核心绘图函数(Beeswarm/Decision/Waterfall)对比与代码避坑指南
  • C语言中的static和extern:一分钟搞懂作用域与生命周期
  • 方法 , 类深度分析
  • DFIG双馈风机_风储调频,整流+逆变_储能并网,MPPT算法仿真
  • AI智能体功能下线:技术原理、数据备份与开源迁移方案
  • 我在CSDN踩过的10个技术坑:从入门到放弃,再到重新出发
  • 踩坑实战 | MySQL/PostgreSQL 迁移必踩:LEFT JOIN 莫名丢数据,KES 外连接消除避坑指南
  • TAM空间微环境观察:从细胞邻域到缺氧相关生态位
  • 2026工业阀门采购白皮书:认证链与实证数据解构
  • 如何永久保存微信聊天记录:免费开源工具WeChatMsg终极使用教程
  • OpenCV 4.8 相机标定实战:11张棋盘格图片获取亚像素级精度
  • 我用了 8 个月 Codex CLI,总结出这套 AI 编程工作流
  • 天辛大师漫谈AI时代的成功学,重复常识还是追求新知?
  • 技术方案模版
  • Claude SDK接入避坑指南:解析400错误背后的协议设计
  • 为什么92%的AI设计失败?揭秘Midjourney与ChatGPT协同断点:3类隐性冲突+4套校准协议(含企业级Checklist)
  • 工况适配评测|同品类横向对比:多工位转台机床尺寸、结构、工件适配范围测评
  • 模型即路由器:智能调度多LLM,优化成本与质量平衡