sqoop从mysql导入到hdfs

1、mysql
 -- 创建数据库
 create database logs;
 -- 使用
 use logs;
 -- 创建表
 create table weblogs(
  md5 varchar(32),
  url varchar(64),
  request_date date,
  request_time time,
  ip varchar(15)
 );
 -- 从外部文本文件加载数据
 load data infile '/path/weblogs_entries.txt' into table weblogs fields terminated by '\t' lines terminated by '\r\n';
 -- 查询
 select * from weblogs;
 -- 将mysql数据导出到hdfs

  sqoop import -m 1 --connect jdbc:mysql://hadoop:3306/logs --username root --password root --table weblogs --target-dir /data/weblogs/import
 --target-dir 决定了数据将存储在hdfs的哪个目录下
 默认情况下,sqoop导入的数据将会按主键进行分割, 有多少个主键,就会有多少个输出文件(一定要控制好)。若不包含主键,必须指定-m 或者--split-by参数决定导入的数据如何分割。每个mapper将产生一个独立的文件。导入文件的默认分割符号“,”,
 ,可以通过--fields-terminated-by '\t' 指定其他的分割符号
 sqoop import -m 1 --connect jdbc:mysql://hadoop:3306/logs --username root --password root --table weblogs --target-dir /data/weblogs/import --fields-terminated-by '\t'

 sqoop import --connect jdbc:mysql://hadoop:3306/logs --username root --password root --table weblogs --split-by md5 --target-dir /data/weblogs/import
 --as-avrodatafile 将数据导入为avro文件
 --as-sequencefile 导入为序列化文件
 -z或--compress 在导入的过程中对数据进行压缩,默认gzip
 --compression-codec <CODEC类> 使用hadoop支持的任何压缩方式类
 --direct 指示sqoop直接使用数据库支持的本地导入导出工具,更快(此时必须使用-m指定mapper的数量,否则若使用--split-by的话会报错,mysqldump terminated status with 2)
 sqoop import --direct -m 1  --connect jdbc:mysql://hadoop:3306/test --username root --password root --table weblogs  --target-dir /data/weblogs/person

 


 use mysql
 select host,user from user;

 

转载于:https://www.cnblogs.com/jsunday/p/3872794.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值