大数据基础设施搭建 - Sqoop

一、上传压缩包

官网:http://mirrors.hust.edu.cn/apache/sqoop/1.4.6/
简介:Hadoop和关系数据库之间传输数据
部署节点:在Hadoop集群的任意节点部署都可以??因为Hadoop配置文件中指出了NameNode、ResourceManager在哪台节点上??并且配置文件分发到了所有节点上??需要部署在ResourceManager节点!!!!!!!在hadoop104上部署试一试!!
注意:需要向Hadoop集群中所有NodeManager节点开放MySQL端口号,因为Sqoop本质是MR程序,需要将MR任务提交到YARN的ResourceManager节点,由集群NodeManager计算,MR任务不一定被分配到哪个节点上,Sqoop-MR任务需要从MySQL读取数据,所以任何NodeManager节点都应该具有MySQL的读取权限。

二、解压压缩包

[hadoop@hadoop102 software]$ tar -zxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/module/

三、配置环境变量(TODO)

sudo vim /etc/profile.d/my_env.sh

新增内容:

#SQOOP_HOME
export SQOOP_HOME=/opt/module/sqoop-1.4.7
export PATH=$PATH:$SQOOP_HOME/bin

四、修改配置文件

[hadoop@hadoop102 sqoop-1.4.6.bin__hadoop-2.0.4-alpha]$ cd conf/
[hadoop@hadoop102 conf]$ mv sqoop-env-template.sh sqoop-env.sh
[hadoop@hadoop102 conf]$ vim sqoop-env.sh

新增内容:

#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/opt/module/hadoop-3.1.3

#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3

五、拷贝MySQL驱动

[hadoop@hadoop102 software]$ cp mysql-connector-java-5.1.37.jar /opt/module/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib/

六、测试能否连接数据库

[hadoop@hadoop102 lib]$ cd /opt/module/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/
[hadoop@hadoop102 sqoop-1.4.6.bin__hadoop-2.0.4-alpha]$ bin/sqoop list-databases --connect jdbc:mysql://mall:3306/ --username root --password 123456

七、import MySQL to HDFS

需求:将MySQL中gmall库中的sku_info表导入到HDFS中。
–fields-terminated-by:Hdfs文本文件中,字段分隔符????
–compress:启动压缩(默认gzip),压缩保存到HDFS的文件。
–compression-codec:指定压缩格式。
–null-string:如果指定列为字符串类型,使用指定字符串替换值为null的该类列的值。
–null-non-string:如果指定列为非字符串类型,使用指定字符串替换值为null的该类列的值。
\N:hive中的null string格式。

注意:Sqoop本质是执行一个MR程序进行数据导入导出,所以需要向Yarn提交任务,即需要连接ResourceManager,所以ResourceManager所在机器需要向Sqoop所在机器开放8088端口。

/opt/module/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/sqoop import \
--connect jdbc:mysql://mall:3306/gmall \
--username root \
--password 123456 \
--target-dir /warehouse/db/gmall/sku_info/2023-11-17 \
--delete-target-dir \
--query "select id,spu_id,price,sku_name,sku_desc,weight,tm_id,category3_id,is_sale,create_time from sku_info where \$CONDITIONS" \
--num-mappers 1 \
--fields-terminated-by '\t' \
--compress \
--compression-codec gzip \
--null-string '\\N' \
--null-non-string '\\N'

相关推荐

  1. 数据基础设施 - Sqoop

    2023-12-05 16:42:02       58 阅读
  2. 数据基础设施 - Maxwell

    2023-12-05 16:42:02       41 阅读
  3. 数据基础设施 - Flume

    2023-12-05 16:42:02       40 阅读
  4. 数据基础设施 - Hbase

    2023-12-05 16:42:02       39 阅读
  5. 数据基础设施 - Spark

    2023-12-05 16:42:02       35 阅读
  6. 数据组件之Sqoop

    2023-12-05 16:42:02       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-05 16:42:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-05 16:42:02       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-05 16:42:02       82 阅读
  4. Python语言-面向对象

    2023-12-05 16:42:02       91 阅读

热门阅读

  1. 简单介绍Docker

    2023-12-05 16:42:02       47 阅读
  2. 【C++】sizeof()、strlen()、length()\以及size()用法区别

    2023-12-05 16:42:02       55 阅读
  3. Flyway——Oracle创建前缀索引

    2023-12-05 16:42:02       62 阅读
  4. oracle 19c rac 安装手册

    2023-12-05 16:42:02       45 阅读
  5. mysql学习记录

    2023-12-05 16:42:02       42 阅读
  6. Oracle之ORA-29275: 部分多字节字符

    2023-12-05 16:42:02       62 阅读
  7. Redis下载安装教程(详细步骤)

    2023-12-05 16:42:02       64 阅读
  8. Python实现pdf文件转word文件

    2023-12-05 16:42:02       57 阅读
  9. MySQL数据库命令详解(二)

    2023-12-05 16:42:02       59 阅读
  10. 国防科技大博士招生入学考试【50+论文主观题】

    2023-12-05 16:42:02       36 阅读