sqoop工具介绍(hdfs与关系型数据库进行数据导入导出)

数据表

第一类:数据库中的数据导入到HDFS上

#数据库驱动jar包用mysql-connector-java-5.1.31-bin,否则有可能报错!
  ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --table tbl_dep --columns ‘uuid, name, tele‘
:<<!
  输出:
    part-m-00000:
      1,总裁办,8888
      2,采购部,6668
      3,销售部,6888
    part-m-00001:
      4,运输中心,3434
      5,库管中心,5666
      6,人力资源,1234
    part-m-00002:
      7,财务部,9999
    part-m-00003:
      13,222,222
  !

#指定输出路径、指定数据分隔符
  ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --table tbl_dep --target-dir ‘/sqoop/td‘ --fields-terminated-by ‘\t‘
:<<!
  输出:
    part-m-00000:
      1 总裁办 8888
      2 采购部 6668
      3 销售部 6888
    part-m-00001:
      4 运输中心    3434
      5 库管中心    5666
      6 人力资源    1234
    part-m-00002:
      7    财务部    9999
    part-m-00003:
      13    222    222
  !

#指定Map数量 -m
  ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --table tbl_dep --target-dir ‘/sqoop/td1‘ --fields-terminated-by ‘\t‘ -m 2
:<<!
  输出:
    part-m-00000:
      1 总裁办 8888
      2 采购部 6668
      3 销售部 6888
      4    运输中心    3434
      5    库管中心    5666
      6    人力资源    1234
    part-m-00001:
      7    财务部    9999
      13    222    222
  !

#增加where条件, 注意:条件必须用引号引起来
  ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --table tbl_dep --where ‘uuid>3‘ --target-dir ‘/sqoop/td2‘
:<<!
  输出:
    part-m-00000:
      4    运输中心    3434
      5    库管中心    5666
      6    人力资源    1234
    part-m-00001:
      7    财务部    9999
    part-m-00002:
    part-m-00003:
      13    222    222
  !

#增加query语句(可使用 \ 将语句换行)
  ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --query ‘SELECT * FROM tbl_dep where uuid > 2 AND $CONDITIONS‘ --split-by tbl_dep.uuid --target-dir ‘/sqoop/td3‘
:<<!
  输出:
    part-m-00000:
      3 销售部 6888
      4    运输中心    3434
      5    库管中心    5666
    part-m-00001:
      6    人力资源    1234
      7    财务部    9999
    part-m-00002:
    part-m-00003:
      13    222    222
  注意:如果使用--query这个命令的时候,需要注意的是where后面的参数,AND $CONDITIONS这个参数必须加上,而且存在单引号与双引号的区别,如果--query后面使用的是双引号,那么需要在$CONDITIONS前加上\即\$CONDITIONS,如果设置map数量为1个时即-m 1,不用加上--split-by ${tablename.column},否则需要加上
!

第二类:将HDFS上的数据导出到数据库中(不要忘记指定分隔符)

./sqoop export --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --export-dir ‘/sqoop/td3‘ --table aaa -m 1 --fields-terminated-by ‘,‘
时间: 2024-10-15 15:53:53

sqoop工具介绍(hdfs与关系型数据库进行数据导入导出)的相关文章

nosql的介绍以及和关系型数据库的区别

一直对非关系型数据库和关系型数据库的了解感觉不太深入,在网上收集了一些关于sql和nosql的区别和优缺点分享给大家. Nosql介绍 Nosql的全称是Not Only Sql,这个概念早起就有人提出,在09年的时候比较火.Nosql指的是非关系型数据库,而我们常用的都是关系型数据库.就像我们常用的mysql,sqlserver一样,这些数据库一般用来存储重要信息,应对普通的业务是没有问题的.但是,随着互联网的高速发展,传统的关系型数据库在应付超大规模,超大流量以及高并发的时候力不从心.而就在

Sqoop -- 用于Hadoop与关系数据库间数据导入导出工作的工具

转:https://blog.csdn.net/qx12306/article/details/67014096 Sqoop是一款开源的工具,主要用于在Hadoop相关存储(HDFS.Hive.HBase)与传统关系数据库(MySql.Oracle等)间进行数据传递工作.Sqoop最早是作为Hadoop的一个第三方模块存在,后来被独立成为了一个Apache项目.除了关系数据库外,对于某些NoSQL数据库,Sqoop也提供了连接器. 一.Sqoop基础知识 Sqoop项目开始于2009年,可以在H

如何利用sqoop将hive数据导入导出数据到mysql

运行环境  centos 5.6   hadoop  hive sqoop是让hadoop技术支持的clouder公司开发的一个在关系数据库和hdfs,hive之间数据导入导出的一个工具. 上海尚学堂hadoop大数据培训组原创,陆续有hadoop大数据技术相关文章奉上,请多关注! 在使用过程中可能遇到的问题: sqoop依赖zookeeper,所以必须配置ZOOKEEPER_HOME到环境变量中. sqoop-1.2.0-CDH3B4依赖hadoop-core-0.20.2-CDH3B4.ja

HData——ETL 数据导入/导出工具

HData是一个异构的ETL数据导入/导出工具,致力于使用一个工具解决不同数据源(JDBC.Hive.HDFS.HBase.MongoDB.FTP.Http.CSV.Excel.Kafka等)之间数据交换的问题.HData在设计上同时参考了开源的Sqoop.DataX,却与之有不同的实现.HData采用“框架+插件”的结构,具有较好的扩展性,框架相当于数据缓冲区,插件则为访问不同的数据源提供实现. [HData特性] 1.异构数据源之间高速数据传输: 2.跨平台独立运行: 3.数据传输过程全内存

excel数据导入导出数据库

第一种方法: 先把Excel另存为.csv格式文件,如test.csv,再编写一个insert.ctl 用sqlldr进行导入! insert.ctl内容如下: load data          --1.控制文件标识 infile ‘my.csv‘          --2.要输入的数据文件名为my.csv append into table "tbl_test"   --3.向表table_name中追加记录 fields terminated by ‘,‘          

将数据库的数据导入solr索引库中

在solr与tomcat整合文章中,我用的索引库是mycore,现在就以这个为例. 首先要准备jar包:solr-dataimporthandler-4.8.1.jar.solr-dataimporthandler-extras-4.8.1.jar和mysql-connector-java-5.0.7-bin.jar这三个包到solr的tomcat的webapps\solr\WEB-INF\lib下 在这个文件夹的conf下配置两个文件,添加一个文件.先配置solrconfig.xml. 在该文

数据库数据导入导出系列之五 C#实现动态生成Word(转)

1. 一个控制台例子,实现动态生成Word. 首先,添加引用:COM->Microsoft Word 11.0 Object Library. 2. 介绍几篇牛人写的关于操作Word的文章 [分享]一段导出到word模版的代码 http://www.cnblogs.com/goody9807/archive/2005/08/25/222526.html 再谈word2003编程 http://www.cnblogs.com/Andmm/archive/2008/06/18/1224422.htm

MySQL多线程数据导入导出工具Mydumper

http://afei2.sinaapp.com/?p=456 今天在线上使用mysqldump将数据表从一个库导入到另外一个库,结果速度特别慢,印象中有个多线程的数据导入导出工具Mydumper,于是简单的调查和测试一下. 下午导数据的过程中,这个表是没有更新的,因此不需要确保多个数据之间的一致性,就简单的写个shell脚本启动多个mysqldumper来导数据,这样有几个问题: 需要处理表数据大小不均匀的问题,有的会很快结束,有的会比较慢. 如果需要保证多个导出之间的一致性时,则无法保证.

数据库数据导入/导出报错:无法在只读列“Id”中插入数据。

本文仅供小白参考,大佬请随意...... 本例是:从vs 2017自带的localDB数据库的数据---导出到---->Sql Server 2008中的相应数据库中 1. 导出数据库: 2. 导入的目标数据库: 3. 下一步*n---->完成 4. 爽一下后连续报错开始: 上面两个错误的前提是:我的Sql Server中数据库是先手动建立了同名数据库, 然后从localDB相应数据库右键--->任务--->生成脚本--->选择特定数据库对象--->全选所有表---&g