Sqoop数据导入/导出

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 1. 从HDFS导出到RDBMS数据库1.1 准备工作写一个文件sqoop_export.txt1201,laojiao, manager,50000, TP1202,fantj,preader,50000,TP1203,jiao,dev...

1. 从HDFS导出到RDBMS数据库

1.1 准备工作

写一个文件

sqoop_export.txt

1201,laojiao, manager,50000, TP
1202,fantj,preader,50000,TP
1203,jiao,dev,30000,AC
1204,laowang,dev,30000,AC
1205,laodu,admin,20000,TP
1206,laop,grp des,20000,GR

上传到hdfs:
hadoop fs -put sqoop_export.txt /sqoop/export/

创建mysql数据库并增加授权:

create database sqoopdb;
grant all privileges on sqoopdb.* to 'sqoop'@'%' identified by 'sqoop';
grant all privileges on sqoopdb.* to 'sqoop'@'localhost' identified by 'sqoop';
grant all privileges on sqoopdb.* to 'sqoop'@'s166' identified by 'sqoop';
flush privileges;

创建表:

use sqoopdb;
CREATE TABLE employee ( 
   id INT NOT NULL PRIMARY KEY, 
   name VARCHAR(20), 
   deg VARCHAR(20),
   salary INT,
   dept VARCHAR(10));
1.2 执行导出命令
bin/sqoop export \
--connect jdbc:mysql://s166:3306/sqoopdb \
--username sqoop \
--password sqoop \
--table employee \
--export-dir /sqoop/export/emp/ \
--input-fields-terminated-by ','

我执行的时候发现它总在报这个错:

 ERROR tool.ExportTool: Encountered IOException running export job: java.io.FileNotFoundException: File does not exist: hdfs://s166/home/fantj/sqoop/lib/avro-mapred-1.5.3.jar

然后找了很多解决方案:

  1. 替换mysql-java的jar包,换个高版本的。
  2. 修改hadoop的mapred-site.xml文件(先更名mv mapred-site.xml.template mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

解决后再执行:

    Map-Reduce Framework
        Map input records=6
        Map output records=6
        Input split bytes=107
        Spilled Records=0
        Failed Shuffles=0
        Merged Map outputs=0
        GC time elapsed (ms)=95
        CPU time spent (ms)=1210
        Physical memory (bytes) snapshot=97288192
        Virtual memory (bytes) snapshot=2075623424
        Total committed heap usage (bytes)=17006592
    File Input Format Counters 
        Bytes Read=0
    File Output Format Counters 
        Bytes Written=0
 22:34:37 INFO mapreduce.ExportJobBase: Transferred 274 bytes in 47.346 seconds (5.7872 bytes/sec)
 22:34:37 INFO mapreduce.ExportJobBase: Exported 6 records.

说明处理成功!

1.3 验证mysql表
mysql> select * from employee;
+------+---------+----------+--------+------+
| id   | name    | deg      | salary | dept |
+------+---------+----------+--------+------+
| 1201 | laojiao |  manager |  50000 | TP   |
| 1202 | fantj   | preader  |  50000 | TP   |
| 1203 | jiao    | dev      |  30000 | AC   |
| 1204 | laowang | dev      |  30000 | AC   |
| 1205 | laodu   | admin    |  20000 | TP   |
| 1206 | laop    | grp des  |  20000 | GR   |
+------+---------+----------+--------+------+
6 rows in set (0.07 sec)

2. 导入表表数据到HDFS

bin/sqoop import \
--connect jdbc:mysql://s166:3306/sqoopdb \
--username sqoop \
--password sqoop \
--table employee --m 1
22:44:26 INFO mapreduce.Job: The url to track the job: http://s166:8088/proxy/application_1532679575794_0002/

    File System Counters
        FILE: Number of bytes read=0
        FILE: Number of bytes written=123111
        FILE: Number of read operations=0
        FILE: Number of large read operations=0
        FILE: Number of write operations=0
        HDFS: Number of bytes read=87
        HDFS: Number of bytes written=161
        HDFS: Number of read operations=4
        HDFS: Number of large read operations=0
        HDFS: Number of write operations=2
    Job Counters 
        Launched map tasks=1
        Other local map tasks=1
        Total time spent by all maps in occupied slots (ms)=5972
        Total time spent by all reduces in occupied slots (ms)=0
        Total time spent by all map tasks (ms)=5972
        Total vcore-seconds taken by all map tasks=5972
        Total megabyte-seconds taken by all map tasks=6115328
    Map-Reduce Framework
        Map input records=6
        Map output records=6
        Input split bytes=87
        Spilled Records=0
        Failed Shuffles=0
        Merged Map outputs=0
        GC time elapsed (ms)=195
        CPU time spent (ms)=970
        Physical memory (bytes) snapshot=99921920
        Virtual memory (bytes) snapshot=2079825920
        Total committed heap usage (bytes)=18358272
    File Input Format Counters 
        Bytes Read=0
    File Output Format Counters 
        Bytes Written=161
 22:44:57 INFO mapreduce.ImportJobBase: Transferred 161 bytes in 34.5879 seconds (4.6548 bytes/sec)
 22:44:57 INFO mapreduce.ImportJobBase: Retrieved 6 records.

3. 导入关系表到HIVE

sqoop import --connect jdbc:mysql://s166:3306/sqoopdb --username sqoop --password sqoop --table employee --hive-import --m 1

4. 导入到HDFS指定目录

sqoop import \
--connect jdbc:mysql://s166:3306/sqoopdb \
--username sqoop \
--password sqoop \
--target-dir /queryresult \
--table employee --m 1

5. 导入表数据子集

我们可以导入表的使用Sqoop导入工具,"where"子句的一个子集。并将结果存储在HDFS的目标目录。

sqoop import \
--connect jdbc:mysql://s166:3306/sqoopdb \
--username sqoop \
--password sqoop \
--where "salary>10000" \
--target-dir /wherequery \
--table employee --m 1
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
SQL 分布式计算 监控
Sqoop数据迁移工具使用与优化技巧:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入解析Sqoop的使用、优化及面试策略。内容涵盖Sqoop基础,包括安装配置、命令行操作、与Hadoop生态集成和连接器配置。讨论数据迁移优化技巧,如数据切分、压缩编码、转换过滤及性能监控。此外,还涉及面试中对Sqoop与其他ETL工具的对比、实际项目挑战及未来发展趋势的讨论。通过代码示例展示了从MySQL到HDFS的数据迁移。本文旨在帮助读者在面试中展现Sqoop技术实力。
238 2
|
数据采集 SQL 分布式计算
数据处理 、大数据、数据抽取 ETL 工具 DataX 、Kettle、Sqoop
数据处理 、大数据、数据抽取 ETL 工具 DataX 、Kettle、Sqoop
1306 0
|
3月前
|
SQL 关系型数据库 MySQL
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)
|
4月前
|
SQL Java 数据库
Sqoop【付诸实践 02】Sqoop1最新版 全库导入 + 数据过滤 + 字段类型支持 说明及举例代码(query参数及字段类型强制转换)
【2月更文挑战第10天】Sqoop【付诸实践 02】Sqoop1最新版 全库导入 + 数据过滤 + 字段类型支持 说明及举例代码(query参数及字段类型强制转换)
64 0
|
4月前
|
分布式计算 关系型数据库 Hadoop
使用Sqoop将数据从Hadoop导出到关系型数据库
使用Sqoop将数据从Hadoop导出到关系型数据库
|
4月前
|
消息中间件 分布式计算 关系型数据库
Sqoop与Kafka的集成:实时数据导入
Sqoop与Kafka的集成:实时数据导入
Sqoop与Kafka的集成:实时数据导入
|
4月前
|
SQL 分布式计算 关系型数据库
Sqoop数据导入到Hive表的最佳实践
Sqoop数据导入到Hive表的最佳实践
|
4月前
|
分布式计算 Hadoop 关系型数据库
使用Sqoop将数据导入Hadoop的详细教程
使用Sqoop将数据导入Hadoop的详细教程
|
10月前
|
存储 SQL 关系型数据库
74 sqoop的数据导入
74 sqoop的数据导入
38 2
|
12月前
|
SQL 分布式计算 分布式数据库
大数据Sqoop借助Hive将Mysql数据导入至Hbase
大数据Sqoop借助Hive将Mysql数据导入至Hbase
207 0
下一篇
云函数